// import { tokenUtils } from '@0x/contract-wrappers/lib/test/utils/token_utils'; // import { BlockchainLifecycle } from '@0x/dev-utils'; // import { FillScenarios } from '@0x/fill-scenarios'; // import { assetDataUtils } from '@0x/order-utils'; // import { BigNumber } from '@0x/utils'; // import 'mocha'; // import { ForwarderSwapQuoteConsumer } from '../src'; // import { chaiSetup } from './utils/chai_setup'; // import { migrateOnceAsync } from './utils/migrate'; // import { getFullyFillableSwapQuoteWithNoFees, getSignedOrdersWithNoFees } from './utils/swap_quote'; // import { provider, web3Wrapper } from './utils/web3_wrapper'; // chaiSetup.configure(); // const blockchainLifecycle = new BlockchainLifecycle(web3Wrapper); // const FILLABLE_AMOUNTS = [new BigNumber(5), new BigNumber(10)]; // const TESTRPC_NETWORK_ID = 50; // describe('ForwarderSwapQuoteConsumer', () => { // // let userAddresses: string[]; // // let makerAddress: string; // // let takerAddress: string; // // let fillScenarios: FillScenarios; // // let feeRecipient: string; // // let makerAssetData: string; // // let takerAssetData: string; // // let wethAssetData: string; // // const networkId = TESTRPC_NETWORK_ID; // before(async () => { // // const contractAddresses = await migrateOnceAsync(); // // await blockchainLifecycle.startAsync(); // // userAddresses = await web3Wrapper.getAvailableAddressesAsync(); // // fillScenarios = new FillScenarios( // // provider, // // userAddresses, // // contractAddresses.zrxToken, // // contractAddresses.exchange, // // contractAddresses.erc20Proxy, // // contractAddresses.erc721Proxy, // // ); // // [makerAddress, takerAddress, feeRecipient] = userAddresses; // // const [makerTokenAddress, takerTokenAddress] = tokenUtils.getDummyERC20TokenAddresses(); // // [makerAssetData, takerAssetData, wethAssetData] = [ // // assetDataUtils.encodeERC20AssetData(makerTokenAddress), // // assetDataUtils.encodeERC20AssetData(takerTokenAddress), // // assetDataUtils.encodeERC20AssetData(contractAddresses.etherToken), // // ]; // }); // after(async () => { // // await blockchainLifecycle.revertAsync(); // }); // beforeEach(async () => { // // await blockchainLifecycle.startAsync(); // // This constructor has incorrect types // }); // afterEach(async () => { // // await blockchainLifecycle.revertAsync(); // }); // describe('getSmartContractParamsOrThrow', () => { // describe('validation', () => { // it('should throw if swap quote provided is not a valid forwarder SwapQuote (taker asset is WETH)', async () => { // // const invalidSignedOrders = getSignedOrdersWithNoFees( // // makerAssetData, // // takerAssetData, // // makerAddress, // // takerAddress, // // FILLABLE_AMOUNTS, // // ); // // const invalidSwapQuote = getFullyFillableSwapQuoteWithNoFees(makerAssetData, takerAssetData, invalidSignedOrders); // // const swapQuoteConsumer = new ForwarderSwapQuoteConsumer(provider, {}); // // TODO(dave4506) finish up testing/coverage // // expect( // // swapQuoteConsumer.getSmartContractParamsOrThrow(invalidSwapQuote, {}), // // ).to.throws(); // }); // }); // describe('valid swap quote', async () => { // it('provide correct smart contract params with default options', async () => { // // const signedOrders = getSignedOrdersWithNoFees( // // makerAssetData, // // wethAssetData, // // makerAddress, // // takerAddress, // // FILLABLE_AMOUNTS, // // ); // // const swapQuote = getFullyFillableSwapQuoteWithNoFees(makerAssetData, takerAssetData, signedOrders); // // const swapQuoteConsumer = new ForwarderSwapQuoteConsumer(provider, { networkId }); // // const smartContractParamsInfo = await swapQuoteConsumer.getSmartContractParamsOrThrowAsync(swapQuote, {}); // // console.log(smartContractParamsInfo); // // TODO(dave4506): Add elaborate testing // }); // }); // }); // describe('getCalldataOrThrow', () => { // describe('validation', () => { // it('should throw if swap quote provided is not a valid forwarder SwapQuote (taker asset is WETH)', async () => { // // const invalidSignedOrders = getSignedOrdersWithNoFees( // // makerAssetData, // // takerAssetData, // // makerAddress, // // takerAddress, // // FILLABLE_AMOUNTS, // // ); // // const invalidSwapQuote = getFullyFillableSwapQuoteWithNoFees(makerAssetData, takerAssetData, invalidSignedOrders); // // const swapQuoteConsumer = new ForwarderSwapQuoteConsumer(provider, {}); // // TODO(dave4506) finish up testing/coverage // // expect( // // swapQuoteConsumer.getSmartContractParamsOrThrow(invalidSwapQuote, {}), // // ).to.throws(); // }); // }); // describe('valid swap quote', async () => { // it('provide correct calldata hex with default options', async () => { // // const signedOrders = getSignedOrdersWithNoFees( // // makerAssetData, // // wethAssetData, // // makerAddress, // // takerAddress, // // FILLABLE_AMOUNTS, // // ); // // const swapQuote = getFullyFillableSwapQuoteWithNoFees(makerAssetData, takerAssetData, signedOrders); // // const swapQuoteConsumer = new ForwarderSwapQuoteConsumer(provider, { networkId }); // // const callDataInfo = await swapQuoteConsumer.getCalldataOrThrowAsync(swapQuote, {}); // // console.log(callDataInfo); // // TODO(dave4506): Add elaborate testing // }); // }); // }); // });