@0x:contracts-integrations Reduced reliance on DevUtils even more
This commit is contained in:
@@ -71,6 +71,14 @@ blockchainTests.resets('Coordinator integration tests', env => {
|
||||
takerAssetData: await devUtils.encodeERC20AssetData(takerToken.address).callAsync(),
|
||||
makerFeeAssetData: await devUtils.encodeERC20AssetData(makerFeeToken.address).callAsync(),
|
||||
takerFeeAssetData: await devUtils.encodeERC20AssetData(takerFeeToken.address).callAsync(),
|
||||
makerAssetData: deployment.assetDataEncoder.ERC20Token.getABIEncodedTransactionData(makerToken.address),
|
||||
takerAssetData: deployment.assetDataEncoder.ERC20Token.getABIEncodedTransactionData(takerToken.address),
|
||||
makerFeeAssetData: deployment.assetDataEncoder.ERC20Token.getABIEncodedTransactionData(
|
||||
makerFeeToken.address,
|
||||
),
|
||||
takerFeeAssetData: deployment.assetDataEncoder.ERC20Token.getABIEncodedTransactionData(
|
||||
takerFeeToken.address,
|
||||
),
|
||||
},
|
||||
});
|
||||
|
||||
@@ -144,7 +152,7 @@ blockchainTests.resets('Coordinator integration tests', env => {
|
||||
taker.address,
|
||||
deployment.staking.stakingProxy.address,
|
||||
DeploymentManager.protocolFee,
|
||||
await devUtils.encodeERC20AssetData(deployment.tokens.weth.address).callAsync(),
|
||||
deployment.assetDataEncoder.ERC20Token.getABIEncodedTransactionData(deployment.tokens.weth.address),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,10 +62,18 @@ blockchainTests.resets('Exchange wrappers', env => {
|
||||
name: 'market maker',
|
||||
deployment,
|
||||
orderConfig: {
|
||||
makerAssetData: await devUtils.encodeERC20AssetData(deployment.tokens.erc20[0].address).callAsync(),
|
||||
takerAssetData: await devUtils.encodeERC20AssetData(deployment.tokens.erc20[1].address).callAsync(),
|
||||
makerFeeAssetData: await devUtils.encodeERC20AssetData(deployment.tokens.erc20[2].address).callAsync(),
|
||||
takerFeeAssetData: await devUtils.encodeERC20AssetData(deployment.tokens.erc20[2].address).callAsync(),
|
||||
makerAssetData: deployment.assetDataEncoder.ERC20Token.getABIEncodedTransactionData(
|
||||
deployment.tokens.erc20[0].address,
|
||||
),
|
||||
takerAssetData: deployment.assetDataEncoder.ERC20Token.getABIEncodedTransactionData(
|
||||
deployment.tokens.erc20[1].address,
|
||||
),
|
||||
makerFeeAssetData: deployment.assetDataEncoder.ERC20Token.getABIEncodedTransactionData(
|
||||
deployment.tokens.erc20[2].address,
|
||||
),
|
||||
takerFeeAssetData: deployment.assetDataEncoder.ERC20Token.getABIEncodedTransactionData(
|
||||
deployment.tokens.erc20[2].address,
|
||||
),
|
||||
feeRecipientAddress: feeRecipient,
|
||||
},
|
||||
});
|
||||
@@ -103,7 +111,16 @@ blockchainTests.resets('Exchange wrappers', env => {
|
||||
|
||||
initialLocalBalances = LocalBalanceStore.create(devUtils, blockchainBalances);
|
||||
|
||||
wethAssetData = await devUtils.encodeERC20AssetData(deployment.tokens.weth.address).callAsync();
|
||||
wethAssetData = deployment.assetDataEncoder.ERC20Token.getABIEncodedTransactionData(
|
||||
deployment.tokens.weth.address,
|
||||
);
|
||||
|
||||
txHelper = new TransactionHelper(env.web3Wrapper, {
|
||||
...assetProxyArtifacts,
|
||||
...exchangeArtifacts,
|
||||
...stakingArtifacts,
|
||||
...erc20Artifacts,
|
||||
});
|
||||
});
|
||||
|
||||
beforeEach(async () => {
|
||||
@@ -775,9 +792,9 @@ blockchainTests.resets('Exchange wrappers', env => {
|
||||
});
|
||||
|
||||
it('should fill a signedOrder that does not use the same takerAssetAddress (eth protocol fee)', async () => {
|
||||
const differentTakerAssetData = await devUtils
|
||||
.encodeERC20AssetData(deployment.tokens.erc20[2].address)
|
||||
.callAsync();
|
||||
const differentTakerAssetData = deployment.assetDataEncoder.ERC20Token.getABIEncodedTransactionData(
|
||||
deployment.tokens.erc20[2].address,
|
||||
);
|
||||
|
||||
signedOrders = [
|
||||
await maker.signOrderAsync(),
|
||||
@@ -798,9 +815,9 @@ blockchainTests.resets('Exchange wrappers', env => {
|
||||
});
|
||||
|
||||
it('should fill a signedOrder that does not use the same takerAssetAddress (weth protocol fee)', async () => {
|
||||
const differentTakerAssetData = await devUtils
|
||||
.encodeERC20AssetData(deployment.tokens.erc20[2].address)
|
||||
.callAsync();
|
||||
const differentTakerAssetData = deployment.assetDataEncoder.ERC20Token.getABIEncodedTransactionData(
|
||||
deployment.tokens.erc20[2].address,
|
||||
);
|
||||
|
||||
signedOrders = [
|
||||
await maker.signOrderAsync(),
|
||||
@@ -973,9 +990,9 @@ blockchainTests.resets('Exchange wrappers', env => {
|
||||
});
|
||||
|
||||
it('should fill a signedOrder that does not use the same makerAssetAddress (eth protocol fee)', async () => {
|
||||
const differentMakerAssetData = await devUtils
|
||||
.encodeERC20AssetData(deployment.tokens.erc20[2].address)
|
||||
.callAsync();
|
||||
const differentMakerAssetData = deployment.assetDataEncoder.ERC20Token.getABIEncodedTransactionData(
|
||||
deployment.tokens.erc20[2].address,
|
||||
);
|
||||
|
||||
signedOrders = [
|
||||
await maker.signOrderAsync(),
|
||||
@@ -997,9 +1014,9 @@ blockchainTests.resets('Exchange wrappers', env => {
|
||||
});
|
||||
|
||||
it('should fill a signedOrder that does not use the same makerAssetAddress (weth protocol fee)', async () => {
|
||||
const differentMakerAssetData = await devUtils
|
||||
.encodeERC20AssetData(deployment.tokens.erc20[2].address)
|
||||
.callAsync();
|
||||
const differentMakerAssetData = deployment.assetDataEncoder.ERC20Token.getABIEncodedTransactionData(
|
||||
deployment.tokens.erc20[2].address,
|
||||
);
|
||||
|
||||
signedOrders = [
|
||||
await maker.signOrderAsync(),
|
||||
|
||||
@@ -60,10 +60,10 @@ blockchainTests.resets('fillOrder integration tests', env => {
|
||||
});
|
||||
const orderConfig = {
|
||||
feeRecipientAddress: feeRecipient.address,
|
||||
makerAssetData: await devUtils.encodeERC20AssetData(makerToken.address).callAsync(),
|
||||
takerAssetData: await devUtils.encodeERC20AssetData(takerToken.address).callAsync(),
|
||||
makerFeeAssetData: await devUtils.encodeERC20AssetData(makerToken.address).callAsync(),
|
||||
takerFeeAssetData: await devUtils.encodeERC20AssetData(takerToken.address).callAsync(),
|
||||
makerAssetData: deployment.assetDataEncoder.ERC20Token.getABIEncodedTransactionData(makerToken.address),
|
||||
takerAssetData: deployment.assetDataEncoder.ERC20Token.getABIEncodedTransactionData(takerToken.address),
|
||||
makerFeeAssetData: deployment.assetDataEncoder.ERC20Token.getABIEncodedTransactionData(makerToken.address),
|
||||
takerFeeAssetData: deployment.assetDataEncoder.ERC20Token.getABIEncodedTransactionData(takerToken.address),
|
||||
makerFee: constants.ZERO_AMOUNT,
|
||||
takerFee: constants.ZERO_AMOUNT,
|
||||
};
|
||||
@@ -144,7 +144,7 @@ blockchainTests.resets('fillOrder integration tests', env => {
|
||||
taker.address,
|
||||
deployment.staking.stakingProxy.address,
|
||||
DeploymentManager.protocolFee,
|
||||
await devUtils.encodeERC20AssetData(deployment.tokens.weth.address).callAsync(),
|
||||
deployment.assetDataEncoder.ERC20Token.getABIEncodedTransactionData(deployment.tokens.weth.address),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -308,7 +308,7 @@ blockchainTests.resets('fillOrder integration tests', env => {
|
||||
deployment.staking.stakingProxy.address,
|
||||
operator.address,
|
||||
operatorReward,
|
||||
await devUtils.encodeERC20AssetData(deployment.tokens.weth.address).callAsync(),
|
||||
deployment.assetDataEncoder.ERC20Token.getABIEncodedTransactionData(deployment.tokens.weth.address),
|
||||
);
|
||||
expectedBalances.burnGas(delegator.address, DeploymentManager.gasPrice.times(finalizePoolReceipt.gasUsed));
|
||||
await balanceStore.updateBalancesAsync();
|
||||
@@ -390,7 +390,7 @@ blockchainTests.resets('fillOrder integration tests', env => {
|
||||
deployment.staking.stakingProxy.address,
|
||||
operator.address,
|
||||
operatorReward,
|
||||
await devUtils.encodeERC20AssetData(deployment.tokens.weth.address).callAsync(),
|
||||
deployment.assetDataEncoder.ERC20Token.getABIEncodedTransactionData(deployment.tokens.weth.address),
|
||||
);
|
||||
expectedBalances.burnGas(delegator.address, DeploymentManager.gasPrice.times(finalizePoolReceipt.gasUsed));
|
||||
await balanceStore.updateBalancesAsync();
|
||||
|
||||
@@ -56,8 +56,10 @@ blockchainTests('Forwarder integration tests', env => {
|
||||
|
||||
[makerToken, makerFeeToken, anotherErc20Token] = deployment.tokens.erc20;
|
||||
[erc721Token] = deployment.tokens.erc721;
|
||||
wethAssetData = await devUtils.encodeERC20AssetData(deployment.tokens.weth.address).callAsync();
|
||||
makerAssetData = await devUtils.encodeERC20AssetData(makerToken.address).callAsync();
|
||||
wethAssetData = deployment.assetDataEncoder.ERC20Token.getABIEncodedTransactionData(
|
||||
deployment.tokens.weth.address,
|
||||
);
|
||||
makerAssetData = deployment.assetDataEncoder.ERC20Token.getABIEncodedTransactionData(makerToken.address);
|
||||
|
||||
taker = new Taker({ name: 'Taker', deployment });
|
||||
orderFeeRecipient = new FeeRecipient({
|
||||
@@ -78,7 +80,9 @@ blockchainTests('Forwarder integration tests', env => {
|
||||
makerAssetData,
|
||||
takerAssetData: wethAssetData,
|
||||
takerFee: constants.ZERO_AMOUNT,
|
||||
makerFeeAssetData: await devUtils.encodeERC20AssetData(makerFeeToken.address).callAsync(),
|
||||
makerFeeAssetData: deployment.assetDataEncoder.ERC20Token.getABIEncodedTransactionData(
|
||||
makerFeeToken.address,
|
||||
),
|
||||
takerFeeAssetData: wethAssetData,
|
||||
},
|
||||
});
|
||||
@@ -170,7 +174,9 @@ blockchainTests('Forwarder integration tests', env => {
|
||||
await testFactory.marketSellTestAsync(orders, 1.34);
|
||||
});
|
||||
it('should fail to fill an order with a percentage fee if the asset proxy is not yet approved', async () => {
|
||||
const unapprovedAsset = await devUtils.encodeERC20AssetData(anotherErc20Token.address).callAsync();
|
||||
const unapprovedAsset = deployment.assetDataEncoder.ERC20Token.getABIEncodedTransactionData(
|
||||
anotherErc20Token.address,
|
||||
);
|
||||
const order = await maker.signOrderAsync({
|
||||
makerAssetData: unapprovedAsset,
|
||||
takerFee: toBaseUnitAmount(2),
|
||||
@@ -242,9 +248,9 @@ blockchainTests('Forwarder integration tests', env => {
|
||||
});
|
||||
it('should fill orders with different makerAssetData', async () => {
|
||||
const firstOrder = await maker.signOrderAsync();
|
||||
const secondOrderMakerAssetData = await devUtils
|
||||
.encodeERC20AssetData(anotherErc20Token.address)
|
||||
.callAsync();
|
||||
const secondOrderMakerAssetData = deployment.assetDataEncoder.ERC20Token.getABIEncodedTransactionData(
|
||||
anotherErc20Token.address,
|
||||
);
|
||||
const secondOrder = await maker.signOrderAsync({
|
||||
makerAssetData: secondOrderMakerAssetData,
|
||||
});
|
||||
@@ -253,7 +259,9 @@ blockchainTests('Forwarder integration tests', env => {
|
||||
await testFactory.marketSellTestAsync(orders, 1.5);
|
||||
});
|
||||
it('should fail to fill an order with a fee denominated in an asset other than makerAsset or WETH', async () => {
|
||||
const takerFeeAssetData = await devUtils.encodeERC20AssetData(anotherErc20Token.address).callAsync();
|
||||
const takerFeeAssetData = deployment.assetDataEncoder.ERC20Token.getABIEncodedTransactionData(
|
||||
anotherErc20Token.address,
|
||||
);
|
||||
const order = await maker.signOrderAsync({
|
||||
takerFeeAssetData,
|
||||
takerFee: toBaseUnitAmount(1),
|
||||
@@ -344,9 +352,9 @@ blockchainTests('Forwarder integration tests', env => {
|
||||
});
|
||||
it('should buy exactly makerAssetBuyAmount in orders with different makerAssetData', async () => {
|
||||
const firstOrder = await maker.signOrderAsync();
|
||||
const secondOrderMakerAssetData = await devUtils
|
||||
.encodeERC20AssetData(anotherErc20Token.address)
|
||||
.callAsync();
|
||||
const secondOrderMakerAssetData = deployment.assetDataEncoder.ERC20Token.getABIEncodedTransactionData(
|
||||
anotherErc20Token.address,
|
||||
);
|
||||
const secondOrder = await maker.signOrderAsync({
|
||||
makerAssetData: secondOrderMakerAssetData,
|
||||
});
|
||||
@@ -395,7 +403,10 @@ blockchainTests('Forwarder integration tests', env => {
|
||||
it('should buy an ERC721 asset from a single order', async () => {
|
||||
const erc721Order = await maker.signOrderAsync({
|
||||
makerAssetAmount: new BigNumber(1),
|
||||
makerAssetData: await devUtils.encodeERC721AssetData(erc721Token.address, nftId).callAsync(),
|
||||
makerAssetData: deployment.assetDataEncoder.ERC721Token.getABIEncodedTransactionData(
|
||||
erc721Token.address,
|
||||
nftId,
|
||||
),
|
||||
takerFeeAssetData: wethAssetData,
|
||||
});
|
||||
await testFactory.marketBuyTestAsync([erc721Order], 1);
|
||||
@@ -403,14 +414,14 @@ blockchainTests('Forwarder integration tests', env => {
|
||||
it('should buy an ERC721 asset and pay a WETH fee', async () => {
|
||||
const erc721orderWithWethFee = await maker.signOrderAsync({
|
||||
makerAssetAmount: new BigNumber(1),
|
||||
makerAssetData: await devUtils.encodeERC721AssetData(erc721Token.address, nftId).callAsync(),
|
||||
makerAssetData: deployment.assetDataEncoder.ERC721Token.getABIEncodedTransactionData(erc721Token.address, nftId),
|
||||
takerFee: toBaseUnitAmount(1),
|
||||
takerFeeAssetData: wethAssetData,
|
||||
});
|
||||
await testFactory.marketBuyTestAsync([erc721orderWithWethFee], 1);
|
||||
});
|
||||
it('should fail to fill an order with a fee denominated in an asset other than makerAsset or WETH', async () => {
|
||||
const takerFeeAssetData = await devUtils.encodeERC20AssetData(anotherErc20Token.address).callAsync();
|
||||
const takerFeeAssetData = deployment.assetDataEncoder.ERC20Token.getABIEncodedTransactionData(anotherErc20Token.address);
|
||||
const order = await maker.signOrderAsync({
|
||||
takerFeeAssetData,
|
||||
takerFee: toBaseUnitAmount(1),
|
||||
|
||||
@@ -41,7 +41,7 @@ export function validStakeAssertion(
|
||||
txData.from as string,
|
||||
zrxVault.address,
|
||||
amount,
|
||||
await deployment.devUtils.encodeERC20AssetData(deployment.tokens.zrx.address).callAsync(),
|
||||
deployment.assetDataEncoder.ERC20Token.getABIEncodedTransactionData(deployment.tokens.zrx.address),
|
||||
);
|
||||
return expectedBalances;
|
||||
},
|
||||
|
||||
@@ -3,6 +3,7 @@ import {
|
||||
ERC1155ProxyContract,
|
||||
ERC20ProxyContract,
|
||||
ERC721ProxyContract,
|
||||
IAssetDataContract,
|
||||
MultiAssetProxyContract,
|
||||
StaticCallProxyContract,
|
||||
} from '@0x/contracts-asset-proxy';
|
||||
@@ -193,6 +194,7 @@ export class DeploymentManager {
|
||||
]);
|
||||
|
||||
const devUtils = new DevUtilsContract(constants.NULL_ADDRESS, environment.provider);
|
||||
const assetDataEncoder = new IAssetDataContract(constants.NULL_ADDRESS, environment.provider);
|
||||
|
||||
// Create a `TransactionHelper` object that uses all of the packages artifacts.
|
||||
const txHelper = new TransactionHelper(environment.web3Wrapper, {
|
||||
@@ -215,6 +217,7 @@ export class DeploymentManager {
|
||||
accounts,
|
||||
txDefaults,
|
||||
devUtils,
|
||||
assetDataEncoder,
|
||||
txHelper,
|
||||
);
|
||||
}
|
||||
@@ -506,6 +509,7 @@ export class DeploymentManager {
|
||||
public accounts: string[],
|
||||
public txDefaults: Partial<TxData>,
|
||||
public devUtils: DevUtilsContract,
|
||||
public assetDataEncoder: IAssetDataContract,
|
||||
public txHelper: TransactionHelper,
|
||||
) {}
|
||||
}
|
||||
|
||||
@@ -9,12 +9,12 @@ import { BigNumber } from '@0x/utils';
|
||||
|
||||
import { Actor } from '../actors/base';
|
||||
import { Maker } from '../actors/maker';
|
||||
import { DeploymentManager } from '../utils/deployment_manager';
|
||||
import { DeploymentManager } from '../deployment_manager';
|
||||
import { MatchOrderTester, MatchTransferAmounts } from '../utils/match_order_tester';
|
||||
|
||||
const { isRoundingErrorCeil, isRoundingErrorFloor } = LibReferenceFunctions;
|
||||
|
||||
blockchainTests.resets.only('matchOrders', env => {
|
||||
blockchainTests.resets('matchOrders integration tests', env => {
|
||||
// The fee recipient addresses.
|
||||
let feeRecipientLeft: Actor;
|
||||
let feeRecipientRight: Actor;
|
||||
|
||||
@@ -8,7 +8,7 @@ import { BigNumber } from '@0x/utils';
|
||||
import { LogWithDecodedArgs, TransactionReceiptWithDecodedLogs } from 'ethereum-types';
|
||||
import * as _ from 'lodash';
|
||||
|
||||
import { DeploymentManager } from './deployment_manager';
|
||||
import { DeploymentManager } from '../deployment_manager';
|
||||
|
||||
export interface FillEventArgs {
|
||||
orderHash: string;
|
||||
|
||||
Reference in New Issue
Block a user