Tests finished for balance threshold wrapper
This commit is contained in:
@@ -27,7 +27,7 @@ import { OrderFactory } from '../utils/order_factory';
|
||||
import { orderUtils } from '../utils/order_utils';
|
||||
import { TransactionFactory } from '../utils/transaction_factory';
|
||||
import { BalanceThresholdWrapper } from '../utils/balance_threshold_wrapper';
|
||||
import { ContractName, ERC20BalancesByOwner, SignedTransaction } from '../utils/types';
|
||||
import { ContractName, ERC20BalancesByOwner, SignedTransaction, OrderStatus } from '../utils/types';
|
||||
import { provider, txDefaults, web3Wrapper } from '../utils/web3_wrapper';
|
||||
import { TestExchangeInternalsContract } from '../../generated-wrappers/test_exchange_internals';
|
||||
|
||||
@@ -62,12 +62,15 @@ describe.only(ContractName.BalanceThresholdFilter, () => {
|
||||
|
||||
let orderFactory: OrderFactory;
|
||||
let orderFactory2: OrderFactory;
|
||||
let nonCompliantOrderFactory: OrderFactory;
|
||||
let erc20Wrapper: ERC20Wrapper;
|
||||
let erc20Balances: ERC20BalancesByOwner;
|
||||
let balanceThresholdWrapper: BalanceThresholdWrapper;
|
||||
let takerBalanceThresholdWrapper: BalanceThresholdWrapper;
|
||||
let makerBalanceThresholdWrapper: BalanceThresholdWrapper;
|
||||
let nonCompliantBalanceThresholdWrapper: BalanceThresholdWrapper;
|
||||
|
||||
let takerTransactionFactory: TransactionFactory;
|
||||
let makerTransactionFactory: TransactionFactory;
|
||||
let compliantSignedOrder: SignedOrder;
|
||||
let compliantSignedOrder2: SignedOrder;
|
||||
let compliantSignedFillOrderTx: SignedTransaction;
|
||||
@@ -170,6 +173,7 @@ describe.only(ContractName.BalanceThresholdFilter, () => {
|
||||
defaultOrderParams,
|
||||
}
|
||||
const makerPrivateKey = constants.TESTRPC_PRIVATE_KEYS[accounts.indexOf(compliantMakerAddress)];
|
||||
takerTransactionFactory = new TransactionFactory(makerPrivateKey, exchangeInstance.address);
|
||||
orderFactory = new OrderFactory(makerPrivateKey, defaultOrderParams1);
|
||||
const defaultOrderParams2 = {
|
||||
makerAddress: compliantMakerAddress2,
|
||||
@@ -178,6 +182,15 @@ describe.only(ContractName.BalanceThresholdFilter, () => {
|
||||
}
|
||||
const secondMakerPrivateKey = constants.TESTRPC_PRIVATE_KEYS[accounts.indexOf(compliantMakerAddress2)];
|
||||
orderFactory2 = new OrderFactory(secondMakerPrivateKey, defaultOrderParams2);
|
||||
|
||||
const nonCompliantPrivateKey = constants.TESTRPC_PRIVATE_KEYS[accounts.indexOf(nonCompliantAddress)];
|
||||
const defaultNonCompliantOrderParams = {
|
||||
makerAddress: nonCompliantAddress,
|
||||
...
|
||||
defaultOrderParams,
|
||||
};
|
||||
nonCompliantOrderFactory = new OrderFactory(nonCompliantPrivateKey, defaultNonCompliantOrderParams);
|
||||
|
||||
/*
|
||||
const compliantForwarderContract = new BalanceThresholdFilterContract(
|
||||
compliantForwarderInstance.abi,
|
||||
@@ -264,10 +277,12 @@ describe.only(ContractName.BalanceThresholdFilter, () => {
|
||||
});
|
||||
throw new Error(`w`);*/
|
||||
logDecoder = new LogDecoder(web3Wrapper);
|
||||
balanceThresholdWrapper = new BalanceThresholdWrapper(compliantForwarderInstance, exchangeInstance, new TransactionFactory(takerPrivateKey, exchangeInstance.address), provider);
|
||||
const nonCompliantPrivateKey = constants.TESTRPC_PRIVATE_KEYS[accounts.indexOf(nonCompliantAddress)];
|
||||
takerBalanceThresholdWrapper = new BalanceThresholdWrapper(compliantForwarderInstance, exchangeInstance, new TransactionFactory(takerPrivateKey, exchangeInstance.address), provider);
|
||||
makerBalanceThresholdWrapper = new BalanceThresholdWrapper(compliantForwarderInstance, exchangeInstance, new TransactionFactory(makerPrivateKey, exchangeInstance.address), provider);
|
||||
|
||||
nonCompliantBalanceThresholdWrapper = new BalanceThresholdWrapper(compliantForwarderInstance, exchangeInstance, new TransactionFactory(nonCompliantPrivateKey, exchangeInstance.address), provider);
|
||||
|
||||
|
||||
|
||||
// Instantiate internal exchange contract
|
||||
exchangeInternals = await TestExchangeInternalsContract.deployFrom0xArtifactAsync(
|
||||
artifacts.TestExchangeInternals,
|
||||
@@ -338,7 +353,7 @@ describe.only(ContractName.BalanceThresholdFilter, () => {
|
||||
// Execute a valid fill
|
||||
const orders = [compliantSignedOrder, compliantSignedOrder2];
|
||||
const takerAssetFillAmounts = [takerAssetFillAmount, takerAssetFillAmount];
|
||||
const txReceipt = await balanceThresholdWrapper.batchFillOrdersAsync(orders, compliantTakerAddress, {takerAssetFillAmounts});
|
||||
const txReceipt = await takerBalanceThresholdWrapper.batchFillOrdersAsync(orders, compliantTakerAddress, {takerAssetFillAmounts});
|
||||
// Assert validated addresses
|
||||
const expectedValidatedAddresseses = [compliantSignedOrder.makerAddress, compliantSignedOrder2.makerAddress, compliantSignedFillOrderTx.signerAddress];
|
||||
assertValidatedAddressesLog(txReceipt, expectedValidatedAddresseses);
|
||||
@@ -400,7 +415,7 @@ describe.only(ContractName.BalanceThresholdFilter, () => {
|
||||
const orders = [compliantSignedOrder, signedOrderWithBadMakerAddress];
|
||||
// Execute transaction
|
||||
return expectTransactionFailedAsync(
|
||||
balanceThresholdWrapper.batchFillOrdersAsync(
|
||||
takerBalanceThresholdWrapper.batchFillOrdersAsync(
|
||||
orders,
|
||||
compliantTakerAddress,
|
||||
{takerAssetFillAmounts}
|
||||
@@ -432,7 +447,7 @@ describe.only(ContractName.BalanceThresholdFilter, () => {
|
||||
// Execute a valid fill
|
||||
const orders = [compliantSignedOrder, compliantSignedOrder2];
|
||||
const takerAssetFillAmounts = [takerAssetFillAmount, takerAssetFillAmount];
|
||||
const txReceipt = await balanceThresholdWrapper.batchFillOrdersNoThrowAsync(orders, compliantTakerAddress, {takerAssetFillAmounts});
|
||||
const txReceipt = await takerBalanceThresholdWrapper.batchFillOrdersNoThrowAsync(orders, compliantTakerAddress, {takerAssetFillAmounts});
|
||||
// Assert validated addresses
|
||||
const expectedValidatedAddresseses = [compliantSignedOrder.makerAddress, compliantSignedOrder2.makerAddress, compliantSignedFillOrderTx.signerAddress];
|
||||
assertValidatedAddressesLog(txReceipt, expectedValidatedAddresseses);
|
||||
@@ -494,7 +509,7 @@ describe.only(ContractName.BalanceThresholdFilter, () => {
|
||||
const orders = [compliantSignedOrder, signedOrderWithBadMakerAddress];
|
||||
// Execute transaction
|
||||
return expectTransactionFailedAsync(
|
||||
balanceThresholdWrapper.batchFillOrdersNoThrowAsync(
|
||||
takerBalanceThresholdWrapper.batchFillOrdersNoThrowAsync(
|
||||
orders,
|
||||
compliantTakerAddress,
|
||||
{takerAssetFillAmounts}
|
||||
@@ -526,7 +541,7 @@ describe.only(ContractName.BalanceThresholdFilter, () => {
|
||||
// Execute a valid fill
|
||||
const orders = [compliantSignedOrder, compliantSignedOrder2];
|
||||
const takerAssetFillAmounts = [takerAssetFillAmount, takerAssetFillAmount];
|
||||
const txReceipt = await balanceThresholdWrapper.batchFillOrKillOrdersAsync(orders, compliantTakerAddress, {takerAssetFillAmounts});
|
||||
const txReceipt = await takerBalanceThresholdWrapper.batchFillOrKillOrdersAsync(orders, compliantTakerAddress, {takerAssetFillAmounts});
|
||||
// Assert validated addresses
|
||||
const expectedValidatedAddresseses = [compliantSignedOrder.makerAddress, compliantSignedOrder2.makerAddress, compliantSignedFillOrderTx.signerAddress];
|
||||
assertValidatedAddressesLog(txReceipt, expectedValidatedAddresseses);
|
||||
@@ -588,7 +603,7 @@ describe.only(ContractName.BalanceThresholdFilter, () => {
|
||||
const orders = [compliantSignedOrder, signedOrderWithBadMakerAddress];
|
||||
// Execute transaction
|
||||
return expectTransactionFailedAsync(
|
||||
balanceThresholdWrapper.batchFillOrKillOrdersAsync(
|
||||
takerBalanceThresholdWrapper.batchFillOrKillOrdersAsync(
|
||||
orders,
|
||||
compliantTakerAddress,
|
||||
{takerAssetFillAmounts}
|
||||
@@ -613,7 +628,7 @@ describe.only(ContractName.BalanceThresholdFilter, () => {
|
||||
const orders = [compliantSignedOrder, compliantSignedOrder2];
|
||||
const takerAssetFillAmounts = [takerAssetFillAmount, tooBigTakerAssetFillAmount];
|
||||
return expectTransactionFailedAsync(
|
||||
balanceThresholdWrapper.batchFillOrKillOrdersAsync(
|
||||
takerBalanceThresholdWrapper.batchFillOrKillOrdersAsync(
|
||||
orders,
|
||||
compliantTakerAddress,
|
||||
{takerAssetFillAmounts}
|
||||
@@ -630,7 +645,7 @@ describe.only(ContractName.BalanceThresholdFilter, () => {
|
||||
});
|
||||
it('should transfer the correct amounts and validate both maker/taker when both maker and taker meet the balance threshold', async () => {
|
||||
// Execute a valid fill
|
||||
const txReceipt = await balanceThresholdWrapper.fillOrderAsync(compliantSignedOrder, compliantTakerAddress, {takerAssetFillAmount});
|
||||
const txReceipt = await takerBalanceThresholdWrapper.fillOrderAsync(compliantSignedOrder, compliantTakerAddress, {takerAssetFillAmount});
|
||||
// Assert validated addresses
|
||||
const expectedValidatedAddresseses = [compliantSignedOrder.makerAddress, compliantSignedFillOrderTx.signerAddress];
|
||||
assertValidatedAddressesLog(txReceipt, expectedValidatedAddresseses);
|
||||
@@ -675,7 +690,7 @@ describe.only(ContractName.BalanceThresholdFilter, () => {
|
||||
});
|
||||
// Execute transaction
|
||||
return expectTransactionFailedAsync(
|
||||
balanceThresholdWrapper.fillOrderAsync(
|
||||
takerBalanceThresholdWrapper.fillOrderAsync(
|
||||
signedOrderWithBadMakerAddress,
|
||||
compliantTakerAddress,
|
||||
{takerAssetFillAmount}
|
||||
@@ -702,7 +717,7 @@ describe.only(ContractName.BalanceThresholdFilter, () => {
|
||||
});
|
||||
it('should transfer the correct amounts and validate both maker/taker when both maker and taker meet the balance threshold', async () => {
|
||||
// Execute a valid fill
|
||||
const txReceipt = await balanceThresholdWrapper.fillOrderNoThrowAsync(compliantSignedOrder, compliantTakerAddress, {takerAssetFillAmount});
|
||||
const txReceipt = await takerBalanceThresholdWrapper.fillOrderNoThrowAsync(compliantSignedOrder, compliantTakerAddress, {takerAssetFillAmount});
|
||||
// Assert validated addresses
|
||||
const expectedValidatedAddresseses = [compliantSignedOrder.makerAddress, compliantSignedFillOrderTx.signerAddress];
|
||||
assertValidatedAddressesLog(txReceipt, expectedValidatedAddresseses);
|
||||
@@ -747,7 +762,7 @@ describe.only(ContractName.BalanceThresholdFilter, () => {
|
||||
});
|
||||
// Execute transaction
|
||||
return expectTransactionFailedAsync(
|
||||
balanceThresholdWrapper.fillOrderNoThrowAsync(
|
||||
takerBalanceThresholdWrapper.fillOrderNoThrowAsync(
|
||||
signedOrderWithBadMakerAddress,
|
||||
compliantTakerAddress,
|
||||
{takerAssetFillAmount}
|
||||
@@ -775,7 +790,7 @@ describe.only(ContractName.BalanceThresholdFilter, () => {
|
||||
it('should transfer the correct amounts and validate both maker/taker when both maker and taker meet the balance threshold', async () => {
|
||||
// Execute a valid fill
|
||||
const takerAssetFillAmount_ = compliantSignedOrder.takerAssetAmount;
|
||||
const txReceipt = await balanceThresholdWrapper.fillOrKillOrderAsync(compliantSignedOrder, compliantTakerAddress, {takerAssetFillAmount: takerAssetFillAmount_});
|
||||
const txReceipt = await takerBalanceThresholdWrapper.fillOrKillOrderAsync(compliantSignedOrder, compliantTakerAddress, {takerAssetFillAmount: takerAssetFillAmount_});
|
||||
// Assert validated addresses
|
||||
const expectedValidatedAddresseses = [compliantSignedOrder.makerAddress, compliantSignedFillOrderTx.signerAddress];
|
||||
assertValidatedAddressesLog(txReceipt, expectedValidatedAddresseses);
|
||||
@@ -820,7 +835,7 @@ describe.only(ContractName.BalanceThresholdFilter, () => {
|
||||
});
|
||||
// Execute transaction
|
||||
return expectTransactionFailedAsync(
|
||||
balanceThresholdWrapper.fillOrKillOrderAsync(
|
||||
takerBalanceThresholdWrapper.fillOrKillOrderAsync(
|
||||
signedOrderWithBadMakerAddress,
|
||||
compliantTakerAddress,
|
||||
{takerAssetFillAmount}
|
||||
@@ -841,7 +856,7 @@ describe.only(ContractName.BalanceThresholdFilter, () => {
|
||||
it('should revert if takerAssetFillAmount is not fully filled', async () => {
|
||||
const tooBigTakerAssetFillAmount = compliantSignedOrder.takerAssetAmount.times(2);
|
||||
return expectTransactionFailedAsync(
|
||||
balanceThresholdWrapper.fillOrKillOrderAsync(
|
||||
takerBalanceThresholdWrapper.fillOrKillOrderAsync(
|
||||
compliantSignedOrder,
|
||||
compliantTakerAddress,
|
||||
{takerAssetFillAmount: tooBigTakerAssetFillAmount}
|
||||
@@ -861,7 +876,7 @@ describe.only(ContractName.BalanceThresholdFilter, () => {
|
||||
// Execute a valid fill
|
||||
const orders = [compliantSignedOrder, compliantSignedOrder2];
|
||||
const cumulativeTakerAssetFillAmount = compliantSignedOrder.takerAssetAmount.plus(takerAssetFillAmount);
|
||||
const txReceipt = await balanceThresholdWrapper.marketSellOrdersAsync(orders, compliantTakerAddress, {takerAssetFillAmount: cumulativeTakerAssetFillAmount});
|
||||
const txReceipt = await takerBalanceThresholdWrapper.marketSellOrdersAsync(orders, compliantTakerAddress, {takerAssetFillAmount: cumulativeTakerAssetFillAmount});
|
||||
// Assert validated addresses
|
||||
const expectedValidatedAddresseses = [compliantSignedOrder.makerAddress, compliantSignedOrder2.makerAddress, compliantSignedFillOrderTx.signerAddress];
|
||||
assertValidatedAddressesLog(txReceipt, expectedValidatedAddresseses);
|
||||
@@ -921,7 +936,7 @@ describe.only(ContractName.BalanceThresholdFilter, () => {
|
||||
const orders = [compliantSignedOrder, signedOrderWithBadMakerAddress];
|
||||
// Execute transaction
|
||||
return expectTransactionFailedAsync(
|
||||
balanceThresholdWrapper.marketSellOrdersAsync(
|
||||
takerBalanceThresholdWrapper.marketSellOrdersAsync(
|
||||
orders,
|
||||
compliantTakerAddress,
|
||||
{takerAssetFillAmount}
|
||||
@@ -952,7 +967,7 @@ describe.only(ContractName.BalanceThresholdFilter, () => {
|
||||
// Execute a valid fill
|
||||
const orders = [compliantSignedOrder, compliantSignedOrder2];
|
||||
const cumulativeTakerAssetFillAmount = compliantSignedOrder.takerAssetAmount.plus(takerAssetFillAmount);
|
||||
const txReceipt = await balanceThresholdWrapper.marketSellOrdersNoThrowAsync(orders, compliantTakerAddress, {takerAssetFillAmount: cumulativeTakerAssetFillAmount});
|
||||
const txReceipt = await takerBalanceThresholdWrapper.marketSellOrdersNoThrowAsync(orders, compliantTakerAddress, {takerAssetFillAmount: cumulativeTakerAssetFillAmount});
|
||||
// Assert validated addresses
|
||||
const expectedValidatedAddresseses = [compliantSignedOrder.makerAddress, compliantSignedOrder2.makerAddress, compliantSignedFillOrderTx.signerAddress];
|
||||
assertValidatedAddressesLog(txReceipt, expectedValidatedAddresseses);
|
||||
@@ -1012,7 +1027,7 @@ describe.only(ContractName.BalanceThresholdFilter, () => {
|
||||
const orders = [compliantSignedOrder, signedOrderWithBadMakerAddress];
|
||||
// Execute transaction
|
||||
return expectTransactionFailedAsync(
|
||||
balanceThresholdWrapper.marketSellOrdersNoThrowAsync(
|
||||
takerBalanceThresholdWrapper.marketSellOrdersNoThrowAsync(
|
||||
orders,
|
||||
compliantTakerAddress,
|
||||
{takerAssetFillAmount}
|
||||
@@ -1047,7 +1062,7 @@ describe.only(ContractName.BalanceThresholdFilter, () => {
|
||||
.times(compliantSignedOrder.makerAssetAmount)
|
||||
.dividedToIntegerBy(compliantSignedOrder.takerAssetAmount);
|
||||
const cumulativeMakerAssetFillAmount = compliantSignedOrder.makerAssetAmount.plus(makerAssetFillAmount2);
|
||||
const txReceipt = await balanceThresholdWrapper.marketBuyOrdersAsync(orders, compliantTakerAddress, {makerAssetFillAmount: cumulativeMakerAssetFillAmount});
|
||||
const txReceipt = await takerBalanceThresholdWrapper.marketBuyOrdersAsync(orders, compliantTakerAddress, {makerAssetFillAmount: cumulativeMakerAssetFillAmount});
|
||||
// Assert validated addresses
|
||||
const expectedValidatedAddresseses = [compliantSignedOrder.makerAddress, compliantSignedOrder2.makerAddress, compliantSignedFillOrderTx.signerAddress];
|
||||
assertValidatedAddressesLog(txReceipt, expectedValidatedAddresseses);
|
||||
@@ -1104,7 +1119,7 @@ describe.only(ContractName.BalanceThresholdFilter, () => {
|
||||
// Execute transaction
|
||||
const dummyMakerAssetFillAmount = new BigNumber(0);
|
||||
return expectTransactionFailedAsync(
|
||||
balanceThresholdWrapper.marketBuyOrdersAsync(
|
||||
takerBalanceThresholdWrapper.marketBuyOrdersAsync(
|
||||
orders,
|
||||
compliantTakerAddress,
|
||||
{makerAssetFillAmount: dummyMakerAssetFillAmount}
|
||||
@@ -1140,7 +1155,7 @@ describe.only(ContractName.BalanceThresholdFilter, () => {
|
||||
.times(compliantSignedOrder.makerAssetAmount)
|
||||
.dividedToIntegerBy(compliantSignedOrder.takerAssetAmount);
|
||||
const cumulativeMakerAssetFillAmount = compliantSignedOrder.makerAssetAmount.plus(makerAssetFillAmount2);
|
||||
const txReceipt = await balanceThresholdWrapper.marketBuyOrdersNoThrowAsync(orders, compliantTakerAddress, {makerAssetFillAmount: cumulativeMakerAssetFillAmount});
|
||||
const txReceipt = await takerBalanceThresholdWrapper.marketBuyOrdersNoThrowAsync(orders, compliantTakerAddress, {makerAssetFillAmount: cumulativeMakerAssetFillAmount});
|
||||
// Assert validated addresses
|
||||
const expectedValidatedAddresseses = [compliantSignedOrder.makerAddress, compliantSignedOrder2.makerAddress, compliantSignedFillOrderTx.signerAddress];
|
||||
assertValidatedAddressesLog(txReceipt, expectedValidatedAddresseses);
|
||||
@@ -1197,7 +1212,7 @@ describe.only(ContractName.BalanceThresholdFilter, () => {
|
||||
// Execute transaction
|
||||
const dummyMakerAssetFillAmount = new BigNumber(0);
|
||||
return expectTransactionFailedAsync(
|
||||
balanceThresholdWrapper.marketBuyOrdersNoThrowAsync(
|
||||
takerBalanceThresholdWrapper.marketBuyOrdersNoThrowAsync(
|
||||
orders,
|
||||
compliantTakerAddress,
|
||||
{makerAssetFillAmount: dummyMakerAssetFillAmount}
|
||||
@@ -1219,7 +1234,7 @@ describe.only(ContractName.BalanceThresholdFilter, () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe.only('matchOrders', () => {
|
||||
describe('matchOrders', () => {
|
||||
beforeEach(async () => {
|
||||
erc20Balances = await erc20Wrapper.getBalancesAsync();
|
||||
compliantSignedOrder = await orderFactory.newSignedOrderAsync();
|
||||
@@ -1260,7 +1275,7 @@ describe.only(ContractName.BalanceThresholdFilter, () => {
|
||||
feePaidByTakerLeft: Web3Wrapper.toBaseUnitAmount(new BigNumber('76.5306122448979591'), 16), // 76.53%
|
||||
feePaidByTakerRight: Web3Wrapper.toBaseUnitAmount(new BigNumber(100), 16), // 100%
|
||||
};
|
||||
const txReceipt = await balanceThresholdWrapper.matchOrdersAsync(signedOrderLeft, signedOrderRight, compliantTakerAddress);
|
||||
const txReceipt = await takerBalanceThresholdWrapper.matchOrdersAsync(signedOrderLeft, signedOrderRight, compliantTakerAddress);
|
||||
// Assert validated addresses
|
||||
const expectedValidatedAddresseses = [signedOrderLeft.makerAddress, signedOrderRight.makerAddress, compliantTakerAddress];
|
||||
assertValidatedAddressesLog(txReceipt, expectedValidatedAddresseses);
|
||||
@@ -1317,7 +1332,7 @@ describe.only(ContractName.BalanceThresholdFilter, () => {
|
||||
});
|
||||
// Execute transaction
|
||||
return expectTransactionFailedAsync(
|
||||
balanceThresholdWrapper.matchOrdersAsync(
|
||||
takerBalanceThresholdWrapper.matchOrdersAsync(
|
||||
compliantSignedOrder,
|
||||
signedOrderWithBadMakerAddress,
|
||||
compliantTakerAddress,
|
||||
@@ -1333,7 +1348,7 @@ describe.only(ContractName.BalanceThresholdFilter, () => {
|
||||
});
|
||||
// Execute transaction
|
||||
return expectTransactionFailedAsync(
|
||||
balanceThresholdWrapper.matchOrdersAsync(
|
||||
takerBalanceThresholdWrapper.matchOrdersAsync(
|
||||
signedOrderWithBadMakerAddress,
|
||||
compliantSignedOrder,
|
||||
compliantTakerAddress,
|
||||
@@ -1354,12 +1369,155 @@ describe.only(ContractName.BalanceThresholdFilter, () => {
|
||||
});
|
||||
|
||||
describe('cancelOrder', () => {
|
||||
beforeEach(async () => {
|
||||
erc20Balances = await erc20Wrapper.getBalancesAsync();
|
||||
compliantSignedOrder = await orderFactory.newSignedOrderAsync();
|
||||
compliantSignedOrder2 = await orderFactory2.newSignedOrderAsync();
|
||||
});
|
||||
it('Should successfully cancel order if maker meets balance threshold', async () => {
|
||||
// Verify order is not cancelled
|
||||
const orderInfoBeforeCancelling = await makerBalanceThresholdWrapper.getOrderInfoAsync(compliantSignedOrder)
|
||||
expect(orderInfoBeforeCancelling.orderStatus).to.be.equal(OrderStatus.FILLABLE);
|
||||
// Cancel
|
||||
const txReceipt = await makerBalanceThresholdWrapper.cancelOrderAsync(compliantSignedOrder, compliantSignedOrder.makerAddress);
|
||||
// Assert validated addresses
|
||||
const expectedValidatedAddresseses: string[] = [];
|
||||
assertValidatedAddressesLog(txReceipt, expectedValidatedAddresseses);
|
||||
// Check that order was cancelled
|
||||
const orderInfoAfterCancelling = await makerBalanceThresholdWrapper.getOrderInfoAsync(compliantSignedOrder)
|
||||
expect(orderInfoAfterCancelling.orderStatus).to.be.equal(OrderStatus.CANCELLED);
|
||||
});
|
||||
it('Should successfully cancel order if maker does not meet balance threshold', async () => {
|
||||
// Create order where maker does not meet balance threshold
|
||||
const signedOrderWithBadMakerAddress = await nonCompliantOrderFactory.newSignedOrderAsync({});
|
||||
// Verify order is not cancelled
|
||||
const orderInfoBeforeCancelling = await nonCompliantBalanceThresholdWrapper.getOrderInfoAsync(signedOrderWithBadMakerAddress)
|
||||
expect(orderInfoBeforeCancelling.orderStatus).to.be.equal(OrderStatus.FILLABLE);
|
||||
// Cancel
|
||||
const txReceipt = await nonCompliantBalanceThresholdWrapper.cancelOrderAsync(signedOrderWithBadMakerAddress, signedOrderWithBadMakerAddress.makerAddress);
|
||||
// Assert validated addresses
|
||||
const expectedValidatedAddresseses: string[] = [];
|
||||
assertValidatedAddressesLog(txReceipt, expectedValidatedAddresseses);
|
||||
// Check that order was cancelled
|
||||
const orderInfoAfterCancelling = await makerBalanceThresholdWrapper.getOrderInfoAsync(signedOrderWithBadMakerAddress)
|
||||
expect(orderInfoAfterCancelling.orderStatus).to.be.equal(OrderStatus.CANCELLED);
|
||||
});
|
||||
});
|
||||
|
||||
describe('batchCancelOrders', () => {
|
||||
beforeEach(async () => {
|
||||
erc20Balances = await erc20Wrapper.getBalancesAsync();
|
||||
});
|
||||
it('Should successfully batch cancel orders if maker meets balance threshold', async () => {
|
||||
// Create orders to cancel
|
||||
const compliantSignedOrders = [
|
||||
await orderFactory.newSignedOrderAsync(),
|
||||
await orderFactory.newSignedOrderAsync(),
|
||||
await orderFactory.newSignedOrderAsync(),
|
||||
];
|
||||
// Verify orders are not cancelled
|
||||
await _.each(compliantSignedOrders, async (compliantSignedOrder) => {
|
||||
const orderInfoBeforeCancelling = await makerBalanceThresholdWrapper.getOrderInfoAsync(compliantSignedOrder)
|
||||
return expect(orderInfoBeforeCancelling.orderStatus).to.be.equal(OrderStatus.FILLABLE);
|
||||
});
|
||||
// Cancel
|
||||
const txReceipt = await makerBalanceThresholdWrapper.batchCancelOrdersAsync(compliantSignedOrders, compliantSignedOrder.makerAddress);
|
||||
// Assert validated addresses
|
||||
const expectedValidatedAddresseses: string[] = [];
|
||||
assertValidatedAddressesLog(txReceipt, expectedValidatedAddresseses);
|
||||
// Check that order was cancelled
|
||||
await _.each(compliantSignedOrders, async (compliantSignedOrder) => {
|
||||
const orderInfoAfterCancelling = await makerBalanceThresholdWrapper.getOrderInfoAsync(compliantSignedOrder)
|
||||
return expect(orderInfoAfterCancelling.orderStatus).to.be.equal(OrderStatus.CANCELLED);
|
||||
});
|
||||
});
|
||||
it('Should successfully batch cancel order if maker does not meet balance threshold', async () => {
|
||||
// Create orders to cancel
|
||||
const nonCompliantSignedOrders = [
|
||||
await nonCompliantOrderFactory.newSignedOrderAsync(),
|
||||
await nonCompliantOrderFactory.newSignedOrderAsync(),
|
||||
await nonCompliantOrderFactory.newSignedOrderAsync(),
|
||||
];
|
||||
// Verify orders are not cancelled
|
||||
await _.each(nonCompliantSignedOrders, async (nonCompliantSignedOrder) => {
|
||||
const orderInfoBeforeCancelling = await nonCompliantBalanceThresholdWrapper.getOrderInfoAsync(nonCompliantSignedOrder)
|
||||
return expect(orderInfoBeforeCancelling.orderStatus).to.be.equal(OrderStatus.FILLABLE);
|
||||
});
|
||||
// Cancel
|
||||
const txReceipt = await nonCompliantBalanceThresholdWrapper.batchCancelOrdersAsync(nonCompliantSignedOrders, nonCompliantAddress);
|
||||
// Assert validated addresses
|
||||
const expectedValidatedAddresseses: string[] = [];
|
||||
assertValidatedAddressesLog(txReceipt, expectedValidatedAddresseses);
|
||||
// Check that order was cancelled
|
||||
await _.each(nonCompliantSignedOrders, async (nonCompliantSignedOrder) => {
|
||||
const orderInfoAfterCancelling = await nonCompliantBalanceThresholdWrapper.getOrderInfoAsync(nonCompliantSignedOrder)
|
||||
return expect(orderInfoAfterCancelling.orderStatus).to.be.equal(OrderStatus.CANCELLED);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('cancelOrdersUpTo', () => {
|
||||
beforeEach(async () => {
|
||||
erc20Balances = await erc20Wrapper.getBalancesAsync();
|
||||
});
|
||||
it('Should successfully batch cancel orders if maker meets balance threshold', async () => {
|
||||
// Create orders to cancel
|
||||
const compliantSignedOrders = [
|
||||
await orderFactory.newSignedOrderAsync({salt: new BigNumber(0)}),
|
||||
await orderFactory.newSignedOrderAsync({salt: new BigNumber(1)}),
|
||||
await orderFactory.newSignedOrderAsync({salt: new BigNumber(2)}),
|
||||
];
|
||||
// Verify orders are not cancelled
|
||||
await _.each(compliantSignedOrders, async (compliantSignedOrder) => {
|
||||
const orderInfoBeforeCancelling = await makerBalanceThresholdWrapper.getOrderInfoAsync(compliantSignedOrder)
|
||||
return expect(orderInfoBeforeCancelling.orderStatus).to.be.equal(OrderStatus.FILLABLE);
|
||||
});
|
||||
// Cancel
|
||||
const cancelOrdersUpToThisSalt = new BigNumber(1);
|
||||
const txReceipt = await makerBalanceThresholdWrapper.cancelOrdersUpToAsync(cancelOrdersUpToThisSalt, compliantSignedOrder.makerAddress);
|
||||
// Assert validated addresses
|
||||
const expectedValidatedAddresseses: string[] = [];
|
||||
assertValidatedAddressesLog(txReceipt, expectedValidatedAddresseses);
|
||||
// Check that order was cancelled
|
||||
await _.each(compliantSignedOrders, async (compliantSignedOrder, salt: number) => {
|
||||
const orderInfoAfterCancelling = await makerBalanceThresholdWrapper.getOrderInfoAsync(compliantSignedOrder)
|
||||
const saltAsBigNumber = new BigNumber(salt);
|
||||
if (saltAsBigNumber.lessThanOrEqualTo(cancelOrdersUpToThisSalt)) {
|
||||
return expect(orderInfoAfterCancelling.orderStatus).to.be.equal(OrderStatus.CANCELLED);
|
||||
} else {
|
||||
return expect(orderInfoAfterCancelling.orderStatus).to.be.equal(OrderStatus.FILLABLE);
|
||||
}
|
||||
});
|
||||
});
|
||||
it('Should successfully batch cancel order if maker does not meet balance threshold', async () => {
|
||||
// Create orders to cancel
|
||||
const nonCompliantSignedOrders = [
|
||||
await nonCompliantOrderFactory.newSignedOrderAsync({salt: new BigNumber(0)}),
|
||||
await nonCompliantOrderFactory.newSignedOrderAsync({salt: new BigNumber(1)}),
|
||||
await nonCompliantOrderFactory.newSignedOrderAsync({salt: new BigNumber(2)}),
|
||||
];
|
||||
// Verify orders are not cancelled
|
||||
await _.each(nonCompliantSignedOrders, async (nonCompliantSignedOrder) => {
|
||||
const orderInfoBeforeCancelling = await nonCompliantBalanceThresholdWrapper.getOrderInfoAsync(nonCompliantSignedOrder)
|
||||
return expect(orderInfoBeforeCancelling.orderStatus).to.be.equal(OrderStatus.FILLABLE);
|
||||
});
|
||||
// Cancel
|
||||
const cancelOrdersUpToThisSalt = new BigNumber(1);
|
||||
const txReceipt = await nonCompliantBalanceThresholdWrapper.cancelOrdersUpToAsync(cancelOrdersUpToThisSalt, nonCompliantAddress);
|
||||
// Assert validated addresses
|
||||
const expectedValidatedAddresseses: string[] = [];
|
||||
assertValidatedAddressesLog(txReceipt, expectedValidatedAddresseses);
|
||||
// Check that order was cancelled
|
||||
await _.each(nonCompliantSignedOrders, async (nonCompliantSignedOrder, salt: number) => {
|
||||
const orderInfoAfterCancelling = await nonCompliantBalanceThresholdWrapper.getOrderInfoAsync(nonCompliantSignedOrder)
|
||||
const saltAsBigNumber = new BigNumber(salt);
|
||||
if (saltAsBigNumber.lessThanOrEqualTo(cancelOrdersUpToThisSalt)) {
|
||||
return expect(orderInfoAfterCancelling.orderStatus).to.be.equal(OrderStatus.CANCELLED);
|
||||
} else {
|
||||
return expect(orderInfoAfterCancelling.orderStatus).to.be.equal(OrderStatus.FILLABLE);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
// tslint:disable:max-file-line-count
|
||||
|
Reference in New Issue
Block a user