template for Compliant Forwarder tests

This commit is contained in:
Greg Hysen 2018-11-28 16:16:55 -08:00
parent 0e0e05e0e0
commit c854c99f20
2 changed files with 18 additions and 41 deletions

View File

@ -1,4 +1,3 @@
/*
import { BlockchainLifecycle } from '@0x/dev-utils'; import { BlockchainLifecycle } from '@0x/dev-utils';
import { assetDataUtils } from '@0x/order-utils'; import { assetDataUtils } from '@0x/order-utils';
import { RevertReason, SignedOrder } from '@0x/types'; import { RevertReason, SignedOrder } from '@0x/types';
@ -9,6 +8,7 @@ import { TransactionReceiptWithDecodedLogs } from 'ethereum-types';
import { DummyERC20TokenContract } from '../../generated-wrappers/dummy_erc20_token'; import { DummyERC20TokenContract } from '../../generated-wrappers/dummy_erc20_token';
import { ExchangeContract } from '../../generated-wrappers/exchange'; import { ExchangeContract } from '../../generated-wrappers/exchange';
import { CompliantForwarderContract } from '../../generated-wrappers/compliant_forwarder';
import { WETH9Contract } from '../../generated-wrappers/weth9'; import { WETH9Contract } from '../../generated-wrappers/weth9';
import { artifacts } from '../../src/artifacts'; import { artifacts } from '../../src/artifacts';
@ -46,8 +46,7 @@ describe(ContractName.Forwarder, () => {
let weth: DummyERC20TokenContract; let weth: DummyERC20TokenContract;
let zrxToken: DummyERC20TokenContract; let zrxToken: DummyERC20TokenContract;
let erc20TokenA: DummyERC20TokenContract; let erc20TokenA: DummyERC20TokenContract;
let erc721Token: DummyERC721TokenContract; let compliantForwarderContract: CompliantForwarderContract;
let forwarderContract: ForwarderContract;
let wethContract: WETH9Contract; let wethContract: WETH9Contract;
let forwarderWrapper: ForwarderWrapper; let forwarderWrapper: ForwarderWrapper;
let exchangeWrapper: ExchangeWrapper; let exchangeWrapper: ExchangeWrapper;
@ -85,12 +84,6 @@ describe(ContractName.Forwarder, () => {
const erc20Proxy = await erc20Wrapper.deployProxyAsync(); const erc20Proxy = await erc20Wrapper.deployProxyAsync();
await erc20Wrapper.setBalancesAndAllowancesAsync(); await erc20Wrapper.setBalancesAndAllowancesAsync();
[erc721Token] = await erc721Wrapper.deployDummyTokensAsync();
const erc721Proxy = await erc721Wrapper.deployProxyAsync();
await erc721Wrapper.setBalancesAndAllowancesAsync();
const erc721Balances = await erc721Wrapper.getBalancesAsync();
erc721MakerAssetIds = erc721Balances[makerAddress][erc721Token.address];
wethContract = await WETH9Contract.deployFrom0xArtifactAsync(artifacts.WETH9, provider, txDefaults); wethContract = await WETH9Contract.deployFrom0xArtifactAsync(artifacts.WETH9, provider, txDefaults);
weth = new DummyERC20TokenContract(wethContract.abi, wethContract.address, provider); weth = new DummyERC20TokenContract(wethContract.abi, wethContract.address, provider);
erc20Wrapper.addDummyTokenContract(weth); erc20Wrapper.addDummyTokenContract(weth);
@ -105,14 +98,10 @@ describe(ContractName.Forwarder, () => {
); );
exchangeWrapper = new ExchangeWrapper(exchangeInstance, provider); exchangeWrapper = new ExchangeWrapper(exchangeInstance, provider);
await exchangeWrapper.registerAssetProxyAsync(erc20Proxy.address, owner); await exchangeWrapper.registerAssetProxyAsync(erc20Proxy.address, owner);
await exchangeWrapper.registerAssetProxyAsync(erc721Proxy.address, owner);
await erc20Proxy.addAuthorizedAddress.sendTransactionAsync(exchangeInstance.address, { await erc20Proxy.addAuthorizedAddress.sendTransactionAsync(exchangeInstance.address, {
from: owner, from: owner,
}); });
await erc721Proxy.addAuthorizedAddress.sendTransactionAsync(exchangeInstance.address, {
from: owner,
});
defaultMakerAssetAddress = erc20TokenA.address; defaultMakerAssetAddress = erc20TokenA.address;
const defaultTakerAssetAddress = wethContract.address; const defaultTakerAssetAddress = wethContract.address;
@ -130,21 +119,28 @@ describe(ContractName.Forwarder, () => {
const privateKey = constants.TESTRPC_PRIVATE_KEYS[accounts.indexOf(makerAddress)]; const privateKey = constants.TESTRPC_PRIVATE_KEYS[accounts.indexOf(makerAddress)];
orderFactory = new OrderFactory(privateKey, defaultOrderParams); orderFactory = new OrderFactory(privateKey, defaultOrderParams);
const forwarderInstance = await ForwarderContract.deployFrom0xArtifactAsync( const compliantForwarderInstance = await CompliantForwarderContract.deployFrom0xArtifactAsync(
artifacts.Forwarder, artifacts.CompliantForwarder,
provider, provider,
txDefaults, txDefaults,
exchangeInstance.address, exchangeInstance.address,
zrxAssetData, exchangeInstance.address, // @TODO CHANGE to Yes Token
wethAssetData,
); );
forwarderContract = new ForwarderContract(forwarderInstance.abi, forwarderInstance.address, provider);
forwarderWrapper = new ForwarderWrapper(forwarderContract, provider); compliantForwarderContract = new CompliantForwarderContract(
compliantForwarderInstance.abi,
compliantForwarderInstance.address,
provider,
);
/*
forwarderWrapper = new ForwarderWrapper(compliantForwarderContract, provider);
*/
const zrxDepositAmount = Web3Wrapper.toBaseUnitAmount(new BigNumber(10000), 18); const zrxDepositAmount = Web3Wrapper.toBaseUnitAmount(new BigNumber(10000), 18);
await web3Wrapper.awaitTransactionSuccessAsync( await web3Wrapper.awaitTransactionSuccessAsync(
await zrxToken.transfer.sendTransactionAsync(forwarderContract.address, zrxDepositAmount), await zrxToken.transfer.sendTransactionAsync(compliantForwarderContract.address, zrxDepositAmount),
); );
erc20Wrapper.addTokenOwnerAddress(forwarderInstance.address); erc20Wrapper.addTokenOwnerAddress(compliantForwarderInstance.address);
}); });
after(async () => { after(async () => {
await blockchainLifecycle.revertAsync(); await blockchainLifecycle.revertAsync();
@ -167,27 +163,8 @@ describe(ContractName.Forwarder, () => {
}); });
describe('constructor', () => { describe('constructor', () => {
it('should revert if assetProxy is unregistered', async () => { it('should revert if assetProxy is unregistered', async () => {});
const exchangeInstance = await ExchangeContract.deployFrom0xArtifactAsync(
artifacts.Exchange,
provider,
txDefaults,
zrxAssetData,
);
return expectContractCreationFailedAsync(
(ForwarderContract.deployFrom0xArtifactAsync(
artifacts.Forwarder,
provider,
txDefaults,
exchangeInstance.address,
zrxAssetData,
wethAssetData,
) as any) as sendTransactionResult,
RevertReason.UnregisteredAssetProxy,
);
});
}); });
}); });
// tslint:disable:max-file-line-count // tslint:disable:max-file-line-count
// tslint:enable:no-unnecessary-type-assertion // tslint:enable:no-unnecessary-type-assertion
*/