@0x/contracts-exchange
: Fix combinatorial fillOrder
test bugs.
`@0x/contracts-exchange`: Fix emit `Fill` event code.
This commit is contained in:
committed by
Amir Bandeali
parent
3654005c3d
commit
aecb2efad9
@@ -303,10 +303,10 @@ contract MixinExchangeCore is
|
||||
);
|
||||
uint256 argOffset = 0;
|
||||
// takerAddress
|
||||
logData.writeAddress(argOffset, takerAddress);
|
||||
logData.writeUint256(argOffset, uint256(takerAddress));
|
||||
argOffset += 32;
|
||||
// senderAddress
|
||||
logData.writeAddress(argOffset, msg.sender);
|
||||
logData.writeUint256(argOffset, uint256(msg.sender));
|
||||
argOffset += 32;
|
||||
// makerAssetFilledAmount
|
||||
logData.writeUint256(argOffset, fillResults.makerAssetFilledAmount);
|
||||
|
@@ -64,7 +64,7 @@ describe('Exchange core', () => {
|
||||
|
||||
let erc20TokenA: DummyERC20TokenContract;
|
||||
let erc20TokenB: DummyERC20TokenContract;
|
||||
let zrxToken: DummyERC20TokenContract;
|
||||
let feeToken: DummyERC20TokenContract;
|
||||
let erc721Token: DummyERC721TokenContract;
|
||||
let noReturnErc20Token: DummyNoReturnERC20TokenContract;
|
||||
let reentrantErc20Token: ReentrantERC20TokenContract;
|
||||
@@ -96,6 +96,7 @@ describe('Exchange core', () => {
|
||||
|
||||
let defaultMakerAssetAddress: string;
|
||||
let defaultTakerAssetAddress: string;
|
||||
let defaultFeeAssetAddress: string;
|
||||
|
||||
before(async () => {
|
||||
await blockchainLifecycle.startAsync();
|
||||
@@ -126,7 +127,7 @@ describe('Exchange core', () => {
|
||||
txDefaults,
|
||||
);
|
||||
const numDummyErc20ToDeploy = 3;
|
||||
[erc20TokenA, erc20TokenB, zrxToken] = await erc20Wrapper.deployDummyTokensAsync(
|
||||
[erc20TokenA, erc20TokenB, feeToken] = await erc20Wrapper.deployDummyTokensAsync(
|
||||
numDummyErc20ToDeploy,
|
||||
constants.DUMMY_TOKEN_DECIMALS,
|
||||
);
|
||||
@@ -206,12 +207,15 @@ describe('Exchange core', () => {
|
||||
// Configure order defaults
|
||||
defaultMakerAssetAddress = erc20TokenA.address;
|
||||
defaultTakerAssetAddress = erc20TokenB.address;
|
||||
defaultFeeAssetAddress = feeToken.address;
|
||||
const defaultOrderParams = {
|
||||
...constants.STATIC_ORDER_PARAMS,
|
||||
makerAddress,
|
||||
feeRecipientAddress,
|
||||
makerAssetData: assetDataUtils.encodeERC20AssetData(defaultMakerAssetAddress),
|
||||
takerAssetData: assetDataUtils.encodeERC20AssetData(defaultTakerAssetAddress),
|
||||
makerFeeAssetData: assetDataUtils.encodeERC20AssetData(defaultFeeAssetAddress),
|
||||
takerFeeAssetData: assetDataUtils.encodeERC20AssetData(defaultFeeAssetAddress),
|
||||
domain: {
|
||||
verifyingContractAddress: exchange.address,
|
||||
chainId,
|
||||
@@ -334,7 +338,7 @@ describe('Exchange core', () => {
|
||||
);
|
||||
expect(transferLogs.length).to.be.equal(2);
|
||||
expect((transferLogs[0] as LogWithDecodedArgs<DummyERC20TokenTransferEventArgs>).address).to.be.equal(
|
||||
zrxToken.address,
|
||||
feeToken.address,
|
||||
);
|
||||
expect((transferLogs[0] as LogWithDecodedArgs<DummyERC20TokenTransferEventArgs>).args._from).to.be.equal(
|
||||
makerAddress,
|
||||
@@ -346,7 +350,7 @@ describe('Exchange core', () => {
|
||||
(transferLogs[0] as LogWithDecodedArgs<DummyERC20TokenTransferEventArgs>).args._value,
|
||||
).to.be.bignumber.equal(signedOrder.makerFee);
|
||||
expect((transferLogs[1] as LogWithDecodedArgs<DummyERC20TokenTransferEventArgs>).address).to.be.equal(
|
||||
zrxToken.address,
|
||||
feeToken.address,
|
||||
);
|
||||
expect((transferLogs[1] as LogWithDecodedArgs<DummyERC20TokenTransferEventArgs>).args._from).to.be.equal(
|
||||
makerAddress,
|
||||
@@ -390,21 +394,21 @@ describe('Exchange core', () => {
|
||||
|
||||
const initialMakerBalanceA = await noReturnErc20Token.balanceOf.callAsync(makerAddress);
|
||||
const initialMakerBalanceB = await erc20TokenB.balanceOf.callAsync(makerAddress);
|
||||
const initialMakerZrxBalance = await zrxToken.balanceOf.callAsync(makerAddress);
|
||||
const initialMakerZrxBalance = await feeToken.balanceOf.callAsync(makerAddress);
|
||||
const initialTakerBalanceA = await noReturnErc20Token.balanceOf.callAsync(takerAddress);
|
||||
const initialTakerBalanceB = await erc20TokenB.balanceOf.callAsync(takerAddress);
|
||||
const initialTakerZrxBalance = await zrxToken.balanceOf.callAsync(takerAddress);
|
||||
const initialFeeRecipientZrxBalance = await zrxToken.balanceOf.callAsync(feeRecipientAddress);
|
||||
const initialTakerZrxBalance = await feeToken.balanceOf.callAsync(takerAddress);
|
||||
const initialFeeRecipientZrxBalance = await feeToken.balanceOf.callAsync(feeRecipientAddress);
|
||||
|
||||
await exchangeWrapper.fillOrderAsync(signedOrder, takerAddress);
|
||||
|
||||
const finalMakerBalanceA = await noReturnErc20Token.balanceOf.callAsync(makerAddress);
|
||||
const finalMakerBalanceB = await erc20TokenB.balanceOf.callAsync(makerAddress);
|
||||
const finalMakerZrxBalance = await zrxToken.balanceOf.callAsync(makerAddress);
|
||||
const finalMakerZrxBalance = await feeToken.balanceOf.callAsync(makerAddress);
|
||||
const finalTakerBalanceA = await noReturnErc20Token.balanceOf.callAsync(takerAddress);
|
||||
const finalTakerBalanceB = await erc20TokenB.balanceOf.callAsync(takerAddress);
|
||||
const finalTakerZrxBalance = await zrxToken.balanceOf.callAsync(takerAddress);
|
||||
const finalFeeRecipientZrxBalance = await zrxToken.balanceOf.callAsync(feeRecipientAddress);
|
||||
const finalTakerZrxBalance = await feeToken.balanceOf.callAsync(takerAddress);
|
||||
const finalFeeRecipientZrxBalance = await feeToken.balanceOf.callAsync(feeRecipientAddress);
|
||||
|
||||
expect(finalMakerBalanceA).to.be.bignumber.equal(initialMakerBalanceA.minus(signedOrder.makerAssetAmount));
|
||||
expect(finalMakerBalanceB).to.be.bignumber.equal(initialMakerBalanceB.plus(signedOrder.takerAssetAmount));
|
||||
@@ -425,21 +429,21 @@ describe('Exchange core', () => {
|
||||
|
||||
const initialMakerBalanceA = await noReturnErc20Token.balanceOf.callAsync(makerAddress);
|
||||
const initialMakerBalanceB = await erc20TokenB.balanceOf.callAsync(makerAddress);
|
||||
const initialMakerZrxBalance = await zrxToken.balanceOf.callAsync(makerAddress);
|
||||
const initialMakerZrxBalance = await feeToken.balanceOf.callAsync(makerAddress);
|
||||
const initialTakerBalanceA = await noReturnErc20Token.balanceOf.callAsync(takerAddress);
|
||||
const initialTakerBalanceB = await erc20TokenB.balanceOf.callAsync(takerAddress);
|
||||
const initialTakerZrxBalance = await zrxToken.balanceOf.callAsync(takerAddress);
|
||||
const initialFeeRecipientZrxBalance = await zrxToken.balanceOf.callAsync(feeRecipientAddress);
|
||||
const initialTakerZrxBalance = await feeToken.balanceOf.callAsync(takerAddress);
|
||||
const initialFeeRecipientZrxBalance = await feeToken.balanceOf.callAsync(feeRecipientAddress);
|
||||
|
||||
await exchangeWrapper.fillOrderAsync(signedOrder, takerAddress);
|
||||
|
||||
const finalMakerBalanceA = await noReturnErc20Token.balanceOf.callAsync(makerAddress);
|
||||
const finalMakerBalanceB = await erc20TokenB.balanceOf.callAsync(makerAddress);
|
||||
const finalMakerZrxBalance = await zrxToken.balanceOf.callAsync(makerAddress);
|
||||
const finalMakerZrxBalance = await feeToken.balanceOf.callAsync(makerAddress);
|
||||
const finalTakerBalanceA = await noReturnErc20Token.balanceOf.callAsync(takerAddress);
|
||||
const finalTakerBalanceB = await erc20TokenB.balanceOf.callAsync(takerAddress);
|
||||
const finalTakerZrxBalance = await zrxToken.balanceOf.callAsync(takerAddress);
|
||||
const finalFeeRecipientZrxBalance = await zrxToken.balanceOf.callAsync(feeRecipientAddress);
|
||||
const finalTakerZrxBalance = await feeToken.balanceOf.callAsync(takerAddress);
|
||||
const finalFeeRecipientZrxBalance = await feeToken.balanceOf.callAsync(feeRecipientAddress);
|
||||
|
||||
expect(finalMakerBalanceA).to.be.bignumber.equal(initialMakerBalanceA.minus(signedOrder.makerAssetAmount));
|
||||
expect(finalMakerBalanceB).to.be.bignumber.equal(initialMakerBalanceB.plus(signedOrder.takerAssetAmount));
|
||||
@@ -460,21 +464,21 @@ describe('Exchange core', () => {
|
||||
|
||||
const initialMakerBalanceA = await noReturnErc20Token.balanceOf.callAsync(makerAddress);
|
||||
const initialMakerBalanceB = await erc20TokenB.balanceOf.callAsync(makerAddress);
|
||||
const initialMakerZrxBalance = await zrxToken.balanceOf.callAsync(makerAddress);
|
||||
const initialMakerZrxBalance = await feeToken.balanceOf.callAsync(makerAddress);
|
||||
const initialTakerBalanceA = await noReturnErc20Token.balanceOf.callAsync(takerAddress);
|
||||
const initialTakerBalanceB = await erc20TokenB.balanceOf.callAsync(takerAddress);
|
||||
const initialTakerZrxBalance = await zrxToken.balanceOf.callAsync(takerAddress);
|
||||
const initialFeeRecipientZrxBalance = await zrxToken.balanceOf.callAsync(feeRecipientAddress);
|
||||
const initialTakerZrxBalance = await feeToken.balanceOf.callAsync(takerAddress);
|
||||
const initialFeeRecipientZrxBalance = await feeToken.balanceOf.callAsync(feeRecipientAddress);
|
||||
|
||||
await exchangeWrapper.fillOrderAsync(signedOrder, takerAddress);
|
||||
|
||||
const finalMakerBalanceA = await noReturnErc20Token.balanceOf.callAsync(makerAddress);
|
||||
const finalMakerBalanceB = await erc20TokenB.balanceOf.callAsync(makerAddress);
|
||||
const finalMakerZrxBalance = await zrxToken.balanceOf.callAsync(makerAddress);
|
||||
const finalMakerZrxBalance = await feeToken.balanceOf.callAsync(makerAddress);
|
||||
const finalTakerBalanceA = await noReturnErc20Token.balanceOf.callAsync(takerAddress);
|
||||
const finalTakerBalanceB = await erc20TokenB.balanceOf.callAsync(takerAddress);
|
||||
const finalTakerZrxBalance = await zrxToken.balanceOf.callAsync(takerAddress);
|
||||
const finalFeeRecipientZrxBalance = await zrxToken.balanceOf.callAsync(feeRecipientAddress);
|
||||
const finalTakerZrxBalance = await feeToken.balanceOf.callAsync(takerAddress);
|
||||
const finalFeeRecipientZrxBalance = await feeToken.balanceOf.callAsync(feeRecipientAddress);
|
||||
|
||||
expect(finalMakerBalanceA).to.be.bignumber.equal(initialMakerBalanceA.minus(signedOrder.makerAssetAmount));
|
||||
expect(finalMakerBalanceB).to.be.bignumber.equal(initialMakerBalanceB.plus(signedOrder.takerAssetAmount));
|
||||
@@ -664,8 +668,8 @@ describe('Exchange core', () => {
|
||||
expect(newBalances[makerAddress][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
||||
erc20Balances[makerAddress][defaultTakerAssetAddress].plus(fillTakerAssetAmount),
|
||||
);
|
||||
expect(newBalances[makerAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||
erc20Balances[makerAddress][zrxToken.address].minus(makerFee),
|
||||
expect(newBalances[makerAddress][feeToken.address]).to.be.bignumber.equal(
|
||||
erc20Balances[makerAddress][feeToken.address].minus(makerFee),
|
||||
);
|
||||
expect(newBalances[takerAddress][defaultTakerAssetAddress]).to.be.bignumber.equal(
|
||||
erc20Balances[takerAddress][defaultTakerAssetAddress].minus(fillTakerAssetAmount),
|
||||
@@ -673,11 +677,11 @@ describe('Exchange core', () => {
|
||||
expect(newBalances[takerAddress][defaultMakerAssetAddress]).to.be.bignumber.equal(
|
||||
erc20Balances[takerAddress][defaultMakerAssetAddress].plus(fillMakerAssetAmount),
|
||||
);
|
||||
expect(newBalances[takerAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||
erc20Balances[takerAddress][zrxToken.address].minus(takerFee),
|
||||
expect(newBalances[takerAddress][feeToken.address]).to.be.bignumber.equal(
|
||||
erc20Balances[takerAddress][feeToken.address].minus(takerFee),
|
||||
);
|
||||
expect(newBalances[feeRecipientAddress][zrxToken.address]).to.be.bignumber.equal(
|
||||
erc20Balances[feeRecipientAddress][zrxToken.address].plus(makerFee.plus(takerFee)),
|
||||
expect(newBalances[feeRecipientAddress][feeToken.address]).to.be.bignumber.equal(
|
||||
erc20Balances[feeRecipientAddress][feeToken.address].plus(makerFee.plus(takerFee)),
|
||||
);
|
||||
});
|
||||
});
|
||||
@@ -816,7 +820,7 @@ describe('Exchange core', () => {
|
||||
];
|
||||
const makerAssetData = assetDataUtils.encodeMultiAssetData(makerAmounts, makerNestedAssetData);
|
||||
const makerAssetAmount = new BigNumber(1);
|
||||
const takerAssetData = assetDataUtils.encodeERC20AssetData(zrxToken.address);
|
||||
const takerAssetData = assetDataUtils.encodeERC20AssetData(feeToken.address);
|
||||
const takerAssetAmount = new BigNumber(10);
|
||||
signedOrder = await orderFactory.newSignedOrderAsync({
|
||||
makerAssetData,
|
||||
@@ -829,19 +833,19 @@ describe('Exchange core', () => {
|
||||
|
||||
const initialMakerBalanceA = await erc20TokenA.balanceOf.callAsync(makerAddress);
|
||||
const initialMakerBalanceB = await erc20TokenB.balanceOf.callAsync(makerAddress);
|
||||
const initialMakerZrxBalance = await zrxToken.balanceOf.callAsync(makerAddress);
|
||||
const initialMakerZrxBalance = await feeToken.balanceOf.callAsync(makerAddress);
|
||||
const initialTakerBalanceA = await erc20TokenA.balanceOf.callAsync(takerAddress);
|
||||
const initialTakerBalanceB = await erc20TokenB.balanceOf.callAsync(takerAddress);
|
||||
const initialTakerZrxBalance = await zrxToken.balanceOf.callAsync(takerAddress);
|
||||
const initialTakerZrxBalance = await feeToken.balanceOf.callAsync(takerAddress);
|
||||
|
||||
await exchangeWrapper.fillOrderAsync(signedOrder, takerAddress);
|
||||
|
||||
const finalMakerBalanceA = await erc20TokenA.balanceOf.callAsync(makerAddress);
|
||||
const finalMakerBalanceB = await erc20TokenB.balanceOf.callAsync(makerAddress);
|
||||
const finalMakerZrxBalance = await zrxToken.balanceOf.callAsync(makerAddress);
|
||||
const finalMakerZrxBalance = await feeToken.balanceOf.callAsync(makerAddress);
|
||||
const finalTakerBalanceA = await erc20TokenA.balanceOf.callAsync(takerAddress);
|
||||
const finalTakerBalanceB = await erc20TokenB.balanceOf.callAsync(takerAddress);
|
||||
const finalTakerZrxBalance = await zrxToken.balanceOf.callAsync(takerAddress);
|
||||
const finalTakerZrxBalance = await feeToken.balanceOf.callAsync(takerAddress);
|
||||
|
||||
expect(finalMakerBalanceA).to.be.bignumber.equal(
|
||||
initialMakerBalanceA.minus(makerAmounts[0].times(makerAssetAmount)),
|
||||
@@ -869,7 +873,7 @@ describe('Exchange core', () => {
|
||||
const takerAmounts = [new BigNumber(10), new BigNumber(1)];
|
||||
const takerAssetId = erc721TakerAssetIds[0];
|
||||
const takerNestedAssetData = [
|
||||
assetDataUtils.encodeERC20AssetData(zrxToken.address),
|
||||
assetDataUtils.encodeERC20AssetData(feeToken.address),
|
||||
assetDataUtils.encodeERC721AssetData(erc721Token.address, takerAssetId),
|
||||
];
|
||||
const takerAssetData = assetDataUtils.encodeMultiAssetData(takerAmounts, takerNestedAssetData);
|
||||
@@ -885,10 +889,10 @@ describe('Exchange core', () => {
|
||||
|
||||
const initialMakerBalanceA = await erc20TokenA.balanceOf.callAsync(makerAddress);
|
||||
const initialMakerBalanceB = await erc20TokenB.balanceOf.callAsync(makerAddress);
|
||||
const initialMakerZrxBalance = await zrxToken.balanceOf.callAsync(makerAddress);
|
||||
const initialMakerZrxBalance = await feeToken.balanceOf.callAsync(makerAddress);
|
||||
const initialTakerBalanceA = await erc20TokenA.balanceOf.callAsync(takerAddress);
|
||||
const initialTakerBalanceB = await erc20TokenB.balanceOf.callAsync(takerAddress);
|
||||
const initialTakerZrxBalance = await zrxToken.balanceOf.callAsync(takerAddress);
|
||||
const initialTakerZrxBalance = await feeToken.balanceOf.callAsync(takerAddress);
|
||||
const initialOwnerTakerAsset = await erc721Token.ownerOf.callAsync(takerAssetId);
|
||||
expect(initialOwnerTakerAsset).to.be.bignumber.equal(takerAddress);
|
||||
|
||||
@@ -896,10 +900,10 @@ describe('Exchange core', () => {
|
||||
|
||||
const finalMakerBalanceA = await erc20TokenA.balanceOf.callAsync(makerAddress);
|
||||
const finalMakerBalanceB = await erc20TokenB.balanceOf.callAsync(makerAddress);
|
||||
const finalMakerZrxBalance = await zrxToken.balanceOf.callAsync(makerAddress);
|
||||
const finalMakerZrxBalance = await feeToken.balanceOf.callAsync(makerAddress);
|
||||
const finalTakerBalanceA = await erc20TokenA.balanceOf.callAsync(takerAddress);
|
||||
const finalTakerBalanceB = await erc20TokenB.balanceOf.callAsync(takerAddress);
|
||||
const finalTakerZrxBalance = await zrxToken.balanceOf.callAsync(takerAddress);
|
||||
const finalTakerZrxBalance = await feeToken.balanceOf.callAsync(takerAddress);
|
||||
const finalOwnerTakerAsset = await erc721Token.ownerOf.callAsync(takerAssetId);
|
||||
|
||||
expect(finalMakerBalanceA).to.be.bignumber.equal(
|
||||
@@ -930,7 +934,7 @@ describe('Exchange core', () => {
|
||||
];
|
||||
const makerAssetData = assetDataUtils.encodeMultiAssetData(makerAmounts, makerNestedAssetData);
|
||||
const makerAssetAmount = new BigNumber(30);
|
||||
const takerAssetData = assetDataUtils.encodeERC20AssetData(zrxToken.address);
|
||||
const takerAssetData = assetDataUtils.encodeERC20AssetData(feeToken.address);
|
||||
const takerAssetAmount = new BigNumber(10);
|
||||
signedOrder = await orderFactory.newSignedOrderAsync({
|
||||
makerAssetData,
|
||||
@@ -943,10 +947,10 @@ describe('Exchange core', () => {
|
||||
|
||||
const initialMakerBalanceA = await erc20TokenA.balanceOf.callAsync(makerAddress);
|
||||
const initialMakerBalanceB = await erc20TokenB.balanceOf.callAsync(makerAddress);
|
||||
const initialMakerZrxBalance = await zrxToken.balanceOf.callAsync(makerAddress);
|
||||
const initialMakerZrxBalance = await feeToken.balanceOf.callAsync(makerAddress);
|
||||
const initialTakerBalanceA = await erc20TokenA.balanceOf.callAsync(takerAddress);
|
||||
const initialTakerBalanceB = await erc20TokenB.balanceOf.callAsync(takerAddress);
|
||||
const initialTakerZrxBalance = await zrxToken.balanceOf.callAsync(takerAddress);
|
||||
const initialTakerZrxBalance = await feeToken.balanceOf.callAsync(takerAddress);
|
||||
|
||||
const takerAssetFillAmount = takerAssetAmount.dividedToIntegerBy(2);
|
||||
await exchangeWrapper.fillOrderAsync(signedOrder, takerAddress, {
|
||||
@@ -955,10 +959,10 @@ describe('Exchange core', () => {
|
||||
|
||||
const finalMakerBalanceA = await erc20TokenA.balanceOf.callAsync(makerAddress);
|
||||
const finalMakerBalanceB = await erc20TokenB.balanceOf.callAsync(makerAddress);
|
||||
const finalMakerZrxBalance = await zrxToken.balanceOf.callAsync(makerAddress);
|
||||
const finalMakerZrxBalance = await feeToken.balanceOf.callAsync(makerAddress);
|
||||
const finalTakerBalanceA = await erc20TokenA.balanceOf.callAsync(takerAddress);
|
||||
const finalTakerBalanceB = await erc20TokenB.balanceOf.callAsync(takerAddress);
|
||||
const finalTakerZrxBalance = await zrxToken.balanceOf.callAsync(takerAddress);
|
||||
const finalTakerZrxBalance = await feeToken.balanceOf.callAsync(takerAddress);
|
||||
|
||||
expect(finalMakerBalanceA).to.be.bignumber.equal(
|
||||
initialMakerBalanceA.minus(
|
||||
@@ -1007,7 +1011,7 @@ describe('Exchange core', () => {
|
||||
];
|
||||
const takerAssetData = assetDataUtils.encodeMultiAssetData(takerAmounts, takerNestedAssetData);
|
||||
const takerAssetAmount = new BigNumber(30);
|
||||
const makerAssetData = assetDataUtils.encodeERC20AssetData(zrxToken.address);
|
||||
const makerAssetData = assetDataUtils.encodeERC20AssetData(feeToken.address);
|
||||
const makerAssetAmount = new BigNumber(10);
|
||||
signedOrder = await orderFactory.newSignedOrderAsync({
|
||||
makerAssetData,
|
||||
@@ -1020,10 +1024,10 @@ describe('Exchange core', () => {
|
||||
|
||||
const initialMakerBalanceA = await erc20TokenA.balanceOf.callAsync(makerAddress);
|
||||
const initialMakerBalanceB = await erc20TokenB.balanceOf.callAsync(makerAddress);
|
||||
const initialMakerZrxBalance = await zrxToken.balanceOf.callAsync(makerAddress);
|
||||
const initialMakerZrxBalance = await feeToken.balanceOf.callAsync(makerAddress);
|
||||
const initialTakerBalanceA = await erc20TokenA.balanceOf.callAsync(takerAddress);
|
||||
const initialTakerBalanceB = await erc20TokenB.balanceOf.callAsync(takerAddress);
|
||||
const initialTakerZrxBalance = await zrxToken.balanceOf.callAsync(takerAddress);
|
||||
const initialTakerZrxBalance = await feeToken.balanceOf.callAsync(takerAddress);
|
||||
|
||||
const takerAssetFillAmount = takerAssetAmount.dividedToIntegerBy(2);
|
||||
await exchangeWrapper.fillOrderAsync(signedOrder, takerAddress, {
|
||||
@@ -1032,10 +1036,10 @@ describe('Exchange core', () => {
|
||||
|
||||
const finalMakerBalanceA = await erc20TokenA.balanceOf.callAsync(makerAddress);
|
||||
const finalMakerBalanceB = await erc20TokenB.balanceOf.callAsync(makerAddress);
|
||||
const finalMakerZrxBalance = await zrxToken.balanceOf.callAsync(makerAddress);
|
||||
const finalMakerZrxBalance = await feeToken.balanceOf.callAsync(makerAddress);
|
||||
const finalTakerBalanceA = await erc20TokenA.balanceOf.callAsync(takerAddress);
|
||||
const finalTakerBalanceB = await erc20TokenB.balanceOf.callAsync(takerAddress);
|
||||
const finalTakerZrxBalance = await zrxToken.balanceOf.callAsync(takerAddress);
|
||||
const finalTakerZrxBalance = await feeToken.balanceOf.callAsync(takerAddress);
|
||||
|
||||
expect(finalMakerBalanceA).to.be.bignumber.equal(
|
||||
initialMakerBalanceA.plus(
|
||||
|
@@ -51,7 +51,7 @@ const defaultFillScenario = {
|
||||
},
|
||||
};
|
||||
|
||||
describe('FillOrder Tests', () => {
|
||||
describe.only('FillOrder Tests', () => {
|
||||
let fillOrderCombinatorialUtils: FillOrderCombinatorialUtils;
|
||||
|
||||
before(async () => {
|
||||
@@ -71,7 +71,7 @@ describe('FillOrder Tests', () => {
|
||||
const test = (fillScenarios: FillScenario[]) => {
|
||||
_.forEach(fillScenarios, fillScenario => {
|
||||
const description = `Combinatorial OrderFill: ${JSON.stringify(fillScenario)}`;
|
||||
it(description, async () => {
|
||||
it.only(description, async () => {
|
||||
await fillOrderCombinatorialUtils.testFillOrderScenarioAsync(provider, fillScenario);
|
||||
});
|
||||
});
|
||||
|
@@ -1,5 +1,4 @@
|
||||
import { ERC20Wrapper, ERC721Wrapper } from '@0x/contracts-asset-proxy';
|
||||
import { artifacts as libsArtifacts, TestLibsContract } from '@0x/contracts-exchange-libs';
|
||||
import {
|
||||
AllowanceAmountScenario,
|
||||
AssetDataScenario,
|
||||
@@ -134,13 +133,6 @@ export async function fillOrderCombinatorialUtilsFactoryAsync(
|
||||
chainId,
|
||||
);
|
||||
|
||||
const testLibsContract = await TestLibsContract.deployFrom0xArtifactAsync(
|
||||
libsArtifacts.TestLibs,
|
||||
provider,
|
||||
txDefaults,
|
||||
new BigNumber(chainId),
|
||||
);
|
||||
|
||||
const fillOrderCombinatorialUtils = new FillOrderCombinatorialUtils(
|
||||
orderFactory,
|
||||
ownerAddress,
|
||||
@@ -148,8 +140,7 @@ export async function fillOrderCombinatorialUtilsFactoryAsync(
|
||||
makerPrivateKey,
|
||||
takerAddress,
|
||||
exchangeWrapper,
|
||||
assetWrapper,
|
||||
testLibsContract,
|
||||
assetWrapper
|
||||
);
|
||||
return fillOrderCombinatorialUtils;
|
||||
}
|
||||
@@ -162,7 +153,6 @@ export class FillOrderCombinatorialUtils {
|
||||
public takerAddress: string;
|
||||
public exchangeWrapper: ExchangeWrapper;
|
||||
public assetWrapper: AssetWrapper;
|
||||
public testLibsContract: TestLibsContract;
|
||||
public static generateFillOrderCombinations(): FillScenario[] {
|
||||
const takerScenarios = [
|
||||
TakerScenario.Unspecified,
|
||||
@@ -362,7 +352,6 @@ export class FillOrderCombinatorialUtils {
|
||||
takerAddress: string,
|
||||
exchangeWrapper: ExchangeWrapper,
|
||||
assetWrapper: AssetWrapper,
|
||||
testLibsContract: TestLibsContract,
|
||||
) {
|
||||
this.orderFactory = orderFactory;
|
||||
this.ownerAddress = ownerAddress;
|
||||
@@ -371,7 +360,6 @@ export class FillOrderCombinatorialUtils {
|
||||
this.takerAddress = takerAddress;
|
||||
this.exchangeWrapper = exchangeWrapper;
|
||||
this.assetWrapper = assetWrapper;
|
||||
this.testLibsContract = testLibsContract;
|
||||
}
|
||||
public async testFillOrderScenarioAsync(
|
||||
provider: Web3ProviderEngine,
|
||||
@@ -529,7 +517,7 @@ export class FillOrderCombinatorialUtils {
|
||||
// tslint:disable-next-line:no-unnecessary-type-assertion
|
||||
const log = txReceipt.logs[0] as LogWithDecodedArgs<ExchangeFillEventArgs>;
|
||||
expect(log.args.makerAddress).to.be.equal(makerAddress, 'log.args.makerAddress');
|
||||
expect(log.args.takerAddress).to.be.equal(this.takerAddress, 'log.args.this.takerAddress');
|
||||
expect(log.args.takerAddress).to.be.equal(this.takerAddress, 'log.args.takerAddress');
|
||||
expect(log.args.feeRecipientAddress).to.be.equal(feeRecipient, 'log.args.feeRecipientAddress');
|
||||
expect(log.args.makerAssetFilledAmount).to.be.bignumber.equal(
|
||||
expFilledMakerAmount,
|
||||
|
@@ -212,7 +212,7 @@ export class OrderFactoryFromScenario {
|
||||
}
|
||||
|
||||
const feeFromScenario = (
|
||||
feeAmountScenario : OrderAssetAmountScenario,
|
||||
feeAmountScenario: OrderAssetAmountScenario,
|
||||
feeAssetDataScenario: FeeAssetDataScenario,
|
||||
erc20EighteenDecimalTokenAddress: string,
|
||||
erc20FiveDecimalTokenAddress: string,
|
||||
@@ -221,7 +221,7 @@ export class OrderFactoryFromScenario {
|
||||
): [BigNumber, string] => {
|
||||
const feeAmount = getFeeAmountFromScenario(
|
||||
orderScenario,
|
||||
orderScenario.takerAssetDataScenario,
|
||||
feeAssetDataScenario,
|
||||
feeAmountScenario,
|
||||
);
|
||||
switch (feeAssetDataScenario) {
|
||||
@@ -271,7 +271,7 @@ export class OrderFactoryFromScenario {
|
||||
this._erc20EighteenDecimalTokenAddresses[3],
|
||||
this._erc20FiveDecimalTokenAddresses[3],
|
||||
this._erc20ZeroDecimalTokenAddresses[3],
|
||||
erc721TakerAssetIds[2],
|
||||
erc721TakerAssetIds[1],
|
||||
);
|
||||
|
||||
switch (orderScenario.expirationTimeSecondsScenario) {
|
||||
|
Reference in New Issue
Block a user