In @0x/contracts-exchange: Change parameter order and naming of some rich revert errors.
In `@0x/order-utils`: Change parameter order for `OrderStatusError`.
This commit is contained in:
committed by
Amir Bandeali
parent
fdaee1375c
commit
d942c47f08
@@ -331,8 +331,8 @@ contract MixinExchangeCore is
|
||||
// An order can only be filled if its status is FILLABLE.
|
||||
if (orderInfo.orderStatus != uint8(OrderStatus.FILLABLE)) {
|
||||
rrevert(OrderStatusError(
|
||||
OrderStatus(orderInfo.orderStatus),
|
||||
orderInfo.orderHash
|
||||
orderInfo.orderHash,
|
||||
OrderStatus(orderInfo.orderStatus)
|
||||
));
|
||||
}
|
||||
|
||||
@@ -441,7 +441,10 @@ contract MixinExchangeCore is
|
||||
// Ensure order is valid
|
||||
// An order can only be cancelled if its status is FILLABLE.
|
||||
if (orderInfo.orderStatus != uint8(OrderStatus.FILLABLE)) {
|
||||
rrevert(OrderStatusError(OrderStatus(orderInfo.orderStatus), orderInfo.orderHash));
|
||||
rrevert(OrderStatusError(
|
||||
orderInfo.orderHash,
|
||||
OrderStatus(orderInfo.orderStatus)
|
||||
));
|
||||
}
|
||||
|
||||
// Validate sender is allowed to cancel this order
|
||||
|
||||
@@ -29,8 +29,8 @@ contract MixinExchangeRichErrors is
|
||||
{
|
||||
// solhint-disable func-name-mixedcase
|
||||
function SignatureError(
|
||||
SignatureErrorCodes error,
|
||||
bytes32 orderHash,
|
||||
SignatureErrorCodes errorCode,
|
||||
bytes32 hash,
|
||||
address signer,
|
||||
bytes memory signature
|
||||
)
|
||||
@@ -40,15 +40,15 @@ contract MixinExchangeRichErrors is
|
||||
{
|
||||
return abi.encodeWithSelector(
|
||||
SIGNATURE_ERROR_SELECTOR,
|
||||
error,
|
||||
orderHash,
|
||||
errorCode,
|
||||
hash,
|
||||
signer,
|
||||
signature
|
||||
);
|
||||
}
|
||||
|
||||
function SignatureValidatorError(
|
||||
bytes32 orderHash,
|
||||
bytes32 hash,
|
||||
address signer,
|
||||
bytes memory signature,
|
||||
bytes memory errorData
|
||||
@@ -59,7 +59,7 @@ contract MixinExchangeRichErrors is
|
||||
{
|
||||
return abi.encodeWithSelector(
|
||||
SIGNATURE_VALIDATOR_ERROR_SELECTOR,
|
||||
orderHash,
|
||||
hash,
|
||||
signer,
|
||||
signature,
|
||||
errorData
|
||||
@@ -67,7 +67,7 @@ contract MixinExchangeRichErrors is
|
||||
}
|
||||
|
||||
function SignatureWalletError(
|
||||
bytes32 orderHash,
|
||||
bytes32 hash,
|
||||
address signer,
|
||||
bytes memory signature,
|
||||
bytes memory errorData
|
||||
@@ -78,7 +78,7 @@ contract MixinExchangeRichErrors is
|
||||
{
|
||||
return abi.encodeWithSelector(
|
||||
SIGNATURE_WALLET_ERROR_SELECTOR,
|
||||
orderHash,
|
||||
hash,
|
||||
signer,
|
||||
signature,
|
||||
errorData
|
||||
@@ -124,8 +124,8 @@ contract MixinExchangeRichErrors is
|
||||
}
|
||||
|
||||
function OrderStatusError(
|
||||
LibOrder.OrderStatus orderStatus,
|
||||
bytes32 orderHash
|
||||
bytes32 orderHash,
|
||||
LibOrder.OrderStatus orderStatus
|
||||
)
|
||||
internal
|
||||
pure
|
||||
@@ -133,8 +133,8 @@ contract MixinExchangeRichErrors is
|
||||
{
|
||||
return abi.encodeWithSelector(
|
||||
ORDER_STATUS_ERROR_SELECTOR,
|
||||
orderStatus,
|
||||
orderHash
|
||||
orderHash,
|
||||
orderStatus
|
||||
);
|
||||
}
|
||||
|
||||
@@ -169,7 +169,7 @@ contract MixinExchangeRichErrors is
|
||||
}
|
||||
|
||||
function FillError(
|
||||
FillErrorCodes error,
|
||||
FillErrorCodes errorCode,
|
||||
bytes32 orderHash
|
||||
)
|
||||
internal
|
||||
@@ -178,7 +178,7 @@ contract MixinExchangeRichErrors is
|
||||
{
|
||||
return abi.encodeWithSelector(
|
||||
FILL_ERROR_SELECTOR,
|
||||
error,
|
||||
errorCode,
|
||||
orderHash
|
||||
);
|
||||
}
|
||||
@@ -229,7 +229,7 @@ contract MixinExchangeRichErrors is
|
||||
}
|
||||
|
||||
function AssetProxyDispatchError(
|
||||
AssetProxyDispatchErrorCodes error,
|
||||
AssetProxyDispatchErrorCodes errorCode,
|
||||
bytes32 orderHash,
|
||||
bytes memory assetData
|
||||
)
|
||||
@@ -239,7 +239,7 @@ contract MixinExchangeRichErrors is
|
||||
{
|
||||
return abi.encodeWithSelector(
|
||||
ASSET_PROXY_DISPATCH_ERROR_SELECTOR,
|
||||
error,
|
||||
errorCode,
|
||||
orderHash,
|
||||
assetData
|
||||
);
|
||||
@@ -278,7 +278,7 @@ contract MixinExchangeRichErrors is
|
||||
}
|
||||
|
||||
function TransactionError(
|
||||
TransactionErrorCodes error,
|
||||
TransactionErrorCodes errorCode,
|
||||
bytes32 transactionHash
|
||||
)
|
||||
internal
|
||||
@@ -287,7 +287,7 @@ contract MixinExchangeRichErrors is
|
||||
{
|
||||
return abi.encodeWithSelector(
|
||||
TRANSACTION_ERROR_SELECTOR,
|
||||
error,
|
||||
errorCode,
|
||||
transactionHash
|
||||
);
|
||||
}
|
||||
|
||||
@@ -55,8 +55,8 @@ contract MExchangeRichErrors is
|
||||
bytes4(keccak256("SignatureError(uint8,bytes32,address,bytes)"));
|
||||
|
||||
function SignatureError(
|
||||
SignatureErrorCodes error,
|
||||
bytes32 orderHash,
|
||||
SignatureErrorCodes errorCode,
|
||||
bytes32 hash,
|
||||
address signer,
|
||||
bytes memory signature
|
||||
)
|
||||
@@ -68,7 +68,7 @@ contract MExchangeRichErrors is
|
||||
bytes4(keccak256("SignatureValidatorError(bytes32,address,bytes,bytes)"));
|
||||
|
||||
function SignatureValidatorError(
|
||||
bytes32 orderHash,
|
||||
bytes32 hash,
|
||||
address signer,
|
||||
bytes memory signature,
|
||||
bytes memory errorData
|
||||
@@ -81,7 +81,7 @@ contract MExchangeRichErrors is
|
||||
bytes4(keccak256("SignatureWalletError(bytes32,address,bytes,bytes)"));
|
||||
|
||||
function SignatureWalletError(
|
||||
bytes32 orderHash,
|
||||
bytes32 hash,
|
||||
address signer,
|
||||
bytes memory signature,
|
||||
bytes memory errorData
|
||||
@@ -117,11 +117,11 @@ contract MExchangeRichErrors is
|
||||
returns (bytes memory);
|
||||
|
||||
bytes4 internal constant ORDER_STATUS_ERROR_SELECTOR =
|
||||
bytes4(keccak256("OrderStatusError(uint8,bytes32)"));
|
||||
bytes4(keccak256("OrderStatusError(bytes32,uint8)"));
|
||||
|
||||
function OrderStatusError(
|
||||
LibOrder.OrderStatus orderStatus,
|
||||
bytes32 orderHash
|
||||
bytes32 orderHash,
|
||||
LibOrder.OrderStatus orderStatus
|
||||
)
|
||||
internal
|
||||
pure
|
||||
@@ -153,7 +153,7 @@ contract MExchangeRichErrors is
|
||||
bytes4(keccak256("FillError(uint8,bytes32)"));
|
||||
|
||||
function FillError(
|
||||
FillErrorCodes error,
|
||||
FillErrorCodes errorCode,
|
||||
bytes32 orderHash
|
||||
)
|
||||
internal
|
||||
@@ -197,7 +197,7 @@ contract MExchangeRichErrors is
|
||||
bytes4(keccak256("AssetProxyDispatchError(uint8,bytes32,bytes)"));
|
||||
|
||||
function AssetProxyDispatchError(
|
||||
AssetProxyDispatchErrorCodes error,
|
||||
AssetProxyDispatchErrorCodes errorCode,
|
||||
bytes32 orderHash,
|
||||
bytes memory assetData
|
||||
)
|
||||
@@ -232,7 +232,7 @@ contract MExchangeRichErrors is
|
||||
bytes4(keccak256("TransactionError(uint8,bytes32)"));
|
||||
|
||||
function TransactionError(
|
||||
TransactionErrorCodes error,
|
||||
TransactionErrorCodes errorCode,
|
||||
bytes32 transactionHash
|
||||
)
|
||||
internal
|
||||
|
||||
@@ -277,7 +277,10 @@ describe('Exchange core', () => {
|
||||
signedOrder = await orderFactory.newSignedOrderAsync();
|
||||
const orderHashHex = orderHashUtils.getOrderHashHex(signedOrder);
|
||||
await exchangeWrapper.fillOrderAsync(signedOrder, takerAddress);
|
||||
const expectedError = new ExchangeRevertErrors.OrderStatusError(OrderStatus.FullyFilled, orderHashHex);
|
||||
const expectedError = new ExchangeRevertErrors.OrderStatusError(
|
||||
orderHashHex,
|
||||
OrderStatus.FullyFilled,
|
||||
);
|
||||
const tx = exchangeWrapper.fillOrderAsync(signedOrder, takerAddress);
|
||||
return expect(tx).to.revertWith(expectedError);
|
||||
});
|
||||
@@ -510,8 +513,8 @@ describe('Exchange core', () => {
|
||||
});
|
||||
const orderHash = orderHashUtils.getOrderHashHex(signedOrder);
|
||||
const expectedError = new ExchangeRevertErrors.OrderStatusError(
|
||||
OrderStatus.InvalidMakerAssetAmount,
|
||||
orderHash,
|
||||
OrderStatus.InvalidMakerAssetAmount,
|
||||
);
|
||||
const tx = exchangeWrapper.cancelOrderAsync(signedOrder, makerAddress);
|
||||
return expect(tx).to.revertWith(expectedError);
|
||||
@@ -523,8 +526,8 @@ describe('Exchange core', () => {
|
||||
});
|
||||
const orderHash = orderHashUtils.getOrderHashHex(signedOrder);
|
||||
const expectedError = new ExchangeRevertErrors.OrderStatusError(
|
||||
OrderStatus.InvalidTakerAssetAmount,
|
||||
orderHash,
|
||||
OrderStatus.InvalidTakerAssetAmount,
|
||||
);
|
||||
const tx = exchangeWrapper.cancelOrderAsync(signedOrder, makerAddress);
|
||||
return expect(tx).to.revertWith(expectedError);
|
||||
@@ -533,7 +536,10 @@ describe('Exchange core', () => {
|
||||
it('should be able to cancel an order', async () => {
|
||||
await exchangeWrapper.cancelOrderAsync(signedOrder, makerAddress);
|
||||
const orderHash = orderHashUtils.getOrderHashHex(signedOrder);
|
||||
const expectedError = new ExchangeRevertErrors.OrderStatusError(OrderStatus.Cancelled, orderHash);
|
||||
const expectedError = new ExchangeRevertErrors.OrderStatusError(
|
||||
orderHash,
|
||||
OrderStatus.Cancelled,
|
||||
);
|
||||
const tx = exchangeWrapper.fillOrderAsync(signedOrder, takerAddress, {
|
||||
takerAssetFillAmount: signedOrder.takerAssetAmount.div(2),
|
||||
});
|
||||
@@ -558,7 +564,10 @@ describe('Exchange core', () => {
|
||||
it('should throw if already cancelled', async () => {
|
||||
await exchangeWrapper.cancelOrderAsync(signedOrder, makerAddress);
|
||||
const orderHash = orderHashUtils.getOrderHashHex(signedOrder);
|
||||
const expectedError = new ExchangeRevertErrors.OrderStatusError(OrderStatus.Cancelled, orderHash);
|
||||
const expectedError = new ExchangeRevertErrors.OrderStatusError(
|
||||
orderHash,
|
||||
OrderStatus.Cancelled,
|
||||
);
|
||||
const tx = exchangeWrapper.cancelOrderAsync(signedOrder, makerAddress);
|
||||
return expect(tx).to.revertWith(expectedError);
|
||||
});
|
||||
@@ -569,7 +578,10 @@ describe('Exchange core', () => {
|
||||
expirationTimeSeconds: new BigNumber(currentTimestamp).minus(10),
|
||||
});
|
||||
const orderHash = orderHashUtils.getOrderHashHex(signedOrder);
|
||||
const expectedError = new ExchangeRevertErrors.OrderStatusError(OrderStatus.Expired, orderHash);
|
||||
const expectedError = new ExchangeRevertErrors.OrderStatusError(
|
||||
orderHash,
|
||||
OrderStatus.Expired,
|
||||
);
|
||||
const tx = exchangeWrapper.cancelOrderAsync(signedOrder, makerAddress);
|
||||
return expect(tx).to.revertWith(expectedError);
|
||||
});
|
||||
|
||||
@@ -1127,7 +1127,10 @@ describe('matchOrders', () => {
|
||||
// Cancel left order
|
||||
await exchangeWrapper.cancelOrderAsync(signedOrderLeft, signedOrderLeft.makerAddress);
|
||||
// Match orders
|
||||
const expectedError = new ExchangeRevertErrors.OrderStatusError(OrderStatus.Cancelled, orderHashHexLeft);
|
||||
const expectedError = new ExchangeRevertErrors.OrderStatusError(
|
||||
orderHashHexLeft,
|
||||
OrderStatus.Cancelled,
|
||||
);
|
||||
const tx = exchangeWrapper.matchOrdersAsync(signedOrderLeft, signedOrderRight, takerAddress);
|
||||
return expect(tx).to.revertWith(expectedError);
|
||||
});
|
||||
@@ -1146,7 +1149,10 @@ describe('matchOrders', () => {
|
||||
// Cancel right order
|
||||
await exchangeWrapper.cancelOrderAsync(signedOrderRight, signedOrderRight.makerAddress);
|
||||
// Match orders
|
||||
const expectedError = new ExchangeRevertErrors.OrderStatusError(OrderStatus.Cancelled, orderHashHexRight);
|
||||
const expectedError = new ExchangeRevertErrors.OrderStatusError(
|
||||
orderHashHexRight,
|
||||
OrderStatus.Cancelled,
|
||||
);
|
||||
const tx = exchangeWrapper.matchOrdersAsync(signedOrderLeft, signedOrderRight, takerAddress);
|
||||
return expect(tx).to.revertWith(expectedError);
|
||||
});
|
||||
|
||||
@@ -940,7 +940,7 @@ function validationErrorToRevertError(order: Order, reason: RevertReason): Rever
|
||||
case RevertReason.InvalidTaker:
|
||||
return new ExchangeRevertErrors.InvalidTakerError(orderHash);
|
||||
case RevertReason.OrderUnfillable:
|
||||
return new ExchangeRevertErrors.OrderStatusError(undefined, orderHash);
|
||||
return new ExchangeRevertErrors.OrderStatusError(orderHash);
|
||||
case RevertReason.InvalidTakerAmount:
|
||||
return new ExchangeRevertErrors.FillError(ExchangeRevertErrors.FillErrorCode.InvalidTakerAmount, orderHash);
|
||||
case RevertReason.TakerOverpay:
|
||||
|
||||
@@ -213,7 +213,10 @@ describe('Exchange wrappers', () => {
|
||||
expirationTimeSeconds: new BigNumber(currentTimestamp).minus(10),
|
||||
});
|
||||
const orderHashHex = orderHashUtils.getOrderHashHex(signedOrder);
|
||||
const expectedError = new ExchangeRevertErrors.OrderStatusError(OrderStatus.Expired, orderHashHex);
|
||||
const expectedError = new ExchangeRevertErrors.OrderStatusError(
|
||||
orderHashHex,
|
||||
OrderStatus.Expired,
|
||||
);
|
||||
const tx = exchangeWrapper.fillOrKillOrderAsync(signedOrder, takerAddress);
|
||||
return expect(tx).to.revertWith(expectedError);
|
||||
});
|
||||
@@ -594,7 +597,10 @@ describe('Exchange wrappers', () => {
|
||||
|
||||
await exchangeWrapper.fillOrKillOrderAsync(signedOrders[0], takerAddress);
|
||||
const orderHashHex = orderHashUtils.getOrderHashHex(signedOrders[0]);
|
||||
const expectedError = new ExchangeRevertErrors.OrderStatusError(OrderStatus.FullyFilled, orderHashHex);
|
||||
const expectedError = new ExchangeRevertErrors.OrderStatusError(
|
||||
orderHashHex,
|
||||
OrderStatus.FullyFilled,
|
||||
);
|
||||
const tx = exchangeWrapper.batchFillOrKillOrdersAsync(signedOrders, takerAddress, {
|
||||
takerAssetFillAmounts,
|
||||
});
|
||||
|
||||
@@ -85,8 +85,8 @@ export class SignatureWalletOrderValidatorError extends RevertError {
|
||||
}
|
||||
|
||||
export class OrderStatusError extends RevertError {
|
||||
constructor(status?: OrderStatus, orderHash?: string) {
|
||||
super('OrderStatusError(uint8 status, bytes32 orderHash)', { status, orderHash });
|
||||
constructor(orderHash?: string, status?: OrderStatus) {
|
||||
super('OrderStatusError(bytes32 orderHash, uint8 status)', { orderHash, status });
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user