From dd77a38535230df7ce92c29dbbdd00938ccc1edb Mon Sep 17 00:00:00 2001 From: Jacob Evans Date: Mon, 9 Jul 2018 14:06:06 +1000 Subject: [PATCH 1/3] Add Migrations for Forwarder --- ...WithTimeLockExceptRemoveAuthorizedAddress.sol | 4 ++-- packages/migrations/compiler.json | 2 +- packages/migrations/src/2.0.0/migration.ts | 16 ++++++++++++++++ 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/packages/contracts/src/1.0.0/MultiSigWalletWithTImeLockExceptRemoveAuthorizedAddress/MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress.sol b/packages/contracts/src/1.0.0/MultiSigWalletWithTImeLockExceptRemoveAuthorizedAddress/MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress.sol index 241e02d4ae..aee722c531 100644 --- a/packages/contracts/src/1.0.0/MultiSigWalletWithTImeLockExceptRemoveAuthorizedAddress/MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress.sol +++ b/packages/contracts/src/1.0.0/MultiSigWalletWithTImeLockExceptRemoveAuthorizedAddress/MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress.sol @@ -18,7 +18,7 @@ pragma solidity ^0.4.10; -import "../../current/multisig/MultiSigWalletWithTimeLock.sol"; +import "../../2.0.0/multisig/MultiSigWalletWithTimeLock.sol"; contract MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress is MultiSigWalletWithTimeLock { @@ -79,4 +79,4 @@ contract MultiSigWalletWithTimeLockExceptRemoveAuthorizedAddress is MultiSigWall } return true; } -} \ No newline at end of file +} diff --git a/packages/migrations/compiler.json b/packages/migrations/compiler.json index eae22a73c9..493a73d463 100644 --- a/packages/migrations/compiler.json +++ b/packages/migrations/compiler.json @@ -1,5 +1,5 @@ { - "contractsDir": "../contracts/src/contracts", + "contractsDir": "../contracts/src/", "compilerSettings": { "optimizer": { "enabled": true, diff --git a/packages/migrations/src/2.0.0/migration.ts b/packages/migrations/src/2.0.0/migration.ts index 75e60d3e23..248e861028 100644 --- a/packages/migrations/src/2.0.0/migration.ts +++ b/packages/migrations/src/2.0.0/migration.ts @@ -13,6 +13,7 @@ import { DummyERC721TokenContract } from './contract_wrappers/dummy_erc721_token import { ERC20ProxyContract } from './contract_wrappers/erc20_proxy'; import { ERC721ProxyContract } from './contract_wrappers/erc721_proxy'; import { ExchangeContract } from './contract_wrappers/exchange'; +import { ForwarderContract } from './contract_wrappers/forwarder'; import { WETH9Contract } from './contract_wrappers/weth9'; import { ZRXTokenContract } from './contract_wrappers/zrx_token'; @@ -127,4 +128,19 @@ export const runV2MigrationsAsync = async (provider: Provider, artifactsDir: str erc721TokenInfo[0].name, erc721TokenInfo[0].symbol, ); + + // Forwarder + const erc20ProxyId = await erc20proxy.getProxyId.callAsync(); + const forwarder = await ForwarderContract.deployFrom0xArtifactAsync( + artifacts.Forwarder, + provider, + txDefaults, + exchange.address, + etherToken.address, + zrxToken.address, + erc20ProxyId, + assetProxyUtils.encodeERC20AssetData(zrxToken.address), + assetProxyUtils.encodeERC20AssetData(etherToken.address), + ); + artifactsWriter.saveArtifact(forwarder); }; From 81b4f4928d1125ebe1900aef597cbe99f5c349bc Mon Sep 17 00:00:00 2001 From: Jacob Evans Date: Mon, 9 Jul 2018 16:50:26 +1000 Subject: [PATCH 2/3] Remove extra ERC20ProxyId from Forwarder constructor --- .../contracts/src/2.0.0/forwarder/Forwarder.sol | 1 - packages/contracts/test/forwarder/forwarder.ts | 3 +-- packages/migrations/artifacts/2.0.0/Forwarder.json | 14 ++++++++------ packages/migrations/src/2.0.0/migration.ts | 2 -- 4 files changed, 9 insertions(+), 11 deletions(-) diff --git a/packages/contracts/src/2.0.0/forwarder/Forwarder.sol b/packages/contracts/src/2.0.0/forwarder/Forwarder.sol index fc17a4c72a..546e7f22ce 100644 --- a/packages/contracts/src/2.0.0/forwarder/Forwarder.sol +++ b/packages/contracts/src/2.0.0/forwarder/Forwarder.sol @@ -40,7 +40,6 @@ contract Forwarder is address _exchange, address _etherToken, address _zrxToken, - bytes4 _erc20AssetProxyId, bytes memory _zrxAssetData, bytes memory _wethAssetData ) diff --git a/packages/contracts/test/forwarder/forwarder.ts b/packages/contracts/test/forwarder/forwarder.ts index b4555d4174..f0bf6ac033 100644 --- a/packages/contracts/test/forwarder/forwarder.ts +++ b/packages/contracts/test/forwarder/forwarder.ts @@ -1,6 +1,6 @@ import { BlockchainLifecycle } from '@0xproject/dev-utils'; import { assetProxyUtils } from '@0xproject/order-utils'; -import { AssetProxyId, RevertReason, SignedOrder } from '@0xproject/types'; +import { RevertReason, SignedOrder } from '@0xproject/types'; import { BigNumber } from '@0xproject/utils'; import { Web3Wrapper } from '@0xproject/web3-wrapper'; import * as chai from 'chai'; @@ -131,7 +131,6 @@ describe(ContractName.Forwarder, () => { exchangeInstance.address, wethContract.address, zrxToken.address, - AssetProxyId.ERC20, zrxAssetData, wethAssetData, ); diff --git a/packages/migrations/artifacts/2.0.0/Forwarder.json b/packages/migrations/artifacts/2.0.0/Forwarder.json index da1f54ecaf..0bef9adbce 100644 --- a/packages/migrations/artifacts/2.0.0/Forwarder.json +++ b/packages/migrations/artifacts/2.0.0/Forwarder.json @@ -708,10 +708,6 @@ "name": "_zrxToken", "type": "address" }, - { - "name": "_erc20AssetProxyId", - "type": "bytes4" - }, { "name": "_zrxAssetData", "type": "bytes" @@ -896,5 +892,11 @@ } } }, - "networks": {} -} \ No newline at end of file + "networks": { + "50": { + "address": "0xb69e673309512a9d726f87304c6984054f87a93b", + "links": {}, + "constructorArgs": "[\"0x48bacb9266a570d521063ef5dd96e61686dbe788\",\"0x0b1ba0af832d7c05fd64161e0db78e85978e8082\",\"0x871dd7c2b4b25e1aa18728e9d5f2af4c4e431f5c\",\"0xf47261b0\",\"0xf47261b0000000000000000000000000871dd7c2b4b25e1aa18728e9d5f2af4c4e431f5c\",\"0xf47261b00000000000000000000000000b1ba0af832d7c05fd64161e0db78e85978e8082\"]" + } + } +} diff --git a/packages/migrations/src/2.0.0/migration.ts b/packages/migrations/src/2.0.0/migration.ts index 248e861028..226bf0a68b 100644 --- a/packages/migrations/src/2.0.0/migration.ts +++ b/packages/migrations/src/2.0.0/migration.ts @@ -130,7 +130,6 @@ export const runV2MigrationsAsync = async (provider: Provider, artifactsDir: str ); // Forwarder - const erc20ProxyId = await erc20proxy.getProxyId.callAsync(); const forwarder = await ForwarderContract.deployFrom0xArtifactAsync( artifacts.Forwarder, provider, @@ -138,7 +137,6 @@ export const runV2MigrationsAsync = async (provider: Provider, artifactsDir: str exchange.address, etherToken.address, zrxToken.address, - erc20ProxyId, assetProxyUtils.encodeERC20AssetData(zrxToken.address), assetProxyUtils.encodeERC20AssetData(etherToken.address), ); From 0b6ea1d0468847ac07c40232cf1431e2bb92ac86 Mon Sep 17 00:00:00 2001 From: Jacob Evans Date: Wed, 11 Jul 2018 20:45:18 +1000 Subject: [PATCH 3/3] Contract Wrappers - Ether token block range Start after migrations to avoid any unexpected logs --- .../test/ether_token_wrapper_test.ts | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/packages/contract-wrappers/test/ether_token_wrapper_test.ts b/packages/contract-wrappers/test/ether_token_wrapper_test.ts index 0a860884a0..48bd6d3f67 100644 --- a/packages/contract-wrappers/test/ether_token_wrapper_test.ts +++ b/packages/contract-wrappers/test/ether_token_wrapper_test.ts @@ -336,15 +336,19 @@ describe('EtherTokenWrapper', () => { describe('#getLogsAsync', () => { let etherTokenAddress: string; let erc20ProxyAddress: string; - const blockRange: BlockRange = { - fromBlock: 0, - toBlock: BlockParamLiteral.Latest, - }; + let blockRange: BlockRange; let txHash: string; - before(() => { + before(async () => { addressWithETH = userAddresses[0]; etherTokenAddress = tokenUtils.getWethTokenAddress(); erc20ProxyAddress = contractWrappers.erc20Proxy.getContractAddress(); + // Start the block range after all migrations to avoid unexpected logs + const currentBlock = await web3Wrapper.getBlockNumberAsync(); + const fromBlock = currentBlock + 1; + blockRange = { + fromBlock, + toBlock: BlockParamLiteral.Latest, + }; }); it('should get logs with decoded args emitted by Approval', async () => { txHash = await contractWrappers.erc20Token.setUnlimitedProxyAllowanceAsync(