Revert variable naming
This commit is contained in:
@@ -28,8 +28,8 @@ contract LibOrder {
|
||||
"address makerTokenAddress",
|
||||
"address takerTokenAddress",
|
||||
"address feeRecipientAddress",
|
||||
"uint256 makerSellAmount",
|
||||
"uint256 makerBuyAmount",
|
||||
"uint256 makerTokenAmount",
|
||||
"uint256 takerTokenAmount",
|
||||
"uint256 makerFee",
|
||||
"uint256 takerFee",
|
||||
"uint256 expirationTimeSeconds",
|
||||
@@ -42,8 +42,8 @@ contract LibOrder {
|
||||
address makerTokenAddress;
|
||||
address takerTokenAddress;
|
||||
address feeRecipientAddress;
|
||||
uint256 makerSellAmount;
|
||||
uint256 makerBuyAmount;
|
||||
uint256 makerTokenAmount;
|
||||
uint256 takerTokenAmount;
|
||||
uint256 makerFee;
|
||||
uint256 takerFee;
|
||||
uint256 expirationTimeSeconds;
|
||||
@@ -68,8 +68,8 @@ contract LibOrder {
|
||||
order.makerTokenAddress,
|
||||
order.takerTokenAddress,
|
||||
order.feeRecipientAddress,
|
||||
order.makerSellAmount,
|
||||
order.makerBuyAmount,
|
||||
order.makerTokenAmount,
|
||||
order.takerTokenAmount,
|
||||
order.makerFee,
|
||||
order.takerFee,
|
||||
order.expirationTimeSeconds,
|
||||
|
@@ -55,8 +55,8 @@ contract MixinExchangeCore is
|
||||
address indexed feeRecipientAddress,
|
||||
address makerTokenAddress,
|
||||
address takerTokenAddress,
|
||||
uint256 makerAmountSold,
|
||||
uint256 takerAmountSold,
|
||||
uint256 makerTokenFilledAmount,
|
||||
uint256 takerTokenFilledAmount,
|
||||
uint256 makerFeePaid,
|
||||
uint256 takerFeePaid,
|
||||
bytes32 indexed orderHash
|
||||
@@ -81,12 +81,12 @@ contract MixinExchangeCore is
|
||||
|
||||
/// @dev Fills the input order.
|
||||
/// @param order Order struct containing order specifications.
|
||||
/// @param takerSellAmount Desired amount of takerToken to sell.
|
||||
/// @param takerTokenFillAmount 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 takerSellAmount,
|
||||
uint256 takerTokenFillAmount,
|
||||
bytes memory signature)
|
||||
public
|
||||
returns (FillResults memory fillResults)
|
||||
@@ -124,26 +124,26 @@ contract MixinExchangeCore is
|
||||
}
|
||||
|
||||
// Validate order availability
|
||||
uint256 remainingMakerBuyAmount = safeSub(order.makerBuyAmount, filled[orderHash]);
|
||||
uint256 remainingMakerBuyAmount = safeSub(order.takerTokenAmount, filled[orderHash]);
|
||||
if (remainingMakerBuyAmount == 0) {
|
||||
emit ExchangeError(uint8(Errors.ORDER_FULLY_FILLED), orderHash);
|
||||
return fillResults;
|
||||
}
|
||||
|
||||
// Validate fill order rounding
|
||||
fillResults.takerAmountSold = min256(takerSellAmount, remainingMakerBuyAmount);
|
||||
if (isRoundingError(fillResults.takerAmountSold, order.makerBuyAmount, order.makerSellAmount)) {
|
||||
fillResults.takerTokenFilledAmount = min256(takerTokenFillAmount, remainingMakerBuyAmount);
|
||||
if (isRoundingError(fillResults.takerTokenFilledAmount, order.takerTokenAmount, order.makerTokenAmount)) {
|
||||
emit ExchangeError(uint8(Errors.ROUNDING_ERROR_TOO_LARGE), orderHash);
|
||||
fillResults.takerAmountSold = 0;
|
||||
fillResults.takerTokenFilledAmount = 0;
|
||||
return fillResults;
|
||||
}
|
||||
|
||||
// Update state
|
||||
filled[orderHash] = safeAdd(filled[orderHash], fillResults.takerAmountSold);
|
||||
filled[orderHash] = safeAdd(filled[orderHash], fillResults.takerTokenFilledAmount);
|
||||
|
||||
// Settle order
|
||||
(fillResults.makerAmountSold, fillResults.makerFeePaid, fillResults.takerFeePaid) =
|
||||
settleOrder(order, msg.sender, fillResults.takerAmountSold);
|
||||
(fillResults.makerTokenFilledAmount, fillResults.makerFeePaid, fillResults.takerFeePaid) =
|
||||
settleOrder(order, msg.sender, fillResults.takerTokenFilledAmount);
|
||||
|
||||
// Log order
|
||||
emit Fill(
|
||||
@@ -152,8 +152,8 @@ contract MixinExchangeCore is
|
||||
order.feeRecipientAddress,
|
||||
order.makerTokenAddress,
|
||||
order.takerTokenAddress,
|
||||
fillResults.makerAmountSold,
|
||||
fillResults.takerAmountSold,
|
||||
fillResults.makerTokenFilledAmount,
|
||||
fillResults.takerTokenFilledAmount,
|
||||
fillResults.makerFeePaid,
|
||||
fillResults.takerFeePaid,
|
||||
orderHash
|
||||
|
@@ -59,21 +59,21 @@ contract MixinSettlementProxy is
|
||||
function settleOrder(
|
||||
Order memory order,
|
||||
address takerAddress,
|
||||
uint256 takerAmountSold)
|
||||
uint256 takerTokenFilledAmount)
|
||||
internal
|
||||
returns (
|
||||
uint256 makerAmountSold,
|
||||
uint256 makerTokenFilledAmount,
|
||||
uint256 makerFeePaid,
|
||||
uint256 takerFeePaid
|
||||
)
|
||||
{
|
||||
makerAmountSold = getPartialAmount(takerAmountSold, order.makerBuyAmount, order.makerSellAmount);
|
||||
makerTokenFilledAmount = getPartialAmount(takerTokenFilledAmount, order.takerTokenAmount, order.makerTokenAmount);
|
||||
require(
|
||||
TRANSFER_PROXY.transferFrom(
|
||||
order.makerTokenAddress,
|
||||
order.makerAddress,
|
||||
takerAddress,
|
||||
makerAmountSold
|
||||
makerTokenFilledAmount
|
||||
)
|
||||
);
|
||||
require(
|
||||
@@ -81,12 +81,12 @@ contract MixinSettlementProxy is
|
||||
order.takerTokenAddress,
|
||||
takerAddress,
|
||||
order.makerAddress,
|
||||
takerAmountSold
|
||||
takerTokenFilledAmount
|
||||
)
|
||||
);
|
||||
if (order.feeRecipientAddress != address(0)) {
|
||||
if (order.makerFee > 0) {
|
||||
makerFeePaid = getPartialAmount(takerAmountSold, order.makerBuyAmount, order.makerFee);
|
||||
makerFeePaid = getPartialAmount(takerTokenFilledAmount, order.takerTokenAmount, order.makerFee);
|
||||
require(
|
||||
TRANSFER_PROXY.transferFrom(
|
||||
ZRX_TOKEN,
|
||||
@@ -97,7 +97,7 @@ contract MixinSettlementProxy is
|
||||
);
|
||||
}
|
||||
if (order.takerFee > 0) {
|
||||
takerFeePaid = getPartialAmount(takerAmountSold, order.makerBuyAmount, order.takerFee);
|
||||
takerFeePaid = getPartialAmount(takerTokenFilledAmount, order.takerTokenAmount, order.takerFee);
|
||||
require(
|
||||
TRANSFER_PROXY.transferFrom(
|
||||
ZRX_TOKEN,
|
||||
@@ -108,6 +108,6 @@ contract MixinSettlementProxy is
|
||||
);
|
||||
}
|
||||
}
|
||||
return (makerAmountSold, makerFeePaid, takerFeePaid);
|
||||
return (makerTokenFilledAmount, makerFeePaid, takerFeePaid);
|
||||
}
|
||||
}
|
||||
|
@@ -29,35 +29,35 @@ contract MixinWrapperFunctions is
|
||||
SafeMath,
|
||||
LibPartialAmount
|
||||
{
|
||||
/// @dev Fills the input order. Reverts if exact takerSellAmount not filled.
|
||||
/// @dev Fills the input order. Reverts if exact takerTokenFillAmount not filled.
|
||||
/// @param order Order struct containing order specifications.
|
||||
/// @param takerSellAmount Desired amount of takerToken to sell.
|
||||
/// @param takerTokenFillAmount Desired amount of takerToken to sell.
|
||||
/// @param signature Proof that order has been created by maker.
|
||||
function fillOrKillOrder(
|
||||
Order memory order,
|
||||
uint256 takerSellAmount,
|
||||
uint256 takerTokenFillAmount,
|
||||
bytes memory signature)
|
||||
public
|
||||
returns (FillResults memory fillResults)
|
||||
{
|
||||
fillResults = fillOrder(
|
||||
order,
|
||||
takerSellAmount,
|
||||
takerTokenFillAmount,
|
||||
signature
|
||||
);
|
||||
require(fillResults.takerAmountSold == takerSellAmount);
|
||||
require(fillResults.takerTokenFilledAmount == takerTokenFillAmount);
|
||||
return fillResults;
|
||||
}
|
||||
|
||||
/// @dev Fills an order with specified parameters and ECDSA signature.
|
||||
/// Returns false if the transaction would otherwise revert.
|
||||
/// @param order Order struct containing order specifications.
|
||||
/// @param takerSellAmount Desired amount of takerToken to sell.
|
||||
/// @param takerTokenFillAmount 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 fillOrderNoThrow(
|
||||
Order memory order,
|
||||
uint256 takerSellAmount,
|
||||
uint256 takerTokenFillAmount,
|
||||
bytes memory signature)
|
||||
public
|
||||
returns (FillResults memory fillResults)
|
||||
@@ -106,8 +106,8 @@ contract MixinWrapperFunctions is
|
||||
mstore(add(start, 292), mload(add(order, 288))) // expirationTimeSeconds
|
||||
mstore(add(start, 324), mload(add(order, 320))) // salt
|
||||
|
||||
// Write takerSellAmount
|
||||
mstore(add(start, 356), takerSellAmount)
|
||||
// Write takerTokenFillAmount
|
||||
mstore(add(start, 356), takerTokenFillAmount)
|
||||
|
||||
// Write signature offset
|
||||
mstore(add(start, 388), 416)
|
||||
@@ -156,18 +156,18 @@ contract MixinWrapperFunctions is
|
||||
|
||||
/// @dev Synchronously executes multiple calls of fillOrder.
|
||||
/// @param orders Array of order specifications.
|
||||
/// @param takerSellAmounts Array of desired amounts of takerToken to sell in orders.
|
||||
/// @param takerTokenFillAmounts Array of desired amounts of takerToken to sell in orders.
|
||||
/// @param signatures Proofs that orders have been created by makers.
|
||||
function batchFillOrders(
|
||||
Order[] memory orders,
|
||||
uint256[] memory takerSellAmounts,
|
||||
uint256[] memory takerTokenFillAmounts,
|
||||
bytes[] memory signatures)
|
||||
public
|
||||
{
|
||||
for (uint256 i = 0; i < orders.length; i++) {
|
||||
fillOrder(
|
||||
orders[i],
|
||||
takerSellAmounts[i],
|
||||
takerTokenFillAmounts[i],
|
||||
signatures[i]
|
||||
);
|
||||
}
|
||||
@@ -175,18 +175,18 @@ contract MixinWrapperFunctions is
|
||||
|
||||
/// @dev Synchronously executes multiple calls of fillOrKill.
|
||||
/// @param orders Array of order specifications.
|
||||
/// @param takerSellAmounts Array of desired amounts of takerToken to sell in orders.
|
||||
/// @param takerTokenFillAmounts Array of desired amounts of takerToken to sell in orders.
|
||||
/// @param signatures Proofs that orders have been created by makers.
|
||||
function batchFillOrKillOrders(
|
||||
Order[] memory orders,
|
||||
uint256[] memory takerSellAmounts,
|
||||
uint256[] memory takerTokenFillAmounts,
|
||||
bytes[] memory signatures)
|
||||
public
|
||||
{
|
||||
for (uint256 i = 0; i < orders.length; i++) {
|
||||
fillOrKillOrder(
|
||||
orders[i],
|
||||
takerSellAmounts[i],
|
||||
takerTokenFillAmounts[i],
|
||||
signatures[i]
|
||||
);
|
||||
}
|
||||
@@ -195,18 +195,18 @@ contract MixinWrapperFunctions is
|
||||
/// @dev Fills an order with specified parameters and ECDSA signature.
|
||||
/// Returns false if the transaction would otherwise revert.
|
||||
/// @param orders Array of order specifications.
|
||||
/// @param takerSellAmounts Array of desired amounts of takerToken to sell in orders.
|
||||
/// @param takerTokenFillAmounts Array of desired amounts of takerToken to sell in orders.
|
||||
/// @param signatures Proofs that orders have been created by makers.
|
||||
function batchFillOrdersNoThrow(
|
||||
Order[] memory orders,
|
||||
uint256[] memory takerSellAmounts,
|
||||
uint256[] memory takerTokenFillAmounts,
|
||||
bytes[] memory signatures)
|
||||
public
|
||||
{
|
||||
for (uint256 i = 0; i < orders.length; i++) {
|
||||
fillOrderNoThrow(
|
||||
orders[i],
|
||||
takerSellAmounts[i],
|
||||
takerTokenFillAmounts[i],
|
||||
signatures[i]
|
||||
);
|
||||
}
|
||||
@@ -214,29 +214,29 @@ contract MixinWrapperFunctions is
|
||||
|
||||
/// @dev Synchronously executes multiple calls of fillOrder until total amount of takerToken is sold by taker.
|
||||
/// @param orders Array of order specifications.
|
||||
/// @param takerSellAmount Desired amount of takerToken to sell.
|
||||
/// @param takerTokenFillAmount Desired amount of takerToken to sell.
|
||||
/// @param signatures Proofs that orders have been created by makers.
|
||||
/// @return Amounts filled and fees paid by makers and taker.
|
||||
function marketSellOrders(
|
||||
Order[] memory orders,
|
||||
uint256 takerSellAmount,
|
||||
uint256 takerTokenFillAmount,
|
||||
bytes[] memory signatures)
|
||||
public
|
||||
returns (FillResults memory fillResults)
|
||||
{
|
||||
for (uint256 i = 0; i < orders.length; i++) {
|
||||
require(orders[i].takerTokenAddress == orders[0].takerTokenAddress);
|
||||
uint256 remainingTakerSellAmount = safeSub(takerSellAmount, fillResults.takerAmountSold);
|
||||
uint256 remainingTakerTokenFillAmount = safeSub(takerTokenFillAmount, fillResults.takerTokenFilledAmount);
|
||||
FillResults memory currentFillResults = fillOrder(
|
||||
orders[i],
|
||||
remainingTakerSellAmount,
|
||||
remainingTakerTokenFillAmount,
|
||||
signatures[i]
|
||||
);
|
||||
fillResults.makerAmountSold = safeAdd(fillResults.makerAmountSold, currentFillResults.makerAmountSold);
|
||||
fillResults.takerAmountSold = safeAdd(fillResults.takerAmountSold, currentFillResults.takerAmountSold);
|
||||
fillResults.makerTokenFilledAmount = safeAdd(fillResults.makerTokenFilledAmount, currentFillResults.makerTokenFilledAmount);
|
||||
fillResults.takerTokenFilledAmount = safeAdd(fillResults.takerTokenFilledAmount, currentFillResults.takerTokenFilledAmount);
|
||||
fillResults.makerFeePaid = safeAdd(fillResults.makerFeePaid, currentFillResults.makerFeePaid);
|
||||
fillResults.takerFeePaid = safeAdd(fillResults.takerFeePaid, currentFillResults.takerFeePaid);
|
||||
if (fillResults.takerAmountSold == takerSellAmount) {
|
||||
if (fillResults.takerTokenFilledAmount == takerTokenFillAmount) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -246,29 +246,29 @@ contract MixinWrapperFunctions is
|
||||
/// @dev Synchronously executes multiple calls of fillOrder until total amount of takerToken is sold by taker.
|
||||
/// Returns false if the transaction would otherwise revert.
|
||||
/// @param orders Array of order specifications.
|
||||
/// @param takerSellAmount Desired amount of takerToken to sell.
|
||||
/// @param takerTokenFillAmount Desired amount of takerToken to sell.
|
||||
/// @param signatures Proofs that orders have been signed by makers.
|
||||
/// @return Amounts filled and fees paid by makers and taker.
|
||||
function marketSellOrdersNoThrow(
|
||||
Order[] memory orders,
|
||||
uint256 takerSellAmount,
|
||||
uint256 takerTokenFillAmount,
|
||||
bytes[] memory signatures)
|
||||
public
|
||||
returns (FillResults memory fillResults)
|
||||
{
|
||||
for (uint256 i = 0; i < orders.length; i++) {
|
||||
require(orders[i].takerTokenAddress == orders[0].takerTokenAddress);
|
||||
uint256 remainingTakerSellAmount = safeSub(takerSellAmount, fillResults.takerAmountSold);
|
||||
uint256 remainingTakerTokenFillAmount = safeSub(takerTokenFillAmount, fillResults.takerTokenFilledAmount);
|
||||
FillResults memory currentFillResults = fillOrderNoThrow(
|
||||
orders[i],
|
||||
remainingTakerSellAmount,
|
||||
remainingTakerTokenFillAmount,
|
||||
signatures[i]
|
||||
);
|
||||
fillResults.makerAmountSold = safeAdd(fillResults.makerAmountSold, currentFillResults.makerAmountSold);
|
||||
fillResults.takerAmountSold = safeAdd(fillResults.takerAmountSold, currentFillResults.takerAmountSold);
|
||||
fillResults.makerTokenFilledAmount = safeAdd(fillResults.makerTokenFilledAmount, currentFillResults.makerTokenFilledAmount);
|
||||
fillResults.takerTokenFilledAmount = safeAdd(fillResults.takerTokenFilledAmount, currentFillResults.takerTokenFilledAmount);
|
||||
fillResults.makerFeePaid = safeAdd(fillResults.makerFeePaid, currentFillResults.makerFeePaid);
|
||||
fillResults.takerFeePaid = safeAdd(fillResults.takerFeePaid, currentFillResults.takerFeePaid);
|
||||
if (fillResults.takerAmountSold == takerSellAmount) {
|
||||
if (fillResults.takerTokenFilledAmount == takerTokenFillAmount) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -277,34 +277,34 @@ contract MixinWrapperFunctions is
|
||||
|
||||
/// @dev Synchronously executes multiple calls of fillOrder until total amount of makerToken is bought by taker.
|
||||
/// @param orders Array of order specifications.
|
||||
/// @param takerBuyAmount Desired amount of makerToken to buy.
|
||||
/// @param makerTokenFillAmount Desired amount of makerToken to buy.
|
||||
/// @param signatures Proofs that orders have been signed by makers.
|
||||
/// @return Amounts filled and fees paid by makers and taker.
|
||||
function marketBuyOrders(
|
||||
Order[] memory orders,
|
||||
uint256 takerBuyAmount,
|
||||
uint256 makerTokenFillAmount,
|
||||
bytes[] memory signatures)
|
||||
public
|
||||
returns (FillResults memory fillResults)
|
||||
{
|
||||
for (uint256 i = 0; i < orders.length; i++) {
|
||||
require(orders[i].makerTokenAddress == orders[0].makerTokenAddress);
|
||||
uint256 remainingTakerBuyAmount = safeSub(takerBuyAmount, fillResults.makerAmountSold);
|
||||
uint256 remainingTakerSellAmount = getPartialAmount(
|
||||
orders[i].makerBuyAmount,
|
||||
orders[i].makerSellAmount,
|
||||
remainingTakerBuyAmount
|
||||
uint256 remainingMakerTokenFillAmount = safeSub(makerTokenFillAmount, fillResults.makerTokenFilledAmount);
|
||||
uint256 remainingTakerTokenFillAmount = getPartialAmount(
|
||||
orders[i].takerTokenAmount,
|
||||
orders[i].makerTokenAmount,
|
||||
remainingMakerTokenFillAmount
|
||||
);
|
||||
FillResults memory currentFillResults = fillOrder(
|
||||
orders[i],
|
||||
remainingTakerSellAmount,
|
||||
remainingTakerTokenFillAmount,
|
||||
signatures[i]
|
||||
);
|
||||
fillResults.makerAmountSold = safeAdd(fillResults.makerAmountSold, currentFillResults.makerAmountSold);
|
||||
fillResults.takerAmountSold = safeAdd(fillResults.takerAmountSold, currentFillResults.takerAmountSold);
|
||||
fillResults.makerTokenFilledAmount = safeAdd(fillResults.makerTokenFilledAmount, currentFillResults.makerTokenFilledAmount);
|
||||
fillResults.takerTokenFilledAmount = safeAdd(fillResults.takerTokenFilledAmount, currentFillResults.takerTokenFilledAmount);
|
||||
fillResults.makerFeePaid = safeAdd(fillResults.makerFeePaid, currentFillResults.makerFeePaid);
|
||||
fillResults.takerFeePaid = safeAdd(fillResults.takerFeePaid, currentFillResults.takerFeePaid);
|
||||
if (fillResults.makerAmountSold == takerBuyAmount) {
|
||||
if (fillResults.makerTokenFilledAmount == makerTokenFillAmount) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -314,34 +314,34 @@ contract MixinWrapperFunctions is
|
||||
/// @dev Synchronously executes multiple fill orders in a single transaction until total amount is bought by taker.
|
||||
/// Returns false if the transaction would otherwise revert.
|
||||
/// @param orders Array of order specifications.
|
||||
/// @param takerBuyAmount Desired amount of makerToken to buy.
|
||||
/// @param makerTokenFillAmount Desired amount of makerToken to buy.
|
||||
/// @param signatures Proofs that orders have been signed by makers.
|
||||
/// @return Amounts filled and fees paid by makers and taker.
|
||||
function marketBuyOrdersNoThrow(
|
||||
Order[] memory orders,
|
||||
uint256 takerBuyAmount,
|
||||
uint256 makerTokenFillAmount,
|
||||
bytes[] memory signatures)
|
||||
public
|
||||
returns (FillResults memory fillResults)
|
||||
{
|
||||
for (uint256 i = 0; i < orders.length; i++) {
|
||||
require(orders[i].makerTokenAddress == orders[0].makerTokenAddress);
|
||||
uint256 remainingTakerBuyAmount = safeSub(takerBuyAmount, fillResults.makerAmountSold);
|
||||
uint256 remainingTakerSellAmount = getPartialAmount(
|
||||
orders[i].makerBuyAmount,
|
||||
orders[i].makerSellAmount,
|
||||
remainingTakerBuyAmount
|
||||
uint256 remainingMakerTokenFillAmount = safeSub(makerTokenFillAmount, fillResults.makerTokenFilledAmount);
|
||||
uint256 remainingTakerTokenFillAmount = getPartialAmount(
|
||||
orders[i].takerTokenAmount,
|
||||
orders[i].makerTokenAmount,
|
||||
remainingMakerTokenFillAmount
|
||||
);
|
||||
FillResults memory currentFillResults = fillOrderNoThrow(
|
||||
orders[i],
|
||||
remainingTakerSellAmount,
|
||||
remainingTakerTokenFillAmount,
|
||||
signatures[i]
|
||||
);
|
||||
fillResults.makerAmountSold = safeAdd(fillResults.makerAmountSold, currentFillResults.makerAmountSold);
|
||||
fillResults.takerAmountSold = safeAdd(fillResults.takerAmountSold, currentFillResults.takerAmountSold);
|
||||
fillResults.makerTokenFilledAmount = safeAdd(fillResults.makerTokenFilledAmount, currentFillResults.makerTokenFilledAmount);
|
||||
fillResults.takerTokenFilledAmount = safeAdd(fillResults.takerTokenFilledAmount, currentFillResults.takerTokenFilledAmount);
|
||||
fillResults.makerFeePaid = safeAdd(fillResults.makerFeePaid, currentFillResults.makerFeePaid);
|
||||
fillResults.takerFeePaid = safeAdd(fillResults.takerFeePaid, currentFillResults.takerFeePaid);
|
||||
if (fillResults.makerAmountSold == takerBuyAmount) {
|
||||
if (fillResults.makerTokenFilledAmount == makerTokenFillAmount) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@@ -24,15 +24,15 @@ import "../LibOrder.sol";
|
||||
contract MExchangeCore is LibOrder {
|
||||
|
||||
struct FillResults {
|
||||
uint256 makerAmountSold;
|
||||
uint256 takerAmountSold;
|
||||
uint256 makerTokenFilledAmount;
|
||||
uint256 takerTokenFilledAmount;
|
||||
uint256 makerFeePaid;
|
||||
uint256 takerFeePaid;
|
||||
}
|
||||
|
||||
function fillOrder(
|
||||
Order memory order,
|
||||
uint256 takerSellAmount,
|
||||
uint256 takerTokenFillAmount,
|
||||
bytes memory signature)
|
||||
public
|
||||
returns (FillResults memory fillResults);
|
||||
|
@@ -26,10 +26,10 @@ contract MSettlement is LibOrder {
|
||||
function settleOrder(
|
||||
Order memory order,
|
||||
address takerAddress,
|
||||
uint256 takerAmountSold)
|
||||
uint256 takerTokenFilledAmount)
|
||||
internal
|
||||
returns (
|
||||
uint256 makerAmountSold,
|
||||
uint256 makerTokenFilledAmount,
|
||||
uint256 makerFeePaid,
|
||||
uint256 takerFeePaid
|
||||
);
|
||||
|
@@ -22,12 +22,12 @@ export class ExchangeWrapper {
|
||||
public async fillOrderAsync(
|
||||
signedOrder: SignedOrder,
|
||||
from: string,
|
||||
opts: { takerSellAmount?: BigNumber } = {},
|
||||
opts: { takerTokenFillAmount?: BigNumber } = {},
|
||||
): Promise<TransactionReceiptWithDecodedLogs> {
|
||||
const params = orderUtils.createFill(signedOrder, opts.takerSellAmount);
|
||||
const params = orderUtils.createFill(signedOrder, opts.takerTokenFillAmount);
|
||||
const txHash = await this._exchange.fillOrder.sendTransactionAsync(
|
||||
params.order,
|
||||
params.takerSellAmount,
|
||||
params.takerTokenFillAmount,
|
||||
params.signature,
|
||||
{ from },
|
||||
);
|
||||
@@ -43,12 +43,12 @@ export class ExchangeWrapper {
|
||||
public async fillOrKillOrderAsync(
|
||||
signedOrder: SignedOrder,
|
||||
from: string,
|
||||
opts: { takerSellAmount?: BigNumber } = {},
|
||||
opts: { takerTokenFillAmount?: BigNumber } = {},
|
||||
): Promise<TransactionReceiptWithDecodedLogs> {
|
||||
const params = orderUtils.createFill(signedOrder, opts.takerSellAmount);
|
||||
const params = orderUtils.createFill(signedOrder, opts.takerTokenFillAmount);
|
||||
const txHash = await this._exchange.fillOrKillOrder.sendTransactionAsync(
|
||||
params.order,
|
||||
params.takerSellAmount,
|
||||
params.takerTokenFillAmount,
|
||||
params.signature,
|
||||
{ from },
|
||||
);
|
||||
@@ -58,12 +58,12 @@ export class ExchangeWrapper {
|
||||
public async fillOrderNoThrowAsync(
|
||||
signedOrder: SignedOrder,
|
||||
from: string,
|
||||
opts: { takerSellAmount?: BigNumber } = {},
|
||||
opts: { takerTokenFillAmount?: BigNumber } = {},
|
||||
): Promise<TransactionReceiptWithDecodedLogs> {
|
||||
const params = orderUtils.createFill(signedOrder, opts.takerSellAmount);
|
||||
const params = orderUtils.createFill(signedOrder, opts.takerTokenFillAmount);
|
||||
const txHash = await this._exchange.fillOrderNoThrow.sendTransactionAsync(
|
||||
params.order,
|
||||
params.takerSellAmount,
|
||||
params.takerTokenFillAmount,
|
||||
params.signature,
|
||||
{ from },
|
||||
);
|
||||
@@ -73,12 +73,12 @@ export class ExchangeWrapper {
|
||||
public async batchFillOrdersAsync(
|
||||
orders: SignedOrder[],
|
||||
from: string,
|
||||
opts: { takerSellAmounts?: BigNumber[] } = {},
|
||||
opts: { takerTokenFillAmounts?: BigNumber[] } = {},
|
||||
): Promise<TransactionReceiptWithDecodedLogs> {
|
||||
const params = formatters.createBatchFill(orders, opts.takerSellAmounts);
|
||||
const params = formatters.createBatchFill(orders, opts.takerTokenFillAmounts);
|
||||
const txHash = await this._exchange.batchFillOrders.sendTransactionAsync(
|
||||
params.orders,
|
||||
params.takerSellAmounts,
|
||||
params.takerTokenFillAmounts,
|
||||
params.signatures,
|
||||
{ from },
|
||||
);
|
||||
@@ -88,12 +88,12 @@ export class ExchangeWrapper {
|
||||
public async batchFillOrKillOrdersAsync(
|
||||
orders: SignedOrder[],
|
||||
from: string,
|
||||
opts: { takerSellAmounts?: BigNumber[] } = {},
|
||||
opts: { takerTokenFillAmounts?: BigNumber[] } = {},
|
||||
): Promise<TransactionReceiptWithDecodedLogs> {
|
||||
const params = formatters.createBatchFill(orders, opts.takerSellAmounts);
|
||||
const params = formatters.createBatchFill(orders, opts.takerTokenFillAmounts);
|
||||
const txHash = await this._exchange.batchFillOrKillOrders.sendTransactionAsync(
|
||||
params.orders,
|
||||
params.takerSellAmounts,
|
||||
params.takerTokenFillAmounts,
|
||||
params.signatures,
|
||||
{ from },
|
||||
);
|
||||
@@ -103,12 +103,12 @@ export class ExchangeWrapper {
|
||||
public async batchFillOrdersNoThrowAsync(
|
||||
orders: SignedOrder[],
|
||||
from: string,
|
||||
opts: { takerSellAmounts?: BigNumber[] } = {},
|
||||
opts: { takerTokenFillAmounts?: BigNumber[] } = {},
|
||||
): Promise<TransactionReceiptWithDecodedLogs> {
|
||||
const params = formatters.createBatchFill(orders, opts.takerSellAmounts);
|
||||
const params = formatters.createBatchFill(orders, opts.takerTokenFillAmounts);
|
||||
const txHash = await this._exchange.batchFillOrdersNoThrow.sendTransactionAsync(
|
||||
params.orders,
|
||||
params.takerSellAmounts,
|
||||
params.takerTokenFillAmounts,
|
||||
params.signatures,
|
||||
{ from },
|
||||
);
|
||||
@@ -118,12 +118,12 @@ export class ExchangeWrapper {
|
||||
public async marketSellOrdersAsync(
|
||||
orders: SignedOrder[],
|
||||
from: string,
|
||||
opts: { takerSellAmount: BigNumber },
|
||||
opts: { takerTokenFillAmount: BigNumber },
|
||||
): Promise<TransactionReceiptWithDecodedLogs> {
|
||||
const params = formatters.createMarketSellOrders(orders, opts.takerSellAmount);
|
||||
const params = formatters.createMarketSellOrders(orders, opts.takerTokenFillAmount);
|
||||
const txHash = await this._exchange.marketSellOrders.sendTransactionAsync(
|
||||
params.orders,
|
||||
params.takerSellAmount,
|
||||
params.takerTokenFillAmount,
|
||||
params.signatures,
|
||||
{ from },
|
||||
);
|
||||
@@ -133,12 +133,12 @@ export class ExchangeWrapper {
|
||||
public async marketSellOrdersNoThrowAsync(
|
||||
orders: SignedOrder[],
|
||||
from: string,
|
||||
opts: { takerSellAmount: BigNumber },
|
||||
opts: { takerTokenFillAmount: BigNumber },
|
||||
): Promise<TransactionReceiptWithDecodedLogs> {
|
||||
const params = formatters.createMarketSellOrders(orders, opts.takerSellAmount);
|
||||
const params = formatters.createMarketSellOrders(orders, opts.takerTokenFillAmount);
|
||||
const txHash = await this._exchange.marketSellOrdersNoThrow.sendTransactionAsync(
|
||||
params.orders,
|
||||
params.takerSellAmount,
|
||||
params.takerTokenFillAmount,
|
||||
params.signatures,
|
||||
{ from },
|
||||
);
|
||||
@@ -148,12 +148,12 @@ export class ExchangeWrapper {
|
||||
public async marketBuyOrdersAsync(
|
||||
orders: SignedOrder[],
|
||||
from: string,
|
||||
opts: { takerBuyAmount: BigNumber },
|
||||
opts: { makerTokenFillAmount: BigNumber },
|
||||
): Promise<TransactionReceiptWithDecodedLogs> {
|
||||
const params = formatters.createMarketBuyOrders(orders, opts.takerBuyAmount);
|
||||
const params = formatters.createMarketBuyOrders(orders, opts.makerTokenFillAmount);
|
||||
const txHash = await this._exchange.marketBuyOrders.sendTransactionAsync(
|
||||
params.orders,
|
||||
params.takerBuyAmount,
|
||||
params.makerTokenFillAmount,
|
||||
params.signatures,
|
||||
{ from },
|
||||
);
|
||||
@@ -163,12 +163,12 @@ export class ExchangeWrapper {
|
||||
public async marketBuyOrdersNoThrowAsync(
|
||||
orders: SignedOrder[],
|
||||
from: string,
|
||||
opts: { takerBuyAmount: BigNumber },
|
||||
opts: { makerTokenFillAmount: BigNumber },
|
||||
): Promise<TransactionReceiptWithDecodedLogs> {
|
||||
const params = formatters.createMarketBuyOrders(orders, opts.takerBuyAmount);
|
||||
const params = formatters.createMarketBuyOrders(orders, opts.makerTokenFillAmount);
|
||||
const txHash = await this._exchange.marketBuyOrdersNoThrow.sendTransactionAsync(
|
||||
params.orders,
|
||||
params.takerBuyAmount,
|
||||
params.makerTokenFillAmount,
|
||||
params.signatures,
|
||||
{ from },
|
||||
);
|
||||
@@ -221,7 +221,7 @@ export class ExchangeWrapper {
|
||||
);
|
||||
return partialAmount;
|
||||
}
|
||||
public async getMakerAmountBoughtAsync(orderHashHex: string): Promise<BigNumber> {
|
||||
public async getTakerTokenFilledAmount(orderHashHex: string): Promise<BigNumber> {
|
||||
const filledAmount = new BigNumber(await this._exchange.filled.callAsync(orderHashHex));
|
||||
return filledAmount;
|
||||
}
|
||||
|
@@ -5,27 +5,27 @@ import { orderUtils } from './order_utils';
|
||||
import { BatchCancelOrders, BatchFillOrders, MarketBuyOrders, MarketSellOrders, SignedOrder } from './types';
|
||||
|
||||
export const formatters = {
|
||||
createBatchFill(signedOrders: SignedOrder[], takerSellAmounts: BigNumber[] = []) {
|
||||
createBatchFill(signedOrders: SignedOrder[], takerTokenFillAmounts: BigNumber[] = []) {
|
||||
const batchFill: BatchFillOrders = {
|
||||
orders: [],
|
||||
signatures: [],
|
||||
takerSellAmounts,
|
||||
takerTokenFillAmounts,
|
||||
};
|
||||
_.forEach(signedOrders, signedOrder => {
|
||||
const orderStruct = orderUtils.getOrderStruct(signedOrder);
|
||||
batchFill.orders.push(orderStruct);
|
||||
batchFill.signatures.push(signedOrder.signature);
|
||||
if (takerSellAmounts.length < signedOrders.length) {
|
||||
batchFill.takerSellAmounts.push(signedOrder.makerBuyAmount);
|
||||
if (takerTokenFillAmounts.length < signedOrders.length) {
|
||||
batchFill.takerTokenFillAmounts.push(signedOrder.takerTokenAmount);
|
||||
}
|
||||
});
|
||||
return batchFill;
|
||||
},
|
||||
createMarketSellOrders(signedOrders: SignedOrder[], takerSellAmount: BigNumber) {
|
||||
createMarketSellOrders(signedOrders: SignedOrder[], takerTokenFillAmount: BigNumber) {
|
||||
const marketSellOrders: MarketSellOrders = {
|
||||
orders: [],
|
||||
signatures: [],
|
||||
takerSellAmount,
|
||||
takerTokenFillAmount,
|
||||
};
|
||||
_.forEach(signedOrders, signedOrder => {
|
||||
const orderStruct = orderUtils.getOrderStruct(signedOrder);
|
||||
@@ -34,11 +34,11 @@ export const formatters = {
|
||||
});
|
||||
return marketSellOrders;
|
||||
},
|
||||
createMarketBuyOrders(signedOrders: SignedOrder[], takerBuyAmount: BigNumber) {
|
||||
createMarketBuyOrders(signedOrders: SignedOrder[], makerTokenFillAmount: BigNumber) {
|
||||
const marketBuyOrders: MarketBuyOrders = {
|
||||
orders: [],
|
||||
signatures: [],
|
||||
takerBuyAmount,
|
||||
makerTokenFillAmount,
|
||||
};
|
||||
_.forEach(signedOrders, signedOrder => {
|
||||
const orderStruct = orderUtils.getOrderStruct(signedOrder);
|
||||
|
@@ -7,10 +7,10 @@ import { crypto } from './crypto';
|
||||
import { OrderStruct, SignatureType, SignedOrder, UnsignedOrder } from './types';
|
||||
|
||||
export const orderUtils = {
|
||||
createFill: (signedOrder: SignedOrder, takerSellAmount?: BigNumber) => {
|
||||
createFill: (signedOrder: SignedOrder, takerTokenFillAmount?: BigNumber) => {
|
||||
const fill = {
|
||||
order: orderUtils.getOrderStruct(signedOrder),
|
||||
takerSellAmount: takerSellAmount || signedOrder.makerBuyAmount,
|
||||
takerTokenFillAmount: takerTokenFillAmount || signedOrder.takerTokenAmount,
|
||||
signature: signedOrder.signature,
|
||||
};
|
||||
return fill;
|
||||
@@ -18,7 +18,7 @@ export const orderUtils = {
|
||||
createCancel(signedOrder: SignedOrder, takerTokenCancelAmount?: BigNumber) {
|
||||
const cancel = {
|
||||
order: orderUtils.getOrderStruct(signedOrder),
|
||||
takerTokenCancelAmount: takerTokenCancelAmount || signedOrder.makerBuyAmount,
|
||||
takerTokenCancelAmount: takerTokenCancelAmount || signedOrder.takerTokenAmount,
|
||||
};
|
||||
return cancel;
|
||||
},
|
||||
@@ -29,8 +29,8 @@ export const orderUtils = {
|
||||
makerTokenAddress: signedOrder.makerTokenAddress,
|
||||
takerTokenAddress: signedOrder.takerTokenAddress,
|
||||
feeRecipientAddress: signedOrder.feeRecipientAddress,
|
||||
makerSellAmount: signedOrder.makerSellAmount,
|
||||
makerBuyAmount: signedOrder.makerBuyAmount,
|
||||
makerTokenAmount: signedOrder.makerTokenAmount,
|
||||
takerTokenAmount: signedOrder.takerTokenAmount,
|
||||
makerFee: signedOrder.makerFee,
|
||||
takerFee: signedOrder.takerFee,
|
||||
expirationTimeSeconds: signedOrder.expirationTimeSeconds,
|
||||
@@ -46,8 +46,8 @@ export const orderUtils = {
|
||||
'address makerTokenAddress',
|
||||
'address takerTokenAddress',
|
||||
'address feeRecipientAddress',
|
||||
'uint256 makerSellAmount',
|
||||
'uint256 makerBuyAmount',
|
||||
'uint256 makerTokenAmount',
|
||||
'uint256 takerTokenAmount',
|
||||
'uint256 makerFee',
|
||||
'uint256 takerFee',
|
||||
'uint256 expirationTimeSeconds',
|
||||
@@ -60,8 +60,8 @@ export const orderUtils = {
|
||||
order.makerTokenAddress,
|
||||
order.takerTokenAddress,
|
||||
order.feeRecipientAddress,
|
||||
order.makerSellAmount,
|
||||
order.makerBuyAmount,
|
||||
order.makerTokenAmount,
|
||||
order.takerTokenAmount,
|
||||
order.makerFee,
|
||||
order.takerFee,
|
||||
order.expirationTimeSeconds,
|
||||
|
@@ -14,19 +14,19 @@ export interface SubmissionContractEventArgs {
|
||||
export interface BatchFillOrders {
|
||||
orders: OrderStruct[];
|
||||
signatures: string[];
|
||||
takerSellAmounts: BigNumber[];
|
||||
takerTokenFillAmounts: BigNumber[];
|
||||
}
|
||||
|
||||
export interface MarketSellOrders {
|
||||
orders: OrderStruct[];
|
||||
signatures: string[];
|
||||
takerSellAmount: BigNumber;
|
||||
takerTokenFillAmount: BigNumber;
|
||||
}
|
||||
|
||||
export interface MarketBuyOrders {
|
||||
orders: OrderStruct[];
|
||||
signatures: string[];
|
||||
takerBuyAmount: BigNumber;
|
||||
makerTokenFillAmount: BigNumber;
|
||||
}
|
||||
|
||||
export interface BatchCancelOrders {
|
||||
@@ -43,8 +43,8 @@ export interface DefaultOrderParams {
|
||||
feeRecipientAddress: string;
|
||||
makerTokenAddress: string;
|
||||
takerTokenAddress: string;
|
||||
makerSellAmount: BigNumber;
|
||||
makerBuyAmount: BigNumber;
|
||||
makerTokenAmount: BigNumber;
|
||||
takerTokenAmount: BigNumber;
|
||||
makerFee: BigNumber;
|
||||
takerFee: BigNumber;
|
||||
}
|
||||
@@ -128,8 +128,8 @@ export interface OrderStruct {
|
||||
makerTokenAddress: string;
|
||||
takerTokenAddress: string;
|
||||
feeRecipientAddress: string;
|
||||
makerSellAmount: BigNumber;
|
||||
makerBuyAmount: BigNumber;
|
||||
makerTokenAmount: BigNumber;
|
||||
takerTokenAmount: BigNumber;
|
||||
makerFee: BigNumber;
|
||||
takerFee: BigNumber;
|
||||
expirationTimeSeconds: BigNumber;
|
||||
|
Reference in New Issue
Block a user