diff options
Diffstat (limited to 'contracts')
84 files changed, 794 insertions, 627 deletions
diff --git a/contracts/asset-proxy/compiler.json b/contracts/asset-proxy/compiler.json index 70d4c6b20..aab143bad 100644 --- a/contracts/asset-proxy/compiler.json +++ b/contracts/asset-proxy/compiler.json @@ -3,10 +3,7 @@ "contractsDir": "./contracts", "useDockerisedSolc": true, "compilerSettings": { - "optimizer": { - "enabled": true, - "runs": 1000000 - }, + "optimizer": { "enabled": true, "runs": 1000000 }, "outputSelection": { "*": { "*": [ @@ -20,12 +17,17 @@ } }, "contracts": [ - "IAssetData", - "IAssetProxy", - "IAuthorizable", - "ERC20Proxy", - "ERC721Proxy", - "MixinAuthorizable", - "MultiAssetProxy" + "@0x/contracts-erc20/contracts/test/DummyERC20Token.sol", + "@0x/contracts-erc20/contracts/test/DummyMultipleReturnERC20Token.sol", + "@0x/contracts-erc20/contracts/test/DummyNoReturnERC20Token.sol", + "@0x/contracts-erc721/contracts/test/DummyERC721Receiver.sol", + "@0x/contracts-erc721/contracts/test/DummyERC721Token.sol", + "src/ERC20Proxy.sol", + "src/ERC721Proxy.sol", + "src/MixinAuthorizable.sol", + "src/MultiAssetProxy.sol", + "src/interfaces/IAssetData.sol", + "src/interfaces/IAssetProxy.sol", + "src/interfaces/IAuthorizable.sol" ] } diff --git a/contracts/asset-proxy/package.json b/contracts/asset-proxy/package.json index a08f9ed50..e98fc8fca 100644 --- a/contracts/asset-proxy/package.json +++ b/contracts/asset-proxy/package.json @@ -29,10 +29,12 @@ "profiler:report:html": "istanbul report html && open coverage/index.html", "coverage:report:lcov": "istanbul report lcov", "test:circleci": "yarn test", + "contracts:gen": "contracts-gen", "lint-contracts": "solhint -c ../.solhint.json contracts/**/**/**/**/*.sol" }, "config": { - "abis": "generated-artifacts/@(ERC20Proxy|ERC721Proxy|IAssetData|IAssetProxy|IAuthorizable|MixinAuthorizable|MultiAssetProxy).json" + "abis": "./generated-artifacts/@(DummyERC20Token|DummyERC721Receiver|DummyERC721Token|DummyMultipleReturnERC20Token|DummyNoReturnERC20Token|ERC20Proxy|ERC721Proxy|IAssetData|IAssetProxy|IAuthorizable|MixinAuthorizable|MultiAssetProxy).json", + "abis:comment": "This list is auto-generated by contracts-gen. Don't edit manually." }, "repository": { "type": "git", @@ -44,6 +46,7 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/contracts/protocol/README.md", "devDependencies": { + "@0x/contracts-gen": "^1.0.0", "@0x/abi-gen": "^2.0.1", "@0x/contracts-test-utils": "^3.0.2", "@0x/dev-utils": "^2.0.1", @@ -74,7 +77,7 @@ "@0x/utils": "^4.0.2", "@0x/web3-wrapper": "^4.0.1", "ethereum-types": "^2.0.0", - "lodash": "^4.17.5" + "lodash": "^4.17.11" }, "publishConfig": { "access": "public" diff --git a/contracts/asset-proxy/src/artifacts.ts b/contracts/asset-proxy/src/artifacts.ts new file mode 100644 index 000000000..d82c0537e --- /dev/null +++ b/contracts/asset-proxy/src/artifacts.ts @@ -0,0 +1,33 @@ +/* + * ----------------------------------------------------------------------------- + * Warning: This file is auto-generated by contracts-gen. Don't edit manually. + * ----------------------------------------------------------------------------- + */ +import { ContractArtifact } from 'ethereum-types'; + +import * as DummyERC20Token from '../generated-artifacts/DummyERC20Token.json'; +import * as DummyERC721Receiver from '../generated-artifacts/DummyERC721Receiver.json'; +import * as DummyERC721Token from '../generated-artifacts/DummyERC721Token.json'; +import * as DummyMultipleReturnERC20Token from '../generated-artifacts/DummyMultipleReturnERC20Token.json'; +import * as DummyNoReturnERC20Token from '../generated-artifacts/DummyNoReturnERC20Token.json'; +import * as ERC20Proxy from '../generated-artifacts/ERC20Proxy.json'; +import * as ERC721Proxy from '../generated-artifacts/ERC721Proxy.json'; +import * as IAssetData from '../generated-artifacts/IAssetData.json'; +import * as IAssetProxy from '../generated-artifacts/IAssetProxy.json'; +import * as IAuthorizable from '../generated-artifacts/IAuthorizable.json'; +import * as MixinAuthorizable from '../generated-artifacts/MixinAuthorizable.json'; +import * as MultiAssetProxy from '../generated-artifacts/MultiAssetProxy.json'; +export const artifacts = { + DummyERC20Token: DummyERC20Token as ContractArtifact, + DummyMultipleReturnERC20Token: DummyMultipleReturnERC20Token as ContractArtifact, + DummyNoReturnERC20Token: DummyNoReturnERC20Token as ContractArtifact, + DummyERC721Receiver: DummyERC721Receiver as ContractArtifact, + DummyERC721Token: DummyERC721Token as ContractArtifact, + ERC20Proxy: ERC20Proxy as ContractArtifact, + ERC721Proxy: ERC721Proxy as ContractArtifact, + MixinAuthorizable: MixinAuthorizable as ContractArtifact, + MultiAssetProxy: MultiAssetProxy as ContractArtifact, + IAssetData: IAssetData as ContractArtifact, + IAssetProxy: IAssetProxy as ContractArtifact, + IAuthorizable: IAuthorizable as ContractArtifact, +}; diff --git a/contracts/asset-proxy/src/artifacts/index.ts b/contracts/asset-proxy/src/artifacts/index.ts deleted file mode 100644 index 7f3060815..000000000 --- a/contracts/asset-proxy/src/artifacts/index.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { ContractArtifact } from 'ethereum-types'; - -import * as ERC20Proxy from '../../generated-artifacts/ERC20Proxy.json'; -import * as ERC721Proxy from '../../generated-artifacts/ERC721Proxy.json'; -import * as IAssetData from '../../generated-artifacts/IAssetData.json'; -import * as IAssetProxy from '../../generated-artifacts/IAssetProxy.json'; -import * as IAuthorizable from '../../generated-artifacts/IAuthorizable.json'; -import * as MixinAuthorizable from '../../generated-artifacts/MixinAuthorizable.json'; -import * as MultiAssetProxy from '../../generated-artifacts/MultiAssetProxy.json'; - -export const artifacts = { - IAuthorizable: IAuthorizable as ContractArtifact, - IAssetData: IAssetData as ContractArtifact, - IAssetProxy: IAssetProxy as ContractArtifact, - ERC20Proxy: ERC20Proxy as ContractArtifact, - ERC721Proxy: ERC721Proxy as ContractArtifact, - MixinAuthorizable: MixinAuthorizable as ContractArtifact, - MultiAssetProxy: MultiAssetProxy as ContractArtifact, -}; diff --git a/contracts/asset-proxy/src/wrappers.ts b/contracts/asset-proxy/src/wrappers.ts new file mode 100644 index 000000000..f8cd342c0 --- /dev/null +++ b/contracts/asset-proxy/src/wrappers.ts @@ -0,0 +1,17 @@ +/* + * ----------------------------------------------------------------------------- + * Warning: This file is auto-generated by contracts-gen. Don't edit manually. + * ----------------------------------------------------------------------------- + */ +export * from '../generated-wrappers/dummy_erc20_token'; +export * from '../generated-wrappers/dummy_erc721_receiver'; +export * from '../generated-wrappers/dummy_erc721_token'; +export * from '../generated-wrappers/dummy_multiple_return_erc20_token'; +export * from '../generated-wrappers/dummy_no_return_erc20_token'; +export * from '../generated-wrappers/erc20_proxy'; +export * from '../generated-wrappers/erc721_proxy'; +export * from '../generated-wrappers/i_asset_data'; +export * from '../generated-wrappers/i_asset_proxy'; +export * from '../generated-wrappers/i_authorizable'; +export * from '../generated-wrappers/mixin_authorizable'; +export * from '../generated-wrappers/multi_asset_proxy'; diff --git a/contracts/asset-proxy/src/wrappers/index.ts b/contracts/asset-proxy/src/wrappers/index.ts deleted file mode 100644 index 6aecbc086..000000000 --- a/contracts/asset-proxy/src/wrappers/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -export * from '../../generated-wrappers/i_asset_data'; -export * from '../../generated-wrappers/i_asset_proxy'; -export * from '../../generated-wrappers/erc20_proxy'; -export * from '../../generated-wrappers/erc721_proxy'; -export * from '../../generated-wrappers/mixin_authorizable'; -export * from '../../generated-wrappers/multi_asset_proxy'; -export * from '../../generated-wrappers/i_authorizable'; diff --git a/contracts/asset-proxy/test/proxies.ts b/contracts/asset-proxy/test/proxies.ts index 797787135..c2f9653aa 100644 --- a/contracts/asset-proxy/test/proxies.ts +++ b/contracts/asset-proxy/test/proxies.ts @@ -1,16 +1,4 @@ import { - artifacts as erc20Artifacts, - DummyERC20TokenContract, - DummyERC20TokenTransferEventArgs, - DummyMultipleReturnERC20TokenContract, - DummyNoReturnERC20TokenContract, -} from '@0x/contracts-erc20'; -import { - artifacts as erc721Artifacts, - DummyERC721ReceiverContract, - DummyERC721TokenContract, -} from '@0x/contracts-erc721'; -import { chaiSetup, constants, expectTransactionFailedAsync, @@ -30,6 +18,12 @@ import * as _ from 'lodash'; import { artifacts, + DummyERC20TokenContract, + DummyERC20TokenTransferEventArgs, + DummyERC721ReceiverContract, + DummyERC721TokenContract, + DummyMultipleReturnERC20TokenContract, + DummyNoReturnERC20TokenContract, ERC20ProxyContract, ERC20Wrapper, ERC721ProxyContract, @@ -154,7 +148,7 @@ describe('Asset Transfer Proxies', () => { constants.DUMMY_TOKEN_DECIMALS, ); noReturnErc20Token = await DummyNoReturnERC20TokenContract.deployFrom0xArtifactAsync( - erc20Artifacts.DummyNoReturnERC20Token, + artifacts.DummyNoReturnERC20Token, provider, txDefaults, constants.DUMMY_TOKEN_NAME, @@ -163,7 +157,7 @@ describe('Asset Transfer Proxies', () => { constants.DUMMY_TOKEN_TOTAL_SUPPLY, ); multipleReturnErc20Token = await DummyMultipleReturnERC20TokenContract.deployFrom0xArtifactAsync( - erc20Artifacts.DummyMultipleReturnERC20Token, + artifacts.DummyMultipleReturnERC20Token, provider, txDefaults, constants.DUMMY_TOKEN_NAME, @@ -204,7 +198,7 @@ describe('Asset Transfer Proxies', () => { // Deploy and configure ERC721 tokens and receiver [erc721TokenA, erc721TokenB] = await erc721Wrapper.deployDummyTokensAsync(); erc721Receiver = await DummyERC721ReceiverContract.deployFrom0xArtifactAsync( - erc721Artifacts.DummyERC721Receiver, + artifacts.DummyERC721Receiver, provider, txDefaults, ); @@ -568,7 +562,7 @@ describe('Asset Transfer Proxies', () => { erc721Receiver.address, amount, ); - const logDecoder = new LogDecoder(web3Wrapper, { ...artifacts, ...erc721Artifacts }); + const logDecoder = new LogDecoder(web3Wrapper, artifacts); const tx = await logDecoder.getTxWithDecodedLogsAsync( await web3Wrapper.sendTransactionAsync({ to: erc721Proxy.address, @@ -760,7 +754,7 @@ describe('Asset Transfer Proxies', () => { inputAmount, ); const erc20Balances = await erc20Wrapper.getBalancesAsync(); - const logDecoder = new LogDecoder(web3Wrapper, { ...artifacts, ...erc20Artifacts }); + const logDecoder = new LogDecoder(web3Wrapper, artifacts); const tx = await logDecoder.getTxWithDecodedLogsAsync( await web3Wrapper.sendTransactionAsync({ to: multiAssetProxy.address, diff --git a/contracts/asset-proxy/test/utils/erc20_wrapper.ts b/contracts/asset-proxy/test/utils/erc20_wrapper.ts index 12cd06ece..09607e776 100644 --- a/contracts/asset-proxy/test/utils/erc20_wrapper.ts +++ b/contracts/asset-proxy/test/utils/erc20_wrapper.ts @@ -1,4 +1,3 @@ -import { artifacts as tokensArtifacts, DummyERC20TokenContract } from '@0x/contracts-erc20'; import { constants, ERC20BalancesByOwner, txDefaults } from '@0x/contracts-test-utils'; import { assetDataUtils } from '@0x/order-utils'; import { BigNumber } from '@0x/utils'; @@ -6,8 +5,7 @@ import { Web3Wrapper } from '@0x/web3-wrapper'; import { Provider } from 'ethereum-types'; import * as _ from 'lodash'; -import { ERC20ProxyContract } from '../../generated-wrappers/erc20_proxy'; -import { artifacts } from '../../src/artifacts'; +import { artifacts, DummyERC20TokenContract, ERC20ProxyContract } from '../../src'; export class ERC20Wrapper { private readonly _tokenOwnerAddresses: string[]; @@ -38,7 +36,7 @@ export class ERC20Wrapper { for (let i = 0; i < numberToDeploy; i++) { this._dummyTokenContracts.push( await DummyERC20TokenContract.deployFrom0xArtifactAsync( - tokensArtifacts.DummyERC20Token, + artifacts.DummyERC20Token, this._provider, txDefaults, constants.DUMMY_TOKEN_NAME, diff --git a/contracts/asset-proxy/test/utils/erc721_wrapper.ts b/contracts/asset-proxy/test/utils/erc721_wrapper.ts index fc43d8c52..92d1398a7 100644 --- a/contracts/asset-proxy/test/utils/erc721_wrapper.ts +++ b/contracts/asset-proxy/test/utils/erc721_wrapper.ts @@ -1,4 +1,3 @@ -import { artifacts as tokensArtifacts, DummyERC721TokenContract } from '@0x/contracts-erc721'; import { constants, ERC721TokenIdsByOwner, txDefaults } from '@0x/contracts-test-utils'; import { generatePseudoRandomSalt } from '@0x/order-utils'; import { BigNumber } from '@0x/utils'; @@ -6,8 +5,7 @@ import { Web3Wrapper } from '@0x/web3-wrapper'; import { Provider } from 'ethereum-types'; import * as _ from 'lodash'; -import { ERC721ProxyContract } from '../../generated-wrappers/erc721_proxy'; -import { artifacts } from '../../src/artifacts'; +import { artifacts, DummyERC721TokenContract, ERC721ProxyContract } from '../../src'; export class ERC721Wrapper { private readonly _tokenOwnerAddresses: string[]; @@ -30,7 +28,7 @@ export class ERC721Wrapper { for (const i of _.times(constants.NUM_DUMMY_ERC721_TO_DEPLOY)) { this._dummyTokenContracts.push( await DummyERC721TokenContract.deployFrom0xArtifactAsync( - tokensArtifacts.DummyERC721Token, + artifacts.DummyERC721Token, this._provider, txDefaults, constants.DUMMY_TOKEN_NAME, diff --git a/contracts/asset-proxy/tsconfig.json b/contracts/asset-proxy/tsconfig.json index 7baa48cbe..526be2c64 100644 --- a/contracts/asset-proxy/tsconfig.json +++ b/contracts/asset-proxy/tsconfig.json @@ -1,19 +1,20 @@ { "extends": "../../tsconfig", - "compilerOptions": { - "outDir": "lib", - "rootDir": ".", - "resolveJsonModule": true - }, + "compilerOptions": { "outDir": "lib", "rootDir": ".", "resolveJsonModule": true }, "include": ["./src/**/*", "./test/**/*", "./generated-wrappers/**/*"], "files": [ - "./generated-artifacts/IAssetData.json", - "./generated-artifacts/IAssetProxy.json", - "./generated-artifacts/IAuthorizable.json", - "./generated-artifacts/ERC20Proxy.json", - "./generated-artifacts/ERC721Proxy.json", - "./generated-artifacts/MixinAuthorizable.json", - "./generated-artifacts/MultiAssetProxy.json" + "generated-artifacts/DummyERC20Token.json", + "generated-artifacts/DummyERC721Receiver.json", + "generated-artifacts/DummyERC721Token.json", + "generated-artifacts/DummyMultipleReturnERC20Token.json", + "generated-artifacts/DummyNoReturnERC20Token.json", + "generated-artifacts/ERC20Proxy.json", + "generated-artifacts/ERC721Proxy.json", + "generated-artifacts/IAssetData.json", + "generated-artifacts/IAssetProxy.json", + "generated-artifacts/IAuthorizable.json", + "generated-artifacts/MixinAuthorizable.json", + "generated-artifacts/MultiAssetProxy.json" ], "exclude": ["./deploy/solc/solc_bin"] } diff --git a/contracts/erc20/compiler.json b/contracts/erc20/compiler.json index 264f6231a..033917d22 100644 --- a/contracts/erc20/compiler.json +++ b/contracts/erc20/compiler.json @@ -3,10 +3,7 @@ "contractsDir": "./contracts", "useDockerisedSolc": true, "compilerSettings": { - "optimizer": { - "enabled": true, - "runs": 1000000 - }, + "optimizer": { "enabled": true, "runs": 1000000 }, "outputSelection": { "*": { "*": [ @@ -20,16 +17,16 @@ } }, "contracts": [ - "DummyERC20Token", - "DummyMultipleReturnERC20Token", - "DummyNoReturnERC20Token", - "ReentrantERC20Token", - "ERC20Token", - "IERC20Token", - "MintableERC20Token", - "UnlimitedAllowanceERC20Token", - "IEtherToken", - "WETH9", - "ZRXToken" + "src/ERC20Token.sol", + "src/MintableERC20Token.sol", + "src/UnlimitedAllowanceERC20Token.sol", + "src/WETH9.sol", + "src/ZRXToken.sol", + "src/interfaces/IERC20Token.sol", + "src/interfaces/IEtherToken.sol", + "test/DummyERC20Token.sol", + "test/DummyMultipleReturnERC20Token.sol", + "test/DummyNoReturnERC20Token.sol", + "test/ReentrantERC20Token.sol" ] } diff --git a/contracts/erc20/package.json b/contracts/erc20/package.json index 63e3d20da..d44020db7 100644 --- a/contracts/erc20/package.json +++ b/contracts/erc20/package.json @@ -29,10 +29,12 @@ "profiler:report:html": "istanbul report html && open coverage/index.html", "coverage:report:lcov": "istanbul report lcov", "test:circleci": "yarn test", + "contracts:gen": "contracts-gen", "lint-contracts": "solhint -c ../.solhint.json contracts/**/**/**/**/*.sol" }, "config": { - "abis": "generated-artifacts/@(DummyERC20Token|DummyMultipleReturnERC20Token|DummyNoReturnERC20Token|ReentrantERC20Token|ERC20Token|IERC20Token|MintableERC20Token|UnlimitedAllowanceERC20Token|IEtherToken|WETH9|ZRXToken).json" + "abis": "./generated-artifacts/@(DummyERC20Token|DummyMultipleReturnERC20Token|DummyNoReturnERC20Token|ERC20Token|IERC20Token|IEtherToken|MintableERC20Token|ReentrantERC20Token|UnlimitedAllowanceERC20Token|WETH9|ZRXToken).json", + "abis:comment": "This list is auto-generated by contracts-gen. Don't edit manually." }, "repository": { "type": "git", @@ -44,6 +46,7 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/contracts/tokens/README.md", "devDependencies": { + "@0x/contracts-gen": "^1.0.0", "@0x/abi-gen": "^2.0.1", "@0x/contracts-test-utils": "^3.0.2", "@0x/dev-utils": "^2.0.1", @@ -72,7 +75,7 @@ "@0x/utils": "^4.0.2", "@0x/web3-wrapper": "^4.0.1", "ethereum-types": "^2.0.0", - "lodash": "^4.17.5" + "lodash": "^4.17.11" }, "publishConfig": { "access": "public" diff --git a/contracts/erc20/src/artifacts.ts b/contracts/erc20/src/artifacts.ts new file mode 100644 index 000000000..c97a73195 --- /dev/null +++ b/contracts/erc20/src/artifacts.ts @@ -0,0 +1,31 @@ +/* + * ----------------------------------------------------------------------------- + * Warning: This file is auto-generated by contracts-gen. Don't edit manually. + * ----------------------------------------------------------------------------- + */ +import { ContractArtifact } from 'ethereum-types'; + +import * as DummyERC20Token from '../generated-artifacts/DummyERC20Token.json'; +import * as DummyMultipleReturnERC20Token from '../generated-artifacts/DummyMultipleReturnERC20Token.json'; +import * as DummyNoReturnERC20Token from '../generated-artifacts/DummyNoReturnERC20Token.json'; +import * as ERC20Token from '../generated-artifacts/ERC20Token.json'; +import * as IERC20Token from '../generated-artifacts/IERC20Token.json'; +import * as IEtherToken from '../generated-artifacts/IEtherToken.json'; +import * as MintableERC20Token from '../generated-artifacts/MintableERC20Token.json'; +import * as ReentrantERC20Token from '../generated-artifacts/ReentrantERC20Token.json'; +import * as UnlimitedAllowanceERC20Token from '../generated-artifacts/UnlimitedAllowanceERC20Token.json'; +import * as WETH9 from '../generated-artifacts/WETH9.json'; +import * as ZRXToken from '../generated-artifacts/ZRXToken.json'; +export const artifacts = { + ERC20Token: ERC20Token as ContractArtifact, + MintableERC20Token: MintableERC20Token as ContractArtifact, + UnlimitedAllowanceERC20Token: UnlimitedAllowanceERC20Token as ContractArtifact, + WETH9: WETH9 as ContractArtifact, + ZRXToken: (ZRXToken as any) as ContractArtifact, + IERC20Token: IERC20Token as ContractArtifact, + IEtherToken: IEtherToken as ContractArtifact, + DummyERC20Token: DummyERC20Token as ContractArtifact, + DummyMultipleReturnERC20Token: DummyMultipleReturnERC20Token as ContractArtifact, + DummyNoReturnERC20Token: DummyNoReturnERC20Token as ContractArtifact, + ReentrantERC20Token: ReentrantERC20Token as ContractArtifact, +}; diff --git a/contracts/erc20/src/artifacts/index.ts b/contracts/erc20/src/artifacts/index.ts deleted file mode 100644 index ce1ae06ac..000000000 --- a/contracts/erc20/src/artifacts/index.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { ContractArtifact } from 'ethereum-types'; - -import * as DummyERC20Token from '../../generated-artifacts/DummyERC20Token.json'; -import * as DummyMultipleReturnERC20Token from '../../generated-artifacts/DummyMultipleReturnERC20Token.json'; -import * as DummyNoReturnERC20Token from '../../generated-artifacts/DummyNoReturnERC20Token.json'; -import * as ERC20Token from '../../generated-artifacts/ERC20Token.json'; -import * as IERC20Token from '../../generated-artifacts/IERC20Token.json'; -import * as IEtherToken from '../../generated-artifacts/IEtherToken.json'; -import * as MintableERC20Token from '../../generated-artifacts/MintableERC20Token.json'; -import * as ReentrantERC20Token from '../../generated-artifacts/ReentrantERC20Token.json'; -import * as UnlimitedAllowanceERC20Token from '../../generated-artifacts/UnlimitedAllowanceERC20Token.json'; -import * as WETH9 from '../../generated-artifacts/WETH9.json'; -import * as ZRXToken from '../../generated-artifacts/ZRXToken.json'; - -// tslint:disable:no-unnecessary-type-assertion -export const artifacts = { - DummyERC20Token: DummyERC20Token as ContractArtifact, - DummyMultipleReturnERC20Token: DummyMultipleReturnERC20Token as ContractArtifact, - DummyNoReturnERC20Token: DummyNoReturnERC20Token as ContractArtifact, - ReentrantERC20Token: ReentrantERC20Token as ContractArtifact, - ERC20Token: ERC20Token as ContractArtifact, - IERC20Token: IERC20Token as ContractArtifact, - MintableERC20Token: MintableERC20Token as ContractArtifact, - UnlimitedAllowanceERC20Token: UnlimitedAllowanceERC20Token as ContractArtifact, - IEtherToken: IEtherToken as ContractArtifact, - WETH9: WETH9 as ContractArtifact, - // Note(albrow): "as any" hack still required here because ZRXToken does not - // conform to the v2 artifact type. - ZRXToken: (ZRXToken as any) as ContractArtifact, -}; diff --git a/contracts/erc20/src/wrappers.ts b/contracts/erc20/src/wrappers.ts new file mode 100644 index 000000000..40193e7d8 --- /dev/null +++ b/contracts/erc20/src/wrappers.ts @@ -0,0 +1,16 @@ +/* + * ----------------------------------------------------------------------------- + * Warning: This file is auto-generated by contracts-gen. Don't edit manually. + * ----------------------------------------------------------------------------- + */ +export * from '../generated-wrappers/dummy_erc20_token'; +export * from '../generated-wrappers/dummy_multiple_return_erc20_token'; +export * from '../generated-wrappers/dummy_no_return_erc20_token'; +export * from '../generated-wrappers/erc20_token'; +export * from '../generated-wrappers/i_erc20_token'; +export * from '../generated-wrappers/i_ether_token'; +export * from '../generated-wrappers/mintable_erc20_token'; +export * from '../generated-wrappers/reentrant_erc20_token'; +export * from '../generated-wrappers/unlimited_allowance_erc20_token'; +export * from '../generated-wrappers/weth9'; +export * from '../generated-wrappers/zrx_token'; diff --git a/contracts/erc20/src/wrappers/index.ts b/contracts/erc20/src/wrappers/index.ts deleted file mode 100644 index b4e4ef969..000000000 --- a/contracts/erc20/src/wrappers/index.ts +++ /dev/null @@ -1,11 +0,0 @@ -export * from '../../generated-wrappers/zrx_token'; -export * from '../../generated-wrappers/weth9'; -export * from '../../generated-wrappers/unlimited_allowance_erc20_token'; -export * from '../../generated-wrappers/reentrant_erc20_token'; -export * from '../../generated-wrappers/mintable_erc20_token'; -export * from '../../generated-wrappers/i_ether_token'; -export * from '../../generated-wrappers/i_erc20_token'; -export * from '../../generated-wrappers/erc20_token'; -export * from '../../generated-wrappers/dummy_no_return_erc20_token'; -export * from '../../generated-wrappers/dummy_multiple_return_erc20_token'; -export * from '../../generated-wrappers/dummy_erc20_token'; diff --git a/contracts/erc20/tsconfig.json b/contracts/erc20/tsconfig.json index 4df7424be..74419260a 100644 --- a/contracts/erc20/tsconfig.json +++ b/contracts/erc20/tsconfig.json @@ -1,23 +1,19 @@ { "extends": "../../tsconfig", - "compilerOptions": { - "outDir": "lib", - "rootDir": ".", - "resolveJsonModule": true - }, + "compilerOptions": { "outDir": "lib", "rootDir": ".", "resolveJsonModule": true }, "include": ["./src/**/*", "./test/**/*", "./generated-wrappers/**/*"], "files": [ - "./generated-artifacts/DummyERC20Token.json", - "./generated-artifacts/DummyMultipleReturnERC20Token.json", - "./generated-artifacts/DummyNoReturnERC20Token.json", - "./generated-artifacts/ReentrantERC20Token.json", - "./generated-artifacts/ERC20Token.json", - "./generated-artifacts/IERC20Token.json", - "./generated-artifacts/MintableERC20Token.json", - "./generated-artifacts/UnlimitedAllowanceERC20Token.json", - "./generated-artifacts/IEtherToken.json", - "./generated-artifacts/WETH9.json", - "./generated-artifacts/ZRXToken.json" + "generated-artifacts/DummyERC20Token.json", + "generated-artifacts/DummyMultipleReturnERC20Token.json", + "generated-artifacts/DummyNoReturnERC20Token.json", + "generated-artifacts/ERC20Token.json", + "generated-artifacts/IERC20Token.json", + "generated-artifacts/IEtherToken.json", + "generated-artifacts/MintableERC20Token.json", + "generated-artifacts/ReentrantERC20Token.json", + "generated-artifacts/UnlimitedAllowanceERC20Token.json", + "generated-artifacts/WETH9.json", + "generated-artifacts/ZRXToken.json" ], "exclude": ["./deploy/solc/solc_bin"] } diff --git a/contracts/erc721/compiler.json b/contracts/erc721/compiler.json index db8589016..09d79ba28 100644 --- a/contracts/erc721/compiler.json +++ b/contracts/erc721/compiler.json @@ -3,10 +3,7 @@ "contractsDir": "./contracts", "useDockerisedSolc": true, "compilerSettings": { - "optimizer": { - "enabled": true, - "runs": 1000000 - }, + "optimizer": { "enabled": true, "runs": 1000000 }, "outputSelection": { "*": { "*": [ @@ -20,12 +17,12 @@ } }, "contracts": [ - "DummyERC721Receiver", - "InvalidERC721Receiver", - "DummyERC721Token", - "ERC721Token", - "IERC721Receiver", - "IERC721Token", - "MintableERC721Token" + "src/ERC721Token.sol", + "src/MintableERC721Token.sol", + "src/interfaces/IERC721Receiver.sol", + "src/interfaces/IERC721Token.sol", + "test/DummyERC721Receiver.sol", + "test/DummyERC721Token.sol", + "test/InvalidERC721Receiver.sol" ] } diff --git a/contracts/erc721/package.json b/contracts/erc721/package.json index 34f71c91e..ba0762f30 100644 --- a/contracts/erc721/package.json +++ b/contracts/erc721/package.json @@ -29,10 +29,12 @@ "profiler:report:html": "istanbul report html && open coverage/index.html", "coverage:report:lcov": "istanbul report lcov", "test:circleci": "yarn test", + "contracts:gen": "contracts-gen", "lint-contracts": "solhint -c ../.solhint.json contracts/**/**/**/**/*.sol" }, "config": { - "abis": "generated-artifacts/@(DummyERC721Receiver|InvalidERC721Receiver|DummyERC721Token|ERC721Token|IERC721Receiver|IERC721Token|MintableERC721Token).json" + "abis": "./generated-artifacts/@(DummyERC721Receiver|DummyERC721Token|ERC721Token|IERC721Receiver|IERC721Token|InvalidERC721Receiver|MintableERC721Token).json", + "abis:comment": "This list is auto-generated by contracts-gen. Don't edit manually." }, "repository": { "type": "git", @@ -44,6 +46,7 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/contracts/tokens/README.md", "devDependencies": { + "@0x/contracts-gen": "^1.0.0", "@0x/abi-gen": "^2.0.1", "@0x/contracts-test-utils": "^3.0.2", "@0x/dev-utils": "^2.0.1", @@ -71,7 +74,7 @@ "@0x/utils": "^4.0.2", "@0x/web3-wrapper": "^4.0.1", "ethereum-types": "^2.0.0", - "lodash": "^4.17.5" + "lodash": "^4.17.11" }, "publishConfig": { "access": "public" diff --git a/contracts/erc721/src/artifacts.ts b/contracts/erc721/src/artifacts.ts new file mode 100644 index 000000000..79a76e21b --- /dev/null +++ b/contracts/erc721/src/artifacts.ts @@ -0,0 +1,23 @@ +/* + * ----------------------------------------------------------------------------- + * Warning: This file is auto-generated by contracts-gen. Don't edit manually. + * ----------------------------------------------------------------------------- + */ +import { ContractArtifact } from 'ethereum-types'; + +import * as DummyERC721Receiver from '../generated-artifacts/DummyERC721Receiver.json'; +import * as DummyERC721Token from '../generated-artifacts/DummyERC721Token.json'; +import * as ERC721Token from '../generated-artifacts/ERC721Token.json'; +import * as IERC721Receiver from '../generated-artifacts/IERC721Receiver.json'; +import * as IERC721Token from '../generated-artifacts/IERC721Token.json'; +import * as InvalidERC721Receiver from '../generated-artifacts/InvalidERC721Receiver.json'; +import * as MintableERC721Token from '../generated-artifacts/MintableERC721Token.json'; +export const artifacts = { + ERC721Token: ERC721Token as ContractArtifact, + MintableERC721Token: MintableERC721Token as ContractArtifact, + IERC721Receiver: IERC721Receiver as ContractArtifact, + IERC721Token: IERC721Token as ContractArtifact, + DummyERC721Receiver: DummyERC721Receiver as ContractArtifact, + DummyERC721Token: DummyERC721Token as ContractArtifact, + InvalidERC721Receiver: InvalidERC721Receiver as ContractArtifact, +}; diff --git a/contracts/erc721/src/artifacts/index.ts b/contracts/erc721/src/artifacts/index.ts deleted file mode 100644 index 8d5ec8a46..000000000 --- a/contracts/erc721/src/artifacts/index.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { ContractArtifact } from 'ethereum-types'; - -import * as DummyERC721Receiver from '../../generated-artifacts/DummyERC721Receiver.json'; -import * as DummyERC721Token from '../../generated-artifacts/DummyERC721Token.json'; -import * as ERC721Token from '../../generated-artifacts/ERC721Token.json'; -import * as IERC721Receiver from '../../generated-artifacts/IERC721Receiver.json'; -import * as IERC721Token from '../../generated-artifacts/IERC721Token.json'; -import * as InvalidERC721Receiver from '../../generated-artifacts/InvalidERC721Receiver.json'; -import * as MintableERC721Token from '../../generated-artifacts/MintableERC721Token.json'; - -// tslint:disable:no-unnecessary-type-assertion -export const artifacts = { - DummyERC721Receiver: DummyERC721Receiver as ContractArtifact, - InvalidERC721Receiver: InvalidERC721Receiver as ContractArtifact, - DummyERC721Token: DummyERC721Token as ContractArtifact, - ERC721Token: ERC721Token as ContractArtifact, - IERC721Receiver: IERC721Receiver as ContractArtifact, - IERC721Token: IERC721Token as ContractArtifact, - MintableERC721Token: MintableERC721Token as ContractArtifact, -}; diff --git a/contracts/erc721/src/wrappers.ts b/contracts/erc721/src/wrappers.ts new file mode 100644 index 000000000..716f6cca4 --- /dev/null +++ b/contracts/erc721/src/wrappers.ts @@ -0,0 +1,12 @@ +/* + * ----------------------------------------------------------------------------- + * Warning: This file is auto-generated by contracts-gen. Don't edit manually. + * ----------------------------------------------------------------------------- + */ +export * from '../generated-wrappers/dummy_erc721_receiver'; +export * from '../generated-wrappers/dummy_erc721_token'; +export * from '../generated-wrappers/erc721_token'; +export * from '../generated-wrappers/i_erc721_receiver'; +export * from '../generated-wrappers/i_erc721_token'; +export * from '../generated-wrappers/invalid_erc721_receiver'; +export * from '../generated-wrappers/mintable_erc721_token'; diff --git a/contracts/erc721/src/wrappers/index.ts b/contracts/erc721/src/wrappers/index.ts deleted file mode 100644 index ba6c51885..000000000 --- a/contracts/erc721/src/wrappers/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -export * from '../../generated-wrappers/mintable_erc721_token'; -export * from '../../generated-wrappers/invalid_erc721_receiver'; -export * from '../../generated-wrappers/i_erc721_token'; -export * from '../../generated-wrappers/i_erc721_receiver'; -export * from '../../generated-wrappers/erc721_token'; -export * from '../../generated-wrappers/dummy_erc721_token'; -export * from '../../generated-wrappers/dummy_erc721_receiver'; diff --git a/contracts/erc721/tsconfig.json b/contracts/erc721/tsconfig.json index 098c3a7f3..3b218affe 100644 --- a/contracts/erc721/tsconfig.json +++ b/contracts/erc721/tsconfig.json @@ -1,19 +1,15 @@ { "extends": "../../tsconfig", - "compilerOptions": { - "outDir": "lib", - "rootDir": ".", - "resolveJsonModule": true - }, + "compilerOptions": { "outDir": "lib", "rootDir": ".", "resolveJsonModule": true }, "include": ["./src/**/*", "./test/**/*", "./generated-wrappers/**/*"], "files": [ - "./generated-artifacts/DummyERC721Receiver.json", - "./generated-artifacts/InvalidERC721Receiver.json", - "./generated-artifacts/DummyERC721Token.json", - "./generated-artifacts/ERC721Token.json", - "./generated-artifacts/IERC721Receiver.json", - "./generated-artifacts/IERC721Token.json", - "./generated-artifacts/MintableERC721Token.json" + "generated-artifacts/DummyERC721Receiver.json", + "generated-artifacts/DummyERC721Token.json", + "generated-artifacts/ERC721Token.json", + "generated-artifacts/IERC721Receiver.json", + "generated-artifacts/IERC721Token.json", + "generated-artifacts/InvalidERC721Receiver.json", + "generated-artifacts/MintableERC721Token.json" ], "exclude": ["./deploy/solc/solc_bin"] } diff --git a/contracts/exchange-forwarder/compiler.json b/contracts/exchange-forwarder/compiler.json index e93eb4bdd..051e81de5 100644 --- a/contracts/exchange-forwarder/compiler.json +++ b/contracts/exchange-forwarder/compiler.json @@ -3,10 +3,7 @@ "contractsDir": "./contracts", "useDockerisedSolc": true, "compilerSettings": { - "optimizer": { - "enabled": true, - "runs": 1000000 - }, + "optimizer": { "enabled": true, "runs": 1000000 }, "outputSelection": { "*": { "*": [ @@ -19,5 +16,11 @@ } } }, - "contracts": ["Forwarder"] + "contracts": [ + "@0x/contracts-erc20/contracts/src/WETH9.sol", + "@0x/contracts-erc20/contracts/test/DummyERC20Token.sol", + "@0x/contracts-erc721/contracts/test/DummyERC721Token.sol", + "@0x/contracts-exchange/contracts/src/Exchange.sol", + "src/Forwarder.sol" + ] } diff --git a/contracts/exchange-forwarder/package.json b/contracts/exchange-forwarder/package.json index 015e48460..e71409c82 100644 --- a/contracts/exchange-forwarder/package.json +++ b/contracts/exchange-forwarder/package.json @@ -29,10 +29,12 @@ "profiler:report:html": "istanbul report html && open coverage/index.html", "coverage:report:lcov": "istanbul report lcov", "test:circleci": "yarn test", + "contracts:gen": "contracts-gen", "lint-contracts": "solhint -c ../.solhint.json contracts/**/**/**/**/*.sol" }, "config": { - "abis": "generated-artifacts/@(Forwarder).json" + "abis": "./generated-artifacts/@(DummyERC20Token|DummyERC721Token|Exchange|Forwarder|WETH9).json", + "abis:comment": "This list is auto-generated by contracts-gen. Don't edit manually." }, "repository": { "type": "git", @@ -44,6 +46,7 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/contracts/extensions/README.md", "devDependencies": { + "@0x/contracts-gen": "^1.0.0", "@0x/abi-gen": "^2.0.1", "@0x/contract-wrappers": "^7.0.1", "@0x/contracts-test-utils": "^3.0.2", @@ -78,7 +81,7 @@ "@0x/utils": "^4.0.2", "@0x/web3-wrapper": "^4.0.1", "ethereum-types": "^2.0.0", - "lodash": "^4.17.5" + "lodash": "^4.17.11" }, "publishConfig": { "access": "public" diff --git a/contracts/exchange-forwarder/src/artifacts.ts b/contracts/exchange-forwarder/src/artifacts.ts new file mode 100644 index 000000000..94bcdf84a --- /dev/null +++ b/contracts/exchange-forwarder/src/artifacts.ts @@ -0,0 +1,19 @@ +/* + * ----------------------------------------------------------------------------- + * Warning: This file is auto-generated by contracts-gen. Don't edit manually. + * ----------------------------------------------------------------------------- + */ +import { ContractArtifact } from 'ethereum-types'; + +import * as DummyERC20Token from '../generated-artifacts/DummyERC20Token.json'; +import * as DummyERC721Token from '../generated-artifacts/DummyERC721Token.json'; +import * as Exchange from '../generated-artifacts/Exchange.json'; +import * as Forwarder from '../generated-artifacts/Forwarder.json'; +import * as WETH9 from '../generated-artifacts/WETH9.json'; +export const artifacts = { + WETH9: WETH9 as ContractArtifact, + DummyERC20Token: DummyERC20Token as ContractArtifact, + DummyERC721Token: DummyERC721Token as ContractArtifact, + Exchange: Exchange as ContractArtifact, + Forwarder: Forwarder as ContractArtifact, +}; diff --git a/contracts/exchange-forwarder/src/artifacts/index.ts b/contracts/exchange-forwarder/src/artifacts/index.ts deleted file mode 100644 index f15dac49a..000000000 --- a/contracts/exchange-forwarder/src/artifacts/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { ContractArtifact } from 'ethereum-types'; - -import * as Forwarder from '../../generated-artifacts/Forwarder.json'; - -export const artifacts = { - Forwarder: Forwarder as ContractArtifact, -}; diff --git a/contracts/exchange-forwarder/src/wrappers.ts b/contracts/exchange-forwarder/src/wrappers.ts new file mode 100644 index 000000000..cbe72c5cf --- /dev/null +++ b/contracts/exchange-forwarder/src/wrappers.ts @@ -0,0 +1,10 @@ +/* + * ----------------------------------------------------------------------------- + * Warning: This file is auto-generated by contracts-gen. Don't edit manually. + * ----------------------------------------------------------------------------- + */ +export * from '../generated-wrappers/dummy_erc20_token'; +export * from '../generated-wrappers/dummy_erc721_token'; +export * from '../generated-wrappers/exchange'; +export * from '../generated-wrappers/forwarder'; +export * from '../generated-wrappers/weth9'; diff --git a/contracts/exchange-forwarder/src/wrappers/index.ts b/contracts/exchange-forwarder/src/wrappers/index.ts deleted file mode 100644 index 89dff9e74..000000000 --- a/contracts/exchange-forwarder/src/wrappers/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from '../../generated-wrappers/forwarder'; diff --git a/contracts/exchange-forwarder/test/forwarder.ts b/contracts/exchange-forwarder/test/forwarder.ts index 24c219563..5acf113dd 100644 --- a/contracts/exchange-forwarder/test/forwarder.ts +++ b/contracts/exchange-forwarder/test/forwarder.ts @@ -1,7 +1,5 @@ import { ERC20Wrapper, ERC721Wrapper } from '@0x/contracts-asset-proxy'; -import { artifacts as erc20Artifacts, DummyERC20TokenContract, WETH9Contract } from '@0x/contracts-erc20'; -import { DummyERC721TokenContract } from '@0x/contracts-erc721'; -import { artifacts as exchangeArtifacts, ExchangeContract, ExchangeWrapper } from '@0x/contracts-exchange'; +import { ExchangeWrapper } from '@0x/contracts-exchange'; import { chaiSetup, constants, @@ -23,7 +21,15 @@ import { Web3Wrapper } from '@0x/web3-wrapper'; import * as chai from 'chai'; import { TransactionReceiptWithDecodedLogs } from 'ethereum-types'; -import { artifacts, ForwarderContract, ForwarderWrapper } from '../src'; +import { + artifacts, + DummyERC20TokenContract, + DummyERC721TokenContract, + ExchangeContract, + ForwarderContract, + ForwarderWrapper, + WETH9Contract, +} from '../src'; chaiSetup.configure(); const expect = chai.expect; @@ -88,14 +94,14 @@ describe(ContractName.Forwarder, () => { const erc721Balances = await erc721Wrapper.getBalancesAsync(); erc721MakerAssetIds = erc721Balances[makerAddress][erc721Token.address]; - wethContract = await WETH9Contract.deployFrom0xArtifactAsync(erc20Artifacts.WETH9, provider, txDefaults); + wethContract = await WETH9Contract.deployFrom0xArtifactAsync(artifacts.WETH9, provider, txDefaults); weth = new DummyERC20TokenContract(wethContract.abi, wethContract.address, provider); erc20Wrapper.addDummyTokenContract(weth); wethAssetData = assetDataUtils.encodeERC20AssetData(wethContract.address); zrxAssetData = assetDataUtils.encodeERC20AssetData(zrxToken.address); const exchangeInstance = await ExchangeContract.deployFrom0xArtifactAsync( - exchangeArtifacts.Exchange, + artifacts.Exchange, provider, txDefaults, zrxAssetData, @@ -166,7 +172,7 @@ describe(ContractName.Forwarder, () => { describe('constructor', () => { it('should revert if assetProxy is unregistered', async () => { const exchangeInstance = await ExchangeContract.deployFrom0xArtifactAsync( - exchangeArtifacts.Exchange, + artifacts.Exchange, provider, txDefaults, zrxAssetData, diff --git a/contracts/exchange-forwarder/test/utils/forwarder_wrapper.ts b/contracts/exchange-forwarder/test/utils/forwarder_wrapper.ts index 207106852..4f9f6110a 100644 --- a/contracts/exchange-forwarder/test/utils/forwarder_wrapper.ts +++ b/contracts/exchange-forwarder/test/utils/forwarder_wrapper.ts @@ -1,6 +1,3 @@ -import { artifacts as erc20Artifacts } from '@0x/contracts-erc20'; -import { artifacts as erc721Artifacts } from '@0x/contracts-erc721'; -import { artifacts as exchangeArtifacts } from '@0x/contracts-exchange'; import { constants, formatters, LogDecoder, MarketSellOrders } from '@0x/contracts-test-utils'; import { SignedOrder } from '@0x/types'; import { BigNumber } from '@0x/utils'; @@ -61,12 +58,7 @@ export class ForwarderWrapper { constructor(contractInstance: ForwarderContract, provider: Provider) { this._forwarderContract = contractInstance; this._web3Wrapper = new Web3Wrapper(provider); - this._logDecoder = new LogDecoder(this._web3Wrapper, { - ...artifacts, - ...erc20Artifacts, - ...erc721Artifacts, - ...exchangeArtifacts, - }); + this._logDecoder = new LogDecoder(this._web3Wrapper, artifacts); } public async marketSellOrdersWithEthAsync( orders: SignedOrder[], diff --git a/contracts/exchange-forwarder/tsconfig.json b/contracts/exchange-forwarder/tsconfig.json index cd80b5a5f..92c3a0475 100644 --- a/contracts/exchange-forwarder/tsconfig.json +++ b/contracts/exchange-forwarder/tsconfig.json @@ -1,11 +1,13 @@ { "extends": "../../tsconfig", - "compilerOptions": { - "outDir": "lib", - "rootDir": ".", - "resolveJsonModule": true - }, + "compilerOptions": { "outDir": "lib", "rootDir": ".", "resolveJsonModule": true }, "include": ["./src/**/*", "./test/**/*", "./generated-wrappers/**/*"], - "files": ["./generated-artifacts/Forwarder.json"], + "files": [ + "generated-artifacts/DummyERC20Token.json", + "generated-artifacts/DummyERC721Token.json", + "generated-artifacts/Exchange.json", + "generated-artifacts/Forwarder.json", + "generated-artifacts/WETH9.json" + ], "exclude": ["./deploy/solc/solc_bin"] } diff --git a/contracts/exchange-libs/compiler.json b/contracts/exchange-libs/compiler.json index c4f0c6bd9..2a69896e6 100644 --- a/contracts/exchange-libs/compiler.json +++ b/contracts/exchange-libs/compiler.json @@ -3,10 +3,7 @@ "contractsDir": "./contracts", "useDockerisedSolc": true, "compilerSettings": { - "optimizer": { - "enabled": true, - "runs": 1000000 - }, + "optimizer": { "enabled": true, "runs": 1000000 }, "outputSelection": { "*": { "*": [ @@ -20,13 +17,13 @@ } }, "contracts": [ - "TestLibs", - "LibOrder", - "LibMath", - "LibFillResults", - "LibAbiEncoder", - "LibEIP712", - "LibAssetProxyErrors", - "LibConstants" + "src/LibAbiEncoder.sol", + "src/LibAssetProxyErrors.sol", + "src/LibConstants.sol", + "src/LibEIP712.sol", + "src/LibFillResults.sol", + "src/LibMath.sol", + "src/LibOrder.sol", + "test/TestLibs.sol" ] } diff --git a/contracts/exchange-libs/package.json b/contracts/exchange-libs/package.json index 695301da1..ebe3e8195 100644 --- a/contracts/exchange-libs/package.json +++ b/contracts/exchange-libs/package.json @@ -29,10 +29,12 @@ "profiler:report:html": "istanbul report html && open coverage/index.html", "coverage:report:lcov": "istanbul report lcov", "test:circleci": "yarn test", + "contracts:gen": "contracts-gen", "lint-contracts": "solhint -c ../.solhint.json contracts/**/**/**/**/*.sol" }, "config": { - "abis": "generated-artifacts/@(LibMath|LibOrder|LibFillResults|LibAbiEncoder|TestLibs|LibEIP712).json" + "abis": "./generated-artifacts/@(LibAbiEncoder|LibAssetProxyErrors|LibConstants|LibEIP712|LibFillResults|LibMath|LibOrder|TestLibs).json", + "abis:comment": "This list is auto-generated by contracts-gen. Don't edit manually." }, "repository": { "type": "git", @@ -44,6 +46,7 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/contracts/libs/README.md", "devDependencies": { + "@0x/contracts-gen": "^1.0.0", "@0x/abi-gen": "^2.0.1", "@0x/contracts-test-utils": "^3.0.2", "@0x/dev-utils": "^2.0.1", @@ -72,7 +75,7 @@ "@0x/utils": "^4.0.2", "@0x/web3-wrapper": "^4.0.1", "ethereum-types": "^2.0.0", - "lodash": "^4.17.5" + "lodash": "^4.17.11" }, "publishConfig": { "access": "public" diff --git a/contracts/exchange-libs/src/artifacts.ts b/contracts/exchange-libs/src/artifacts.ts new file mode 100644 index 000000000..861d6f3d2 --- /dev/null +++ b/contracts/exchange-libs/src/artifacts.ts @@ -0,0 +1,25 @@ +/* + * ----------------------------------------------------------------------------- + * Warning: This file is auto-generated by contracts-gen. Don't edit manually. + * ----------------------------------------------------------------------------- + */ +import { ContractArtifact } from 'ethereum-types'; + +import * as LibAbiEncoder from '../generated-artifacts/LibAbiEncoder.json'; +import * as LibAssetProxyErrors from '../generated-artifacts/LibAssetProxyErrors.json'; +import * as LibConstants from '../generated-artifacts/LibConstants.json'; +import * as LibEIP712 from '../generated-artifacts/LibEIP712.json'; +import * as LibFillResults from '../generated-artifacts/LibFillResults.json'; +import * as LibMath from '../generated-artifacts/LibMath.json'; +import * as LibOrder from '../generated-artifacts/LibOrder.json'; +import * as TestLibs from '../generated-artifacts/TestLibs.json'; +export const artifacts = { + LibAbiEncoder: LibAbiEncoder as ContractArtifact, + LibAssetProxyErrors: LibAssetProxyErrors as ContractArtifact, + LibConstants: LibConstants as ContractArtifact, + LibEIP712: LibEIP712 as ContractArtifact, + LibFillResults: LibFillResults as ContractArtifact, + LibMath: LibMath as ContractArtifact, + LibOrder: LibOrder as ContractArtifact, + TestLibs: TestLibs as ContractArtifact, +}; diff --git a/contracts/exchange-libs/src/artifacts/index.ts b/contracts/exchange-libs/src/artifacts/index.ts deleted file mode 100644 index 3955bbe2b..000000000 --- a/contracts/exchange-libs/src/artifacts/index.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { ContractArtifact } from 'ethereum-types'; - -import * as LibAbiEncoder from '../../generated-artifacts/LibAbiEncoder.json'; -import * as LibEIP721 from '../../generated-artifacts/LibEIP712.json'; -import * as LibFillResults from '../../generated-artifacts/LibFillResults.json'; -import * as LibMath from '../../generated-artifacts/LibMath.json'; -import * as LibOrder from '../../generated-artifacts/LibOrder.json'; -import * as TestLibs from '../../generated-artifacts/TestLibs.json'; - -export const artifacts = { - TestLibs: TestLibs as ContractArtifact, - LibAbiEncoder: LibAbiEncoder as ContractArtifact, - LibFillResults: LibFillResults as ContractArtifact, - LibMath: LibMath as ContractArtifact, - LibOrder: LibOrder as ContractArtifact, - LibEIP721: LibEIP721 as ContractArtifact, -}; diff --git a/contracts/exchange-libs/src/wrappers.ts b/contracts/exchange-libs/src/wrappers.ts new file mode 100644 index 000000000..05244d87b --- /dev/null +++ b/contracts/exchange-libs/src/wrappers.ts @@ -0,0 +1,13 @@ +/* + * ----------------------------------------------------------------------------- + * Warning: This file is auto-generated by contracts-gen. Don't edit manually. + * ----------------------------------------------------------------------------- + */ +export * from '../generated-wrappers/lib_abi_encoder'; +export * from '../generated-wrappers/lib_asset_proxy_errors'; +export * from '../generated-wrappers/lib_constants'; +export * from '../generated-wrappers/lib_e_i_p712'; +export * from '../generated-wrappers/lib_fill_results'; +export * from '../generated-wrappers/lib_math'; +export * from '../generated-wrappers/lib_order'; +export * from '../generated-wrappers/test_libs'; diff --git a/contracts/exchange-libs/src/wrappers/index.ts b/contracts/exchange-libs/src/wrappers/index.ts deleted file mode 100644 index baaae6e34..000000000 --- a/contracts/exchange-libs/src/wrappers/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -export * from '../../generated-wrappers/test_libs'; -export * from '../../generated-wrappers/lib_abi_encoder'; -export * from '../../generated-wrappers/lib_fill_results'; -export * from '../../generated-wrappers/lib_math'; -export * from '../../generated-wrappers/lib_order'; -export * from '../../generated-wrappers/lib_e_i_p712'; diff --git a/contracts/exchange-libs/tsconfig.json b/contracts/exchange-libs/tsconfig.json index 27ca35085..1b5d54175 100644 --- a/contracts/exchange-libs/tsconfig.json +++ b/contracts/exchange-libs/tsconfig.json @@ -1,18 +1,16 @@ { "extends": "../../tsconfig", - "compilerOptions": { - "outDir": "lib", - "rootDir": ".", - "resolveJsonModule": true - }, + "compilerOptions": { "outDir": "lib", "rootDir": ".", "resolveJsonModule": true }, "include": ["./src/**/*", "./test/**/*", "./generated-wrappers/**/*"], "files": [ - "./generated-artifacts/TestLibs.json", - "./generated-artifacts/LibOrder.json", - "./generated-artifacts/LibFillResults.json", - "./generated-artifacts/LibAbiEncoder.json", - "./generated-artifacts/LibEIP712.json", - "./generated-artifacts/LibMath.json" + "generated-artifacts/LibAbiEncoder.json", + "generated-artifacts/LibAssetProxyErrors.json", + "generated-artifacts/LibConstants.json", + "generated-artifacts/LibEIP712.json", + "generated-artifacts/LibFillResults.json", + "generated-artifacts/LibMath.json", + "generated-artifacts/LibOrder.json", + "generated-artifacts/TestLibs.json" ], "exclude": ["./deploy/solc/solc_bin"] } diff --git a/contracts/exchange/compiler.json b/contracts/exchange/compiler.json index 6a5f666d1..b7a94cd13 100644 --- a/contracts/exchange/compiler.json +++ b/contracts/exchange/compiler.json @@ -3,10 +3,7 @@ "contractsDir": "./contracts", "useDockerisedSolc": true, "compilerSettings": { - "optimizer": { - "enabled": true, - "runs": 1000000 - }, + "optimizer": { "enabled": true, "runs": 1000000 }, "outputSelection": { "*": { "*": [ @@ -20,23 +17,31 @@ } }, "contracts": [ - "Exchange", - "IAssetProxyDispatcher", - "IExchange", - "IExchangeCore", - "IMatchOrders", - "ISignatureValidator", - "ITransactions", - "IValidator", - "IWallet", - "IWrapperFunctions", - "TestAssetProxyDispatcher", - "TestExchangeInternals", - "TestSignatureValidator", - "TestStaticCallReceiver", - "ExchangeWrapper", - "Validator", - "Wallet", - "Whitelist" + "@0x/contracts-asset-proxy/contracts/src/ERC20Proxy.sol", + "@0x/contracts-asset-proxy/contracts/src/ERC721Proxy.sol", + "@0x/contracts-asset-proxy/contracts/src/MultiAssetProxy.sol", + "@0x/contracts-erc20/contracts/test/DummyERC20Token.sol", + "@0x/contracts-erc20/contracts/test/DummyNoReturnERC20Token.sol", + "@0x/contracts-erc20/contracts/test/ReentrantERC20Token.sol", + "@0x/contracts-erc721/contracts/test/DummyERC721Token.sol", + "@0x/contracts-exchange-libs/contracts/test/TestLibs.sol", + "examples/ExchangeWrapper.sol", + "examples/Validator.sol", + "examples/Wallet.sol", + "examples/Whitelist.sol", + "src/Exchange.sol", + "src/interfaces/IAssetProxyDispatcher.sol", + "src/interfaces/IExchange.sol", + "src/interfaces/IExchangeCore.sol", + "src/interfaces/IMatchOrders.sol", + "src/interfaces/ISignatureValidator.sol", + "src/interfaces/ITransactions.sol", + "src/interfaces/IValidator.sol", + "src/interfaces/IWallet.sol", + "src/interfaces/IWrapperFunctions.sol", + "test/TestAssetProxyDispatcher.sol", + "test/TestExchangeInternals.sol", + "test/TestSignatureValidator.sol", + "test/TestStaticCallReceiver.sol" ] } diff --git a/contracts/exchange/package.json b/contracts/exchange/package.json index 65cb8743b..43ceeeebd 100644 --- a/contracts/exchange/package.json +++ b/contracts/exchange/package.json @@ -29,10 +29,12 @@ "profiler:report:html": "istanbul report html && open coverage/index.html", "coverage:report:lcov": "istanbul report lcov", "test:circleci": "yarn test", + "contracts:gen": "contracts-gen", "lint-contracts": "solhint -c ../.solhint.json contracts/**/**/**/**/*.sol" }, "config": { - "abis": "generated-artifacts/@(ERC20Proxy|ERC721Proxy|Exchange|IAssetProxyDispatcher|IExchange|IExchangeCore|IMatchOrders|ISignatureValidator|ITransactions|IWrapperFunctions|IValidator|IWallet|MixinAuthorizable|MultiAssetProxy|TestSignatureValidator|TestAssetProxyDispatcher|TestExchangeInternals|TestStaticCallReceiver|ExchangeWrapper|Validator|Wallet|Whitelist).json" + "abis": "./generated-artifacts/@(DummyERC20Token|DummyERC721Token|DummyNoReturnERC20Token|ERC20Proxy|ERC721Proxy|Exchange|ExchangeWrapper|IAssetProxyDispatcher|IExchange|IExchangeCore|IMatchOrders|ISignatureValidator|ITransactions|IValidator|IWallet|IWrapperFunctions|MultiAssetProxy|ReentrantERC20Token|TestAssetProxyDispatcher|TestExchangeInternals|TestLibs|TestSignatureValidator|TestStaticCallReceiver|Validator|Wallet|Whitelist).json", + "abis:comment": "This list is auto-generated by contracts-gen. Don't edit manually." }, "repository": { "type": "git", @@ -44,6 +46,7 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/contracts/protocol/README.md", "devDependencies": { + "@0x/contracts-gen": "^1.0.0", "@0x/abi-gen": "^2.0.1", "@0x/contracts-test-utils": "^3.0.2", "@0x/dev-utils": "^2.0.1", @@ -77,7 +80,7 @@ "@0x/web3-wrapper": "^4.0.1", "ethereum-types": "^2.0.0", "ethereumjs-util": "^5.1.1", - "lodash": "^4.17.5" + "lodash": "^4.17.11" }, "publishConfig": { "access": "public" diff --git a/contracts/exchange/src/artifacts.ts b/contracts/exchange/src/artifacts.ts new file mode 100644 index 000000000..efdacd376 --- /dev/null +++ b/contracts/exchange/src/artifacts.ts @@ -0,0 +1,61 @@ +/* + * ----------------------------------------------------------------------------- + * Warning: This file is auto-generated by contracts-gen. Don't edit manually. + * ----------------------------------------------------------------------------- + */ +import { ContractArtifact } from 'ethereum-types'; + +import * as DummyERC20Token from '../generated-artifacts/DummyERC20Token.json'; +import * as DummyERC721Token from '../generated-artifacts/DummyERC721Token.json'; +import * as DummyNoReturnERC20Token from '../generated-artifacts/DummyNoReturnERC20Token.json'; +import * as ERC20Proxy from '../generated-artifacts/ERC20Proxy.json'; +import * as ERC721Proxy from '../generated-artifacts/ERC721Proxy.json'; +import * as Exchange from '../generated-artifacts/Exchange.json'; +import * as ExchangeWrapper from '../generated-artifacts/ExchangeWrapper.json'; +import * as IAssetProxyDispatcher from '../generated-artifacts/IAssetProxyDispatcher.json'; +import * as IExchange from '../generated-artifacts/IExchange.json'; +import * as IExchangeCore from '../generated-artifacts/IExchangeCore.json'; +import * as IMatchOrders from '../generated-artifacts/IMatchOrders.json'; +import * as ISignatureValidator from '../generated-artifacts/ISignatureValidator.json'; +import * as ITransactions from '../generated-artifacts/ITransactions.json'; +import * as IValidator from '../generated-artifacts/IValidator.json'; +import * as IWallet from '../generated-artifacts/IWallet.json'; +import * as IWrapperFunctions from '../generated-artifacts/IWrapperFunctions.json'; +import * as MultiAssetProxy from '../generated-artifacts/MultiAssetProxy.json'; +import * as ReentrantERC20Token from '../generated-artifacts/ReentrantERC20Token.json'; +import * as TestAssetProxyDispatcher from '../generated-artifacts/TestAssetProxyDispatcher.json'; +import * as TestExchangeInternals from '../generated-artifacts/TestExchangeInternals.json'; +import * as TestLibs from '../generated-artifacts/TestLibs.json'; +import * as TestSignatureValidator from '../generated-artifacts/TestSignatureValidator.json'; +import * as TestStaticCallReceiver from '../generated-artifacts/TestStaticCallReceiver.json'; +import * as Validator from '../generated-artifacts/Validator.json'; +import * as Wallet from '../generated-artifacts/Wallet.json'; +import * as Whitelist from '../generated-artifacts/Whitelist.json'; +export const artifacts = { + ERC20Proxy: ERC20Proxy as ContractArtifact, + ERC721Proxy: ERC721Proxy as ContractArtifact, + MultiAssetProxy: MultiAssetProxy as ContractArtifact, + DummyERC20Token: DummyERC20Token as ContractArtifact, + DummyNoReturnERC20Token: DummyNoReturnERC20Token as ContractArtifact, + ReentrantERC20Token: ReentrantERC20Token as ContractArtifact, + DummyERC721Token: DummyERC721Token as ContractArtifact, + TestLibs: TestLibs as ContractArtifact, + ExchangeWrapper: ExchangeWrapper as ContractArtifact, + Validator: Validator as ContractArtifact, + Wallet: Wallet as ContractArtifact, + Whitelist: Whitelist as ContractArtifact, + Exchange: Exchange as ContractArtifact, + IAssetProxyDispatcher: IAssetProxyDispatcher as ContractArtifact, + IExchange: IExchange as ContractArtifact, + IExchangeCore: IExchangeCore as ContractArtifact, + IMatchOrders: IMatchOrders as ContractArtifact, + ISignatureValidator: ISignatureValidator as ContractArtifact, + ITransactions: ITransactions as ContractArtifact, + IValidator: IValidator as ContractArtifact, + IWallet: IWallet as ContractArtifact, + IWrapperFunctions: IWrapperFunctions as ContractArtifact, + TestAssetProxyDispatcher: TestAssetProxyDispatcher as ContractArtifact, + TestExchangeInternals: TestExchangeInternals as ContractArtifact, + TestSignatureValidator: TestSignatureValidator as ContractArtifact, + TestStaticCallReceiver: TestStaticCallReceiver as ContractArtifact, +}; diff --git a/contracts/exchange/src/artifacts/index.ts b/contracts/exchange/src/artifacts/index.ts deleted file mode 100644 index 798ff17ab..000000000 --- a/contracts/exchange/src/artifacts/index.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { ContractArtifact } from 'ethereum-types'; - -import * as Exchange from '../../generated-artifacts/Exchange.json'; -import * as ExchangeWrapper from '../../generated-artifacts/ExchangeWrapper.json'; -import * as IAssetProxyDispatcher from '../../generated-artifacts/IAssetProxyDispatcher.json'; -import * as IExchange from '../../generated-artifacts/IExchange.json'; -import * as IExchangeCore from '../../generated-artifacts/IExchangeCore.json'; -import * as IMatchOrders from '../../generated-artifacts/IMatchOrders.json'; -import * as ISignatureValidator from '../../generated-artifacts/ISignatureValidator.json'; -import * as ITransactions from '../../generated-artifacts/ITransactions.json'; -import * as IValidator from '../../generated-artifacts/IValidator.json'; -import * as IWallet from '../../generated-artifacts/IWallet.json'; -import * as IWrapperFunctions from '../../generated-artifacts/IWrapperFunctions.json'; -import * as TestAssetProxyDispatcher from '../../generated-artifacts/TestAssetProxyDispatcher.json'; -import * as TestExchangeInternals from '../../generated-artifacts/TestExchangeInternals.json'; -import * as TestSignatureValidator from '../../generated-artifacts/TestSignatureValidator.json'; -import * as TestStaticCallReceiver from '../../generated-artifacts/TestStaticCallReceiver.json'; -import * as Validator from '../../generated-artifacts/Validator.json'; -import * as Wallet from '../../generated-artifacts/Wallet.json'; -import * as Whitelist from '../../generated-artifacts/Whitelist.json'; - -export const artifacts = { - Exchange: Exchange as ContractArtifact, - TestAssetProxyDispatcher: TestAssetProxyDispatcher as ContractArtifact, - TestExchangeInternals: TestExchangeInternals as ContractArtifact, - TestSignatureValidator: TestSignatureValidator as ContractArtifact, - TestStaticCallReceiver: TestStaticCallReceiver as ContractArtifact, - IExchange: IExchange as ContractArtifact, - IExchangeCore: IExchangeCore as ContractArtifact, - IMatchOrders: IMatchOrders as ContractArtifact, - ISignatureValidator: ISignatureValidator as ContractArtifact, - ITransactions: ITransactions as ContractArtifact, - IWrapperFunctions: IWrapperFunctions as ContractArtifact, - IAssetProxyDispatcher: IAssetProxyDispatcher as ContractArtifact, - IValidator: IValidator as ContractArtifact, - IWallet: IWallet as ContractArtifact, - ExchangeWrapper: ExchangeWrapper as ContractArtifact, - Validator: Validator as ContractArtifact, - Wallet: Wallet as ContractArtifact, - Whitelist: Whitelist as ContractArtifact, -}; diff --git a/contracts/exchange/src/wrappers.ts b/contracts/exchange/src/wrappers.ts new file mode 100644 index 000000000..1c1d7fdb4 --- /dev/null +++ b/contracts/exchange/src/wrappers.ts @@ -0,0 +1,31 @@ +/* + * ----------------------------------------------------------------------------- + * Warning: This file is auto-generated by contracts-gen. Don't edit manually. + * ----------------------------------------------------------------------------- + */ +export * from '../generated-wrappers/dummy_erc20_token'; +export * from '../generated-wrappers/dummy_erc721_token'; +export * from '../generated-wrappers/dummy_no_return_erc20_token'; +export * from '../generated-wrappers/erc20_proxy'; +export * from '../generated-wrappers/erc721_proxy'; +export * from '../generated-wrappers/exchange'; +export * from '../generated-wrappers/exchange_wrapper'; +export * from '../generated-wrappers/i_asset_proxy_dispatcher'; +export * from '../generated-wrappers/i_exchange'; +export * from '../generated-wrappers/i_exchange_core'; +export * from '../generated-wrappers/i_match_orders'; +export * from '../generated-wrappers/i_signature_validator'; +export * from '../generated-wrappers/i_transactions'; +export * from '../generated-wrappers/i_validator'; +export * from '../generated-wrappers/i_wallet'; +export * from '../generated-wrappers/i_wrapper_functions'; +export * from '../generated-wrappers/multi_asset_proxy'; +export * from '../generated-wrappers/reentrant_erc20_token'; +export * from '../generated-wrappers/test_asset_proxy_dispatcher'; +export * from '../generated-wrappers/test_exchange_internals'; +export * from '../generated-wrappers/test_libs'; +export * from '../generated-wrappers/test_signature_validator'; +export * from '../generated-wrappers/test_static_call_receiver'; +export * from '../generated-wrappers/validator'; +export * from '../generated-wrappers/wallet'; +export * from '../generated-wrappers/whitelist'; diff --git a/contracts/exchange/src/wrappers/index.ts b/contracts/exchange/src/wrappers/index.ts deleted file mode 100644 index 86e939b56..000000000 --- a/contracts/exchange/src/wrappers/index.ts +++ /dev/null @@ -1,18 +0,0 @@ -export * from '../../generated-wrappers/exchange'; -export * from '../../generated-wrappers/test_asset_proxy_dispatcher'; -export * from '../../generated-wrappers/test_exchange_internals'; -export * from '../../generated-wrappers/test_signature_validator'; -export * from '../../generated-wrappers/test_static_call_receiver'; -export * from '../../generated-wrappers/i_asset_proxy_dispatcher'; -export * from '../../generated-wrappers/i_exchange'; -export * from '../../generated-wrappers/i_exchange_core'; -export * from '../../generated-wrappers/i_match_orders'; -export * from '../../generated-wrappers/i_signature_validator'; -export * from '../../generated-wrappers/i_transactions'; -export * from '../../generated-wrappers/i_wrapper_functions'; -export * from '../../generated-wrappers/i_validator'; -export * from '../../generated-wrappers/i_wallet'; -export * from '../../generated-wrappers/exchange_wrapper'; -export * from '../../generated-wrappers/validator'; -export * from '../../generated-wrappers/wallet'; -export * from '../../generated-wrappers/whitelist'; diff --git a/contracts/exchange/test/core.ts b/contracts/exchange/test/core.ts index 74161cc73..7e61ef7ac 100644 --- a/contracts/exchange/test/core.ts +++ b/contracts/exchange/test/core.ts @@ -1,19 +1,4 @@ -import { - artifacts as proxyArtifacts, - ERC20ProxyContract, - ERC20Wrapper, - ERC721ProxyContract, - ERC721Wrapper, - MultiAssetProxyContract, -} from '@0x/contracts-asset-proxy'; -import { - artifacts as erc20Artifacts, - DummyERC20TokenContract, - DummyERC20TokenTransferEventArgs, - DummyNoReturnERC20TokenContract, - ReentrantERC20TokenContract, -} from '@0x/contracts-erc20'; -import { DummyERC721TokenContract } from '@0x/contracts-erc721'; +import { ERC20Wrapper, ERC721Wrapper } from '@0x/contracts-asset-proxy'; import { chaiSetup, constants, @@ -39,9 +24,17 @@ import * as _ from 'lodash'; import { artifacts, + DummyERC20TokenContract, + DummyERC20TokenTransferEventArgs, + DummyERC721TokenContract, + DummyNoReturnERC20TokenContract, + ERC20ProxyContract, + ERC721ProxyContract, ExchangeCancelEventArgs, ExchangeContract, ExchangeWrapper, + MultiAssetProxyContract, + ReentrantERC20TokenContract, TestStaticCallReceiverContract, } from '../src'; @@ -98,7 +91,7 @@ describe('Exchange core', () => { erc20Proxy = await erc20Wrapper.deployProxyAsync(); erc721Proxy = await erc721Wrapper.deployProxyAsync(); multiAssetProxy = await MultiAssetProxyContract.deployFrom0xArtifactAsync( - proxyArtifacts.MultiAssetProxy, + artifacts.MultiAssetProxy, provider, txDefaults, ); @@ -120,7 +113,7 @@ describe('Exchange core', () => { txDefaults, ); reentrantErc20Token = await ReentrantERC20TokenContract.deployFrom0xArtifactAsync( - erc20Artifacts.ReentrantERC20Token, + artifacts.ReentrantERC20Token, provider, txDefaults, exchange.address, @@ -345,7 +338,7 @@ describe('Exchange core', () => { describe('Testing exchange of ERC20 tokens with no return values', () => { before(async () => { noReturnErc20Token = await DummyNoReturnERC20TokenContract.deployFrom0xArtifactAsync( - erc20Artifacts.DummyNoReturnERC20Token, + artifacts.DummyNoReturnERC20Token, provider, txDefaults, constants.DUMMY_TOKEN_NAME, diff --git a/contracts/exchange/test/dispatcher.ts b/contracts/exchange/test/dispatcher.ts index a25755936..8263b0402 100644 --- a/contracts/exchange/test/dispatcher.ts +++ b/contracts/exchange/test/dispatcher.ts @@ -1,11 +1,4 @@ -import { - artifacts as proxyArtifacts, - ERC20ProxyContract, - ERC20Wrapper, - ERC721ProxyContract, - ERC721Wrapper, -} from '@0x/contracts-asset-proxy'; -import { DummyERC20TokenContract } from '@0x/contracts-erc20'; +import { ERC20Wrapper, ERC721Wrapper } from '@0x/contracts-asset-proxy'; import { chaiSetup, constants, @@ -25,6 +18,9 @@ import * as _ from 'lodash'; import { artifacts, + DummyERC20TokenContract, + ERC20ProxyContract, + ERC721ProxyContract, TestAssetProxyDispatcherAssetProxyRegisteredEventArgs, TestAssetProxyDispatcherContract, } from '../src'; @@ -131,7 +127,7 @@ describe('AssetProxyDispatcher', () => { expect(proxyAddress).to.be.equal(erc20Proxy.address); // Deploy a new version of the ERC20 Transfer Proxy contract const newErc20TransferProxy = await ERC20ProxyContract.deployFrom0xArtifactAsync( - proxyArtifacts.ERC20Proxy, + artifacts.ERC20Proxy, provider, txDefaults, ); diff --git a/contracts/exchange/test/match_orders.ts b/contracts/exchange/test/match_orders.ts index d17025ddd..98fea67ea 100644 --- a/contracts/exchange/test/match_orders.ts +++ b/contracts/exchange/test/match_orders.ts @@ -1,6 +1,4 @@ -import { ERC20ProxyContract, ERC20Wrapper, ERC721ProxyContract, ERC721Wrapper } from '@0x/contracts-asset-proxy'; -import { artifacts as erc20Artifacts, DummyERC20TokenContract, ReentrantERC20TokenContract } from '@0x/contracts-erc20'; -import { DummyERC721TokenContract } from '@0x/contracts-erc721'; +import { ERC20Wrapper, ERC721Wrapper } from '@0x/contracts-asset-proxy'; import { chaiSetup, constants, @@ -20,7 +18,18 @@ import { Web3Wrapper } from '@0x/web3-wrapper'; import * as chai from 'chai'; import * as _ from 'lodash'; -import { artifacts, ExchangeContract, ExchangeWrapper, MatchOrderTester, TestExchangeInternalsContract } from '../src'; +import { + artifacts, + DummyERC20TokenContract, + DummyERC721TokenContract, + ERC20ProxyContract, + ERC721ProxyContract, + ExchangeContract, + ExchangeWrapper, + MatchOrderTester, + ReentrantERC20TokenContract, + TestExchangeInternalsContract, +} from '../src'; const blockchainLifecycle = new BlockchainLifecycle(web3Wrapper); chaiSetup.configure(); @@ -131,7 +140,7 @@ describe('matchOrders', () => { ); reentrantErc20Token = await ReentrantERC20TokenContract.deployFrom0xArtifactAsync( - erc20Artifacts.ReentrantERC20Token, + artifacts.ReentrantERC20Token, provider, txDefaults, exchange.address, diff --git a/contracts/exchange/test/signature_validator.ts b/contracts/exchange/test/signature_validator.ts index 89eac4ddb..33510e50c 100644 --- a/contracts/exchange/test/signature_validator.ts +++ b/contracts/exchange/test/signature_validator.ts @@ -1,4 +1,3 @@ -import { artifacts as erc20Artifacts } from '@0x/contracts-erc20'; import { addressUtils, chaiSetup, @@ -78,7 +77,7 @@ describe('MixinSignatureValidator', () => { provider, txDefaults, ); - signatureValidatorLogDecoder = new LogDecoder(web3Wrapper, { ...artifacts, ...erc20Artifacts }); + signatureValidatorLogDecoder = new LogDecoder(web3Wrapper, artifacts); await web3Wrapper.awaitTransactionSuccessAsync( await signatureValidator.setSignatureValidatorApproval.sendTransactionAsync(testValidator.address, true, { from: signerAddress, diff --git a/contracts/exchange/test/utils/exchange_wrapper.ts b/contracts/exchange/test/utils/exchange_wrapper.ts index 03c37c4a9..535e3bcf2 100644 --- a/contracts/exchange/test/utils/exchange_wrapper.ts +++ b/contracts/exchange/test/utils/exchange_wrapper.ts @@ -1,5 +1,3 @@ -import { artifacts as erc20Artifacts } from '@0x/contracts-erc20'; -import { artifacts as erc721Artifacts } from '@0x/contracts-erc721'; import { FillResults, formatters, LogDecoder, OrderInfo, orderUtils } from '@0x/contracts-test-utils'; import { SignedOrder, SignedZeroExTransaction } from '@0x/types'; import { AbiEncoder, BigNumber } from '@0x/utils'; @@ -18,7 +16,7 @@ export class ExchangeWrapper { constructor(exchangeContract: ExchangeContract, provider: Provider) { this._exchange = exchangeContract; this._web3Wrapper = new Web3Wrapper(provider); - this._logDecoder = new LogDecoder(this._web3Wrapper, { ...artifacts, ...erc20Artifacts, ...erc721Artifacts }); + this._logDecoder = new LogDecoder(this._web3Wrapper, artifacts); } public async fillOrderAsync( signedOrder: SignedOrder, diff --git a/contracts/exchange/test/utils/fill_order_combinatorial_utils.ts b/contracts/exchange/test/utils/fill_order_combinatorial_utils.ts index 26b168909..00ca8a9fc 100644 --- a/contracts/exchange/test/utils/fill_order_combinatorial_utils.ts +++ b/contracts/exchange/test/utils/fill_order_combinatorial_utils.ts @@ -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, @@ -33,7 +32,7 @@ import { LogWithDecodedArgs, Provider, TxData } from 'ethereum-types'; import * as _ from 'lodash'; import 'make-promises-safe'; -import { artifacts, ExchangeContract, ExchangeFillEventArgs } from '../../src'; +import { artifacts, ExchangeContract, ExchangeFillEventArgs, TestLibsContract } from '../../src'; import { AssetWrapper } from './asset_wrapper'; import { ExchangeWrapper } from './exchange_wrapper'; @@ -129,11 +128,7 @@ export async function fillOrderCombinatorialUtilsFactoryAsync( exchangeContract.address, ); - const testLibsContract = await TestLibsContract.deployFrom0xArtifactAsync( - libsArtifacts.TestLibs, - provider, - txDefaults, - ); + const testLibsContract = await TestLibsContract.deployFrom0xArtifactAsync(artifacts.TestLibs, provider, txDefaults); const fillOrderCombinatorialUtils = new FillOrderCombinatorialUtils( orderFactory, diff --git a/contracts/exchange/test/wrapper.ts b/contracts/exchange/test/wrapper.ts index 62a0d426f..5476ac99d 100644 --- a/contracts/exchange/test/wrapper.ts +++ b/contracts/exchange/test/wrapper.ts @@ -1,6 +1,4 @@ -import { ERC20ProxyContract, ERC20Wrapper, ERC721ProxyContract, ERC721Wrapper } from '@0x/contracts-asset-proxy'; -import { artifacts as erc20Artifacts, DummyERC20TokenContract, ReentrantERC20TokenContract } from '@0x/contracts-erc20'; -import { DummyERC721TokenContract } from '@0x/contracts-erc721'; +import { ERC20Wrapper, ERC721Wrapper } from '@0x/contracts-asset-proxy'; import { chaiSetup, constants, @@ -22,7 +20,16 @@ import { Web3Wrapper } from '@0x/web3-wrapper'; import * as chai from 'chai'; import * as _ from 'lodash'; -import { artifacts, ExchangeContract, ExchangeWrapper } from '../src'; +import { + artifacts, + DummyERC20TokenContract, + DummyERC721TokenContract, + ERC20ProxyContract, + ERC721ProxyContract, + ExchangeContract, + ExchangeWrapper, + ReentrantERC20TokenContract, +} from '../src'; chaiSetup.configure(); const expect = chai.expect; @@ -107,7 +114,7 @@ describe('Exchange wrappers', () => { ); reentrantErc20Token = await ReentrantERC20TokenContract.deployFrom0xArtifactAsync( - erc20Artifacts.ReentrantERC20Token, + artifacts.ReentrantERC20Token, provider, txDefaults, exchange.address, diff --git a/contracts/exchange/tsconfig.json b/contracts/exchange/tsconfig.json index b0fcd1771..35ca3d933 100644 --- a/contracts/exchange/tsconfig.json +++ b/contracts/exchange/tsconfig.json @@ -1,30 +1,34 @@ { "extends": "../../tsconfig", - "compilerOptions": { - "outDir": "lib", - "rootDir": ".", - "resolveJsonModule": true - }, + "compilerOptions": { "outDir": "lib", "rootDir": ".", "resolveJsonModule": true }, "include": ["./src/**/*", "./test/**/*", "./generated-wrappers/**/*"], "files": [ - "./generated-artifacts/IAssetProxyDispatcher.json", - "./generated-artifacts/IExchange.json", - "./generated-artifacts/IExchangeCore.json", - "./generated-artifacts/IMatchOrders.json", - "./generated-artifacts/ISignatureValidator.json", - "./generated-artifacts/ITransactions.json", - "./generated-artifacts/IValidator.json", - "./generated-artifacts/IWallet.json", - "./generated-artifacts/IWrapperFunctions.json", - "./generated-artifacts/Exchange.json", - "./generated-artifacts/TestAssetProxyDispatcher.json", - "./generated-artifacts/TestExchangeInternals.json", - "./generated-artifacts/TestSignatureValidator.json", - "./generated-artifacts/TestStaticCallReceiver.json", - "./generated-artifacts/ExchangeWrapper.json", - "./generated-artifacts/Validator.json", - "./generated-artifacts/Wallet.json", - "./generated-artifacts/Whitelist.json" + "generated-artifacts/DummyERC20Token.json", + "generated-artifacts/DummyERC721Token.json", + "generated-artifacts/DummyNoReturnERC20Token.json", + "generated-artifacts/ERC20Proxy.json", + "generated-artifacts/ERC721Proxy.json", + "generated-artifacts/Exchange.json", + "generated-artifacts/ExchangeWrapper.json", + "generated-artifacts/IAssetProxyDispatcher.json", + "generated-artifacts/IExchange.json", + "generated-artifacts/IExchangeCore.json", + "generated-artifacts/IMatchOrders.json", + "generated-artifacts/ISignatureValidator.json", + "generated-artifacts/ITransactions.json", + "generated-artifacts/IValidator.json", + "generated-artifacts/IWallet.json", + "generated-artifacts/IWrapperFunctions.json", + "generated-artifacts/MultiAssetProxy.json", + "generated-artifacts/ReentrantERC20Token.json", + "generated-artifacts/TestAssetProxyDispatcher.json", + "generated-artifacts/TestExchangeInternals.json", + "generated-artifacts/TestLibs.json", + "generated-artifacts/TestSignatureValidator.json", + "generated-artifacts/TestStaticCallReceiver.json", + "generated-artifacts/Validator.json", + "generated-artifacts/Wallet.json", + "generated-artifacts/Whitelist.json" ], "exclude": ["./deploy/solc/solc_bin"] } diff --git a/contracts/extensions/compiler.json b/contracts/extensions/compiler.json index 91e0bd429..41fd582ad 100644 --- a/contracts/extensions/compiler.json +++ b/contracts/extensions/compiler.json @@ -3,10 +3,7 @@ "contractsDir": "./contracts", "useDockerisedSolc": true, "compilerSettings": { - "optimizer": { - "enabled": true, - "runs": 1000000 - }, + "optimizer": { "enabled": true, "runs": 1000000 }, "outputSelection": { "*": { "*": [ @@ -19,5 +16,17 @@ } } }, - "contracts": ["BalanceThresholdFilter", "DutchAuction", "OrderMatcher", "OrderValidator"] + "contracts": [ + "@0x/contracts-asset-proxy/contracts/src/ERC20Proxy.sol", + "@0x/contracts-asset-proxy/contracts/src/ERC721Proxy.sol", + "@0x/contracts-erc20/contracts/src/WETH9.sol", + "@0x/contracts-erc20/contracts/test/DummyERC20Token.sol", + "@0x/contracts-erc721/contracts/test/DummyERC721Token.sol", + "@0x/contracts-exchange/contracts/examples/ExchangeWrapper.sol", + "@0x/contracts-exchange/contracts/src/Exchange.sol", + "src/BalanceThresholdFilter/BalanceThresholdFilter.sol", + "src/DutchAuction/DutchAuction.sol", + "src/OrderMatcher/OrderMatcher.sol", + "src/OrderValidator/OrderValidator.sol" + ] } diff --git a/contracts/extensions/package.json b/contracts/extensions/package.json index cf0f5c6a6..335abaa80 100644 --- a/contracts/extensions/package.json +++ b/contracts/extensions/package.json @@ -29,10 +29,12 @@ "profiler:report:html": "istanbul report html && open coverage/index.html", "coverage:report:lcov": "istanbul report lcov", "test:circleci": "yarn test", + "contracts:gen": "contracts-gen", "lint-contracts": "solhint -c ../.solhint.json contracts/**/**/**/**/*.sol" }, "config": { - "abis": "generated-artifacts/@(BalanceThresholdFilter|DutchAuction|OrderMatcher|OrderValidator).json" + "abis": "./generated-artifacts/@(BalanceThresholdFilter|DummyERC20Token|DummyERC721Token|DutchAuction|ERC20Proxy|ERC721Proxy|Exchange|ExchangeWrapper|OrderMatcher|OrderValidator|WETH9).json", + "abis:comment": "This list is auto-generated by contracts-gen. Don't edit manually." }, "repository": { "type": "git", @@ -44,6 +46,7 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/contracts/extensions/README.md", "devDependencies": { + "@0x/contracts-gen": "^1.0.0", "@0x/abi-gen": "^2.0.1", "@0x/contract-wrappers": "^7.0.1", "@0x/contracts-test-utils": "^3.0.2", @@ -78,7 +81,7 @@ "@0x/utils": "^4.0.2", "@0x/web3-wrapper": "^4.0.1", "ethereum-types": "^2.0.0", - "lodash": "^4.17.5" + "lodash": "^4.17.11" }, "publishConfig": { "access": "public" diff --git a/contracts/extensions/src/artifacts.ts b/contracts/extensions/src/artifacts.ts new file mode 100644 index 000000000..efa5c859c --- /dev/null +++ b/contracts/extensions/src/artifacts.ts @@ -0,0 +1,31 @@ +/* + * ----------------------------------------------------------------------------- + * Warning: This file is auto-generated by contracts-gen. Don't edit manually. + * ----------------------------------------------------------------------------- + */ +import { ContractArtifact } from 'ethereum-types'; + +import * as BalanceThresholdFilter from '../generated-artifacts/BalanceThresholdFilter.json'; +import * as DummyERC20Token from '../generated-artifacts/DummyERC20Token.json'; +import * as DummyERC721Token from '../generated-artifacts/DummyERC721Token.json'; +import * as DutchAuction from '../generated-artifacts/DutchAuction.json'; +import * as ERC20Proxy from '../generated-artifacts/ERC20Proxy.json'; +import * as ERC721Proxy from '../generated-artifacts/ERC721Proxy.json'; +import * as Exchange from '../generated-artifacts/Exchange.json'; +import * as ExchangeWrapper from '../generated-artifacts/ExchangeWrapper.json'; +import * as OrderMatcher from '../generated-artifacts/OrderMatcher.json'; +import * as OrderValidator from '../generated-artifacts/OrderValidator.json'; +import * as WETH9 from '../generated-artifacts/WETH9.json'; +export const artifacts = { + ERC20Proxy: ERC20Proxy as ContractArtifact, + ERC721Proxy: ERC721Proxy as ContractArtifact, + WETH9: WETH9 as ContractArtifact, + DummyERC20Token: DummyERC20Token as ContractArtifact, + DummyERC721Token: DummyERC721Token as ContractArtifact, + ExchangeWrapper: ExchangeWrapper as ContractArtifact, + Exchange: Exchange as ContractArtifact, + BalanceThresholdFilter: BalanceThresholdFilter as ContractArtifact, + DutchAuction: DutchAuction as ContractArtifact, + OrderMatcher: OrderMatcher as ContractArtifact, + OrderValidator: OrderValidator as ContractArtifact, +}; diff --git a/contracts/extensions/src/artifacts/index.ts b/contracts/extensions/src/artifacts/index.ts deleted file mode 100644 index f2aee4908..000000000 --- a/contracts/extensions/src/artifacts/index.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { ContractArtifact } from 'ethereum-types'; - -import * as BalanceThresholdFilter from '../../generated-artifacts/BalanceThresholdFilter.json'; -import * as DutchAuction from '../../generated-artifacts/DutchAuction.json'; -import * as OrderMatcher from '../../generated-artifacts/OrderMatcher.json'; -import * as OrderValidator from '../../generated-artifacts/OrderValidator.json'; - -export const artifacts = { - BalanceThresholdFilter: BalanceThresholdFilter as ContractArtifact, - DutchAuction: DutchAuction as ContractArtifact, - OrderMatcher: OrderMatcher as ContractArtifact, - OrderValidator: OrderValidator as ContractArtifact, -}; diff --git a/contracts/extensions/src/wrappers.ts b/contracts/extensions/src/wrappers.ts new file mode 100644 index 000000000..1a67d2ee3 --- /dev/null +++ b/contracts/extensions/src/wrappers.ts @@ -0,0 +1,16 @@ +/* + * ----------------------------------------------------------------------------- + * Warning: This file is auto-generated by contracts-gen. Don't edit manually. + * ----------------------------------------------------------------------------- + */ +export * from '../generated-wrappers/balance_threshold_filter'; +export * from '../generated-wrappers/dummy_erc20_token'; +export * from '../generated-wrappers/dummy_erc721_token'; +export * from '../generated-wrappers/dutch_auction'; +export * from '../generated-wrappers/erc20_proxy'; +export * from '../generated-wrappers/erc721_proxy'; +export * from '../generated-wrappers/exchange'; +export * from '../generated-wrappers/exchange_wrapper'; +export * from '../generated-wrappers/order_matcher'; +export * from '../generated-wrappers/order_validator'; +export * from '../generated-wrappers/weth9'; diff --git a/contracts/extensions/src/wrappers/index.ts b/contracts/extensions/src/wrappers/index.ts deleted file mode 100644 index eed198524..000000000 --- a/contracts/extensions/src/wrappers/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from '../../generated-wrappers/balance_threshold_filter'; -export * from '../../generated-wrappers/dutch_auction'; -export * from '../../generated-wrappers/order_matcher'; -export * from '../../generated-wrappers/order_validator'; diff --git a/contracts/extensions/test/balance_threshold_filter.ts b/contracts/extensions/test/balance_threshold_filter.ts index c79a72f5a..34eb319de 100644 --- a/contracts/extensions/test/balance_threshold_filter.ts +++ b/contracts/extensions/test/balance_threshold_filter.ts @@ -1,3 +1,4 @@ +import { ExchangeWrapper } from '@0x/contracts-exchange'; import { BlockchainLifecycle } from '@0x/dev-utils'; import { assetDataUtils } from '@0x/order-utils'; import { Order, RevertReason, SignedOrder } from '@0x/types'; @@ -9,7 +10,6 @@ import * as _ from 'lodash'; import { ERC20Wrapper, ERC721Wrapper } from '@0x/contracts-asset-proxy'; import { DummyERC20TokenContract } from '@0x/contracts-erc20'; -import { artifacts as exchangeArtifacts, ExchangeContract, ExchangeWrapper } from '@0x/contracts-exchange'; import { chaiSetup, constants, @@ -24,7 +24,7 @@ import { web3Wrapper, } from '@0x/contracts-test-utils'; -import { artifacts, BalanceThresholdFilterContract, BalanceThresholdWrapper } from '../src'; +import { artifacts, BalanceThresholdFilterContract, BalanceThresholdWrapper, ExchangeContract } from '../src'; chaiSetup.configure(); const expect = chai.expect; @@ -127,7 +127,7 @@ describe(ContractName.BalanceThresholdFilter, () => { await erc20Wrapper.setBalancesAndAllowancesAsync(); // Deploy Exchange contract exchangeInstance = await ExchangeContract.deployFrom0xArtifactAsync( - exchangeArtifacts.Exchange, + artifacts.Exchange, provider, txDefaults, zrxAssetData, diff --git a/contracts/extensions/test/dutch_auction.ts b/contracts/extensions/test/dutch_auction.ts index 34ff25c3d..efe813ffc 100644 --- a/contracts/extensions/test/dutch_auction.ts +++ b/contracts/extensions/test/dutch_auction.ts @@ -1,8 +1,6 @@ import { DutchAuctionWrapper } from '@0x/contract-wrappers'; import { ERC20Wrapper, ERC721Wrapper } from '@0x/contracts-asset-proxy'; -import { artifacts as erc20Artifacts, DummyERC20TokenContract, WETH9Contract } from '@0x/contracts-erc20'; -import { DummyERC721TokenContract } from '@0x/contracts-erc721'; -import { artifacts as exchangeArtifacts, ExchangeContract, ExchangeWrapper } from '@0x/contracts-exchange'; +import { ExchangeWrapper } from '@0x/contracts-exchange'; import { chaiSetup, constants, @@ -23,7 +21,15 @@ import { Web3Wrapper } from '@0x/web3-wrapper'; import * as chai from 'chai'; import * as _ from 'lodash'; -import { artifacts, DutchAuctionContract, DutchAuctionTestWrapper } from '../src'; +import { + artifacts, + DummyERC20TokenContract, + DummyERC721TokenContract, + DutchAuctionContract, + DutchAuctionTestWrapper, + ExchangeContract, + WETH9Contract, +} from '../src'; chaiSetup.configure(); const expect = chai.expect; @@ -82,12 +88,12 @@ describe(ContractName.DutchAuction, () => { const erc721Balances = await erc721Wrapper.getBalancesAsync(); erc721MakerAssetIds = erc721Balances[makerAddress][erc721Token.address]; - wethContract = await WETH9Contract.deployFrom0xArtifactAsync(erc20Artifacts.WETH9, provider, txDefaults); + wethContract = await WETH9Contract.deployFrom0xArtifactAsync(artifacts.WETH9, provider, txDefaults); erc20Wrapper.addDummyTokenContract(wethContract as any); const zrxAssetData = assetDataUtils.encodeERC20AssetData(zrxToken.address); const exchangeInstance = await ExchangeContract.deployFrom0xArtifactAsync( - exchangeArtifacts.Exchange, + artifacts.Exchange, provider, txDefaults, zrxAssetData, diff --git a/contracts/extensions/test/order_matcher.ts b/contracts/extensions/test/order_matcher.ts index 0b2f9ddbb..d726de8e0 100644 --- a/contracts/extensions/test/order_matcher.ts +++ b/contracts/extensions/test/order_matcher.ts @@ -1,17 +1,5 @@ -import { - artifacts as proxyArtifacts, - ERC20ProxyContract, - ERC20Wrapper, - ERC721ProxyContract, -} from '@0x/contracts-asset-proxy'; -import { artifacts as erc20Artifacts, DummyERC20TokenContract } from '@0x/contracts-erc20'; -import { artifacts as erc721Artifacts, DummyERC721TokenContract } from '@0x/contracts-erc721'; -import { - artifacts as exchangeArtifacts, - ExchangeContract, - ExchangeFillEventArgs, - ExchangeWrapper, -} from '@0x/contracts-exchange'; +import { ERC20Wrapper } from '@0x/contracts-asset-proxy'; +import { ExchangeWrapper } from '@0x/contracts-exchange'; import { chaiSetup, constants, @@ -34,7 +22,16 @@ import * as chai from 'chai'; import { LogWithDecodedArgs } from 'ethereum-types'; import * as _ from 'lodash'; -import { artifacts, OrderMatcherContract } from '../src'; +import { + artifacts, + DummyERC20TokenContract, + DummyERC721TokenContract, + ERC20ProxyContract, + ERC721ProxyContract, + ExchangeContract, + ExchangeFillEventArgs, + OrderMatcherContract, +} from '../src'; const blockchainLifecycle = new BlockchainLifecycle(web3Wrapper); chaiSetup.configure(); @@ -104,14 +101,10 @@ describe('OrderMatcher', () => { erc20Proxy = await erc20Wrapper.deployProxyAsync(); await erc20Wrapper.setBalancesAndAllowancesAsync(); // Deploy ERC721 proxy - erc721Proxy = await ERC721ProxyContract.deployFrom0xArtifactAsync( - proxyArtifacts.ERC721Proxy, - provider, - txDefaults, - ); + erc721Proxy = await ERC721ProxyContract.deployFrom0xArtifactAsync(artifacts.ERC721Proxy, provider, txDefaults); // Depoy exchange exchange = await ExchangeContract.deployFrom0xArtifactAsync( - exchangeArtifacts.Exchange, + artifacts.Exchange, provider, txDefaults, assetDataUtils.encodeERC20AssetData(zrxToken.address), @@ -200,7 +193,7 @@ describe('OrderMatcher', () => { describe('constructor', () => { it('should revert if assetProxy is unregistered', async () => { const exchangeInstance = await ExchangeContract.deployFrom0xArtifactAsync( - exchangeArtifacts.Exchange, + artifacts.Exchange, provider, txDefaults, constants.NULL_BYTES, @@ -454,7 +447,7 @@ describe('OrderMatcher', () => { signedOrderLeft.signature, signedOrderRight.signature, ); - const logDecoder = new LogDecoder(web3Wrapper, { ...artifacts, ...erc20Artifacts, ...exchangeArtifacts }); + const logDecoder = new LogDecoder(web3Wrapper, artifacts); const txReceipt = await logDecoder.getTxWithDecodedLogsAsync( await web3Wrapper.sendTransactionAsync({ data, @@ -492,7 +485,7 @@ describe('OrderMatcher', () => { signedOrderLeft.signature, signedOrderRight.signature, ); - const logDecoder = new LogDecoder(web3Wrapper, { ...artifacts, ...erc20Artifacts, ...exchangeArtifacts }); + const logDecoder = new LogDecoder(web3Wrapper, artifacts); const txReceipt = await logDecoder.getTxWithDecodedLogsAsync( await web3Wrapper.sendTransactionAsync({ data, @@ -729,7 +722,7 @@ describe('OrderMatcher', () => { }); it('should allow owner to withdraw ERC721 tokens', async () => { const erc721Token = await DummyERC721TokenContract.deployFrom0xArtifactAsync( - erc721Artifacts.DummyERC721Token, + artifacts.DummyERC721Token, provider, txDefaults, constants.DUMMY_TOKEN_NAME, @@ -774,7 +767,7 @@ describe('OrderMatcher', () => { }); it('should be able to approve an ERC721 token by passing in allowance = 1', async () => { const erc721Token = await DummyERC721TokenContract.deployFrom0xArtifactAsync( - erc721Artifacts.DummyERC721Token, + artifacts.DummyERC721Token, provider, txDefaults, constants.DUMMY_TOKEN_NAME, @@ -791,7 +784,7 @@ describe('OrderMatcher', () => { }); it('should be able to approve an ERC721 token by passing in allowance > 1', async () => { const erc721Token = await DummyERC721TokenContract.deployFrom0xArtifactAsync( - erc721Artifacts.DummyERC721Token, + artifacts.DummyERC721Token, provider, txDefaults, constants.DUMMY_TOKEN_NAME, diff --git a/contracts/extensions/test/order_validator.ts b/contracts/extensions/test/order_validator.ts index 88dae14fb..ec31cafbc 100644 --- a/contracts/extensions/test/order_validator.ts +++ b/contracts/extensions/test/order_validator.ts @@ -1,7 +1,5 @@ -import { ERC20ProxyContract, ERC20Wrapper, ERC721ProxyContract, ERC721Wrapper } from '@0x/contracts-asset-proxy'; -import { DummyERC20TokenContract } from '@0x/contracts-erc20'; -import { DummyERC721TokenContract } from '@0x/contracts-erc721'; -import { artifacts as exchangeArtifacts, ExchangeContract, ExchangeWrapper } from '@0x/contracts-exchange'; +import { ERC20Wrapper, ERC721Wrapper } from '@0x/contracts-asset-proxy'; +import { ExchangeWrapper } from '@0x/contracts-exchange'; import { chaiSetup, constants, @@ -18,7 +16,15 @@ import { BigNumber } from '@0x/utils'; import * as chai from 'chai'; import * as _ from 'lodash'; -import { artifacts, OrderValidatorContract } from '../src'; +import { + artifacts, + DummyERC20TokenContract, + DummyERC721TokenContract, + ERC20ProxyContract, + ERC721ProxyContract, + ExchangeContract, + OrderValidatorContract, +} from '../src'; chaiSetup.configure(); const expect = chai.expect; @@ -74,7 +80,7 @@ describe('OrderValidator', () => { const zrxAssetData = assetDataUtils.encodeERC20AssetData(zrxToken.address); exchange = await ExchangeContract.deployFrom0xArtifactAsync( - exchangeArtifacts.Exchange, + artifacts.Exchange, provider, txDefaults, zrxAssetData, diff --git a/contracts/extensions/test/utils/balance_threshold_wrapper.ts b/contracts/extensions/test/utils/balance_threshold_wrapper.ts index 3178d992e..ab59c5688 100644 --- a/contracts/extensions/test/utils/balance_threshold_wrapper.ts +++ b/contracts/extensions/test/utils/balance_threshold_wrapper.ts @@ -1,6 +1,3 @@ -import { artifacts as erc20Artifacts } from '@0x/contracts-erc20'; -import { artifacts as erc721Artifacts } from '@0x/contracts-erc721'; -import { artifacts as exchangeArtifacts, ExchangeContract } from '@0x/contracts-exchange'; import { FillResults, formatters, @@ -15,8 +12,7 @@ import { Web3Wrapper } from '@0x/web3-wrapper'; import { Provider, TransactionReceiptWithDecodedLogs } from 'ethereum-types'; import * as _ from 'lodash'; -import { BalanceThresholdFilterContract } from '../../generated-wrappers/balance_threshold_filter'; -import { artifacts } from '../../src/artifacts'; +import { artifacts, BalanceThresholdFilterContract, ExchangeContract } from '../../src'; export class BalanceThresholdWrapper { private readonly _balanceThresholdFilter: BalanceThresholdFilterContract; @@ -34,12 +30,7 @@ export class BalanceThresholdWrapper { this._exchange = exchangeContract; this._signerTransactionFactory = signerTransactionFactory; this._web3Wrapper = new Web3Wrapper(provider); - this._logDecoder = new LogDecoder(this._web3Wrapper, { - ...artifacts, - ...erc20Artifacts, - ...erc721Artifacts, - ...exchangeArtifacts, - }); + this._logDecoder = new LogDecoder(this._web3Wrapper, artifacts); } public async fillOrderAsync( signedOrder: SignedOrder, @@ -227,7 +218,7 @@ export class BalanceThresholdWrapper { from: string, ): Promise<TransactionReceiptWithDecodedLogs> { const params = orderUtils.createMatchOrders(signedOrderLeft, signedOrderRight); - const data = await this._exchange.matchOrders.getABIEncodedTransactionData( + const data = this._exchange.matchOrders.getABIEncodedTransactionData( params.left, params.right, params.leftSignature, diff --git a/contracts/extensions/test/utils/dutch_auction_test_wrapper.ts b/contracts/extensions/test/utils/dutch_auction_test_wrapper.ts index 5899ffcac..06cdc21d5 100644 --- a/contracts/extensions/test/utils/dutch_auction_test_wrapper.ts +++ b/contracts/extensions/test/utils/dutch_auction_test_wrapper.ts @@ -1,6 +1,3 @@ -import { artifacts as erc20Artifacts } from '@0x/contracts-erc20'; -import { artifacts as erc721Artifacts } from '@0x/contracts-erc721'; -import { artifacts as exchangeArtifacts } from '@0x/contracts-exchange'; import { LogDecoder } from '@0x/contracts-test-utils'; import { DutchAuctionDetails, SignedOrder } from '@0x/types'; import { Web3Wrapper } from '@0x/web3-wrapper'; @@ -18,12 +15,7 @@ export class DutchAuctionTestWrapper { constructor(contractInstance: DutchAuctionContract, provider: Provider) { this._dutchAuctionContract = contractInstance; this._web3Wrapper = new Web3Wrapper(provider); - this._logDecoder = new LogDecoder(this._web3Wrapper, { - ...artifacts, - ...erc20Artifacts, - ...erc721Artifacts, - ...exchangeArtifacts, - }); + this._logDecoder = new LogDecoder(this._web3Wrapper, artifacts); } /** * Matches the buy and sell orders at an amount given the following: the current block time, the auction diff --git a/contracts/extensions/tsconfig.json b/contracts/extensions/tsconfig.json index 0c06c6902..b424bfa04 100644 --- a/contracts/extensions/tsconfig.json +++ b/contracts/extensions/tsconfig.json @@ -1,16 +1,19 @@ { "extends": "../../tsconfig", - "compilerOptions": { - "outDir": "lib", - "rootDir": ".", - "resolveJsonModule": true - }, + "compilerOptions": { "outDir": "lib", "rootDir": ".", "resolveJsonModule": true }, "include": ["./src/**/*", "./test/**/*", "./generated-wrappers/**/*"], "files": [ - "./generated-artifacts/BalanceThresholdFilter.json", - "./generated-artifacts/DutchAuction.json", - "./generated-artifacts/OrderMatcher.json", - "./generated-artifacts/OrderValidator.json" + "generated-artifacts/BalanceThresholdFilter.json", + "generated-artifacts/DummyERC20Token.json", + "generated-artifacts/DummyERC721Token.json", + "generated-artifacts/DutchAuction.json", + "generated-artifacts/ERC20Proxy.json", + "generated-artifacts/ERC721Proxy.json", + "generated-artifacts/Exchange.json", + "generated-artifacts/ExchangeWrapper.json", + "generated-artifacts/OrderMatcher.json", + "generated-artifacts/OrderValidator.json", + "generated-artifacts/WETH9.json" ], "exclude": ["./deploy/solc/solc_bin"] } diff --git a/contracts/multisig/compiler.json b/contracts/multisig/compiler.json index ae3905238..336a9ed7b 100644 --- a/contracts/multisig/compiler.json +++ b/contracts/multisig/compiler.json @@ -3,10 +3,7 @@ "contractsDir": "./contracts", "useDockerisedSolc": true, "compilerSettings": { - "optimizer": { - "enabled": true, - "runs": 1000000 - }, + "optimizer": { "enabled": true, "runs": 1000000 }, "outputSelection": { "*": { "*": [ @@ -20,10 +17,11 @@ } }, "contracts": [ - "AssetProxyOwner", - "MultiSigWallet", - "MultiSigWalletWithTimeLock", - "TestAssetProxyOwner", - "TestRejectEther" + "@0x/contracts-asset-proxy/contracts/src/MixinAuthorizable.sol", + "src/AssetProxyOwner.sol", + "src/MultiSigWallet.sol", + "src/MultiSigWalletWithTimeLock.sol", + "test/TestAssetProxyOwner.sol", + "test/TestRejectEther.sol" ] } diff --git a/contracts/multisig/package.json b/contracts/multisig/package.json index 493889b37..49326ad7d 100644 --- a/contracts/multisig/package.json +++ b/contracts/multisig/package.json @@ -29,10 +29,12 @@ "profiler:report:html": "istanbul report html && open coverage/index.html", "coverage:report:lcov": "istanbul report lcov", "test:circleci": "yarn test", + "contracts:gen": "contracts-gen", "lint-contracts": "solhint -c ../.solhint.json contracts/**/**/**/**/*.sol" }, "config": { - "abis": "generated-artifacts/@(AssetProxyOwner|MultiSigWallet|MultiSigWalletWithTimeLock|TestAssetProxyOwner|TestRejectEther).json" + "abis": "./generated-artifacts/@(AssetProxyOwner|MixinAuthorizable|MultiSigWallet|MultiSigWalletWithTimeLock|TestAssetProxyOwner|TestRejectEther).json", + "abis:comment": "This list is auto-generated by contracts-gen. Don't edit manually." }, "repository": { "type": "git", @@ -44,6 +46,7 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/contracts/multisig/README.md", "devDependencies": { + "@0x/contracts-gen": "^1.0.0", "@0x/abi-gen": "^2.0.1", "@0x/contracts-test-utils": "^3.0.2", "@0x/dev-utils": "^2.0.1", @@ -72,7 +75,7 @@ "@0x/utils": "^4.0.2", "@0x/web3-wrapper": "^4.0.1", "ethereum-types": "^2.0.0", - "lodash": "^4.17.5" + "lodash": "^4.17.11" }, "publishConfig": { "access": "public" diff --git a/contracts/multisig/src/artifacts.ts b/contracts/multisig/src/artifacts.ts new file mode 100644 index 000000000..7d8a85884 --- /dev/null +++ b/contracts/multisig/src/artifacts.ts @@ -0,0 +1,21 @@ +/* + * ----------------------------------------------------------------------------- + * Warning: This file is auto-generated by contracts-gen. Don't edit manually. + * ----------------------------------------------------------------------------- + */ +import { ContractArtifact } from 'ethereum-types'; + +import * as AssetProxyOwner from '../generated-artifacts/AssetProxyOwner.json'; +import * as MixinAuthorizable from '../generated-artifacts/MixinAuthorizable.json'; +import * as MultiSigWallet from '../generated-artifacts/MultiSigWallet.json'; +import * as MultiSigWalletWithTimeLock from '../generated-artifacts/MultiSigWalletWithTimeLock.json'; +import * as TestAssetProxyOwner from '../generated-artifacts/TestAssetProxyOwner.json'; +import * as TestRejectEther from '../generated-artifacts/TestRejectEther.json'; +export const artifacts = { + MixinAuthorizable: MixinAuthorizable as ContractArtifact, + AssetProxyOwner: AssetProxyOwner as ContractArtifact, + MultiSigWallet: MultiSigWallet as ContractArtifact, + MultiSigWalletWithTimeLock: MultiSigWalletWithTimeLock as ContractArtifact, + TestAssetProxyOwner: TestAssetProxyOwner as ContractArtifact, + TestRejectEther: TestRejectEther as ContractArtifact, +}; diff --git a/contracts/multisig/src/artifacts/index.ts b/contracts/multisig/src/artifacts/index.ts deleted file mode 100644 index 326d79000..000000000 --- a/contracts/multisig/src/artifacts/index.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { ContractArtifact } from 'ethereum-types'; - -import * as AssetProxyOwner from '../../generated-artifacts/AssetProxyOwner.json'; -import * as MultiSigWallet from '../../generated-artifacts/MultiSigWallet.json'; -import * as MultiSigWalletWithTimeLock from '../../generated-artifacts/MultiSigWalletWithTimeLock.json'; -import * as TestAssetProxyOwner from '../../generated-artifacts/TestAssetProxyOwner.json'; -import * as TestRejectEther from '../../generated-artifacts/TestRejectEther.json'; - -export const artifacts = { - AssetProxyOwner: AssetProxyOwner as ContractArtifact, - MultiSigWallet: MultiSigWallet as ContractArtifact, - MultiSigWalletWithTimeLock: MultiSigWalletWithTimeLock as ContractArtifact, - TestAssetProxyOwner: TestAssetProxyOwner as ContractArtifact, - TestRejectEther: TestRejectEther as ContractArtifact, -}; diff --git a/contracts/multisig/src/wrappers.ts b/contracts/multisig/src/wrappers.ts new file mode 100644 index 000000000..81aab39da --- /dev/null +++ b/contracts/multisig/src/wrappers.ts @@ -0,0 +1,11 @@ +/* + * ----------------------------------------------------------------------------- + * Warning: This file is auto-generated by contracts-gen. Don't edit manually. + * ----------------------------------------------------------------------------- + */ +export * from '../generated-wrappers/asset_proxy_owner'; +export * from '../generated-wrappers/mixin_authorizable'; +export * from '../generated-wrappers/multi_sig_wallet'; +export * from '../generated-wrappers/multi_sig_wallet_with_time_lock'; +export * from '../generated-wrappers/test_asset_proxy_owner'; +export * from '../generated-wrappers/test_reject_ether'; diff --git a/contracts/multisig/src/wrappers/index.ts b/contracts/multisig/src/wrappers/index.ts deleted file mode 100644 index 43ab25704..000000000 --- a/contracts/multisig/src/wrappers/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * from '../../generated-wrappers/asset_proxy_owner'; -export * from '../../generated-wrappers/multi_sig_wallet'; -export * from '../../generated-wrappers/multi_sig_wallet_with_time_lock'; -export * from '../../generated-wrappers/test_asset_proxy_owner'; -export * from '../../generated-wrappers/test_reject_ether'; diff --git a/contracts/multisig/test/asset_proxy_owner.ts b/contracts/multisig/test/asset_proxy_owner.ts index 62081554b..7bf4069cb 100644 --- a/contracts/multisig/test/asset_proxy_owner.ts +++ b/contracts/multisig/test/asset_proxy_owner.ts @@ -1,4 +1,3 @@ -import { artifacts as proxyArtifacts, MixinAuthorizableContract } from '@0x/contracts-asset-proxy'; import { chaiSetup, constants, @@ -26,6 +25,7 @@ import { AssetProxyOwnerExecutionFailureEventArgs, AssetProxyOwnerSubmissionEventArgs, AssetProxyOwnerWrapper, + MixinAuthorizableContract, TestAssetProxyOwnerContract, } from '../src'; @@ -58,12 +58,12 @@ describe('AssetProxyOwner', () => { notOwner = accounts[3]; const initialOwner = accounts[0]; erc20Proxy = await MixinAuthorizableContract.deployFrom0xArtifactAsync( - proxyArtifacts.MixinAuthorizable, + artifacts.MixinAuthorizable, provider, txDefaults, ); erc721Proxy = await MixinAuthorizableContract.deployFrom0xArtifactAsync( - proxyArtifacts.MixinAuthorizable, + artifacts.MixinAuthorizable, provider, txDefaults, ); diff --git a/contracts/multisig/test/utils/asset_proxy_owner_wrapper.ts b/contracts/multisig/test/utils/asset_proxy_owner_wrapper.ts index b6040d8e3..d5aaaf519 100644 --- a/contracts/multisig/test/utils/asset_proxy_owner_wrapper.ts +++ b/contracts/multisig/test/utils/asset_proxy_owner_wrapper.ts @@ -1,5 +1,3 @@ -import { artifacts as proxyArtifacts } from '@0x/contracts-asset-proxy'; -import { artifacts as erc20Artifacts } from '@0x/contracts-erc20'; import { LogDecoder } from '@0x/contracts-test-utils'; import { BigNumber } from '@0x/utils'; import { Web3Wrapper } from '@0x/web3-wrapper'; @@ -16,7 +14,7 @@ export class AssetProxyOwnerWrapper { constructor(assetproxyOwnerContract: AssetProxyOwnerContract, provider: Provider) { this._assetProxyOwner = assetproxyOwnerContract; this._web3Wrapper = new Web3Wrapper(provider); - this._logDecoder = new LogDecoder(this._web3Wrapper, { ...artifacts, ...erc20Artifacts, ...proxyArtifacts }); + this._logDecoder = new LogDecoder(this._web3Wrapper, artifacts); } public async submitTransactionAsync( destination: string, diff --git a/contracts/multisig/tsconfig.json b/contracts/multisig/tsconfig.json index ad1707e43..094f89413 100644 --- a/contracts/multisig/tsconfig.json +++ b/contracts/multisig/tsconfig.json @@ -1,17 +1,14 @@ { "extends": "../../tsconfig", - "compilerOptions": { - "outDir": "lib", - "rootDir": ".", - "resolveJsonModule": true - }, + "compilerOptions": { "outDir": "lib", "rootDir": ".", "resolveJsonModule": true }, "include": ["./src/**/*", "./test/**/*", "./generated-wrappers/**/*"], "files": [ - "./generated-artifacts/AssetProxyOwner.json", - "./generated-artifacts/MultiSigWallet.json", - "./generated-artifacts/MultiSigWalletWithTimeLock.json", - "./generated-artifacts/TestAssetProxyOwner.json", - "./generated-artifacts/TestRejectEther.json" + "generated-artifacts/AssetProxyOwner.json", + "generated-artifacts/MixinAuthorizable.json", + "generated-artifacts/MultiSigWallet.json", + "generated-artifacts/MultiSigWalletWithTimeLock.json", + "generated-artifacts/TestAssetProxyOwner.json", + "generated-artifacts/TestRejectEther.json" ], "exclude": ["./deploy/solc/solc_bin"] } diff --git a/contracts/test-utils/package.json b/contracts/test-utils/package.json index 0b8478e05..f73e1f456 100644 --- a/contracts/test-utils/package.json +++ b/contracts/test-utils/package.json @@ -66,7 +66,7 @@ "ethereumjs-util": "^5.1.1", "ethers": "~4.0.4", "js-combinatorics": "^0.5.3", - "lodash": "^4.17.5", + "lodash": "^4.17.11", "make-promises-safe": "^1.1.0" }, "publishConfig": { diff --git a/contracts/utils/compiler.json b/contracts/utils/compiler.json index 7473ea6d1..a54f547df 100644 --- a/contracts/utils/compiler.json +++ b/contracts/utils/compiler.json @@ -3,10 +3,7 @@ "contractsDir": "./contracts", "useDockerisedSolc": true, "compilerSettings": { - "optimizer": { - "enabled": true, - "runs": 1000000 - }, + "optimizer": { "enabled": true, "runs": 1000000 }, "outputSelection": { "*": { "*": [ @@ -19,5 +16,13 @@ } } }, - "contracts": ["TestConstants", "TestLibBytes", "LibBytes", "Ownable", "IOwnable", "ReentrancyGuard", "SafeMath"] + "contracts": [ + "src/LibBytes.sol", + "src/Ownable.sol", + "src/ReentrancyGuard.sol", + "src/SafeMath.sol", + "src/interfaces/IOwnable.sol", + "test/TestConstants.sol", + "test/TestLibBytes.sol" + ] } diff --git a/contracts/utils/package.json b/contracts/utils/package.json index 214ea59d8..3b0e5a527 100644 --- a/contracts/utils/package.json +++ b/contracts/utils/package.json @@ -29,10 +29,12 @@ "profiler:report:html": "istanbul report html && open coverage/index.html", "coverage:report:lcov": "istanbul report lcov", "test:circleci": "yarn test", + "contracts:gen": "contracts-gen", "lint-contracts": "solhint -c ../.solhint.json contracts/**/**/**/**/*.sol" }, "config": { - "abis": "generated-artifacts/@(IOwnable|Ownable|LibBytes|ReentrancyGuard|SafeMath|TestConstants|TestLibBytes).json" + "abis": "./generated-artifacts/@(IOwnable|LibBytes|Ownable|ReentrancyGuard|SafeMath|TestConstants|TestLibBytes).json", + "abis:comment": "This list is auto-generated by contracts-gen. Don't edit manually." }, "repository": { "type": "git", @@ -44,6 +46,7 @@ }, "homepage": "https://github.com/0xProject/0x-monorepo/contracts/utils/README.md", "devDependencies": { + "@0x/contracts-gen": "^1.0.0", "@0x/abi-gen": "^2.0.1", "@0x/contracts-test-utils": "^3.0.2", "@0x/dev-utils": "^2.0.1", @@ -74,7 +77,7 @@ "bn.js": "^4.11.8", "ethereum-types": "^2.0.0", "ethereumjs-util": "^5.1.1", - "lodash": "^4.17.5" + "lodash": "^4.17.11" }, "publishConfig": { "access": "public" diff --git a/contracts/utils/src/artifacts.ts b/contracts/utils/src/artifacts.ts new file mode 100644 index 000000000..15a1abedf --- /dev/null +++ b/contracts/utils/src/artifacts.ts @@ -0,0 +1,23 @@ +/* + * ----------------------------------------------------------------------------- + * Warning: This file is auto-generated by contracts-gen. Don't edit manually. + * ----------------------------------------------------------------------------- + */ +import { ContractArtifact } from 'ethereum-types'; + +import * as IOwnable from '../generated-artifacts/IOwnable.json'; +import * as LibBytes from '../generated-artifacts/LibBytes.json'; +import * as Ownable from '../generated-artifacts/Ownable.json'; +import * as ReentrancyGuard from '../generated-artifacts/ReentrancyGuard.json'; +import * as SafeMath from '../generated-artifacts/SafeMath.json'; +import * as TestConstants from '../generated-artifacts/TestConstants.json'; +import * as TestLibBytes from '../generated-artifacts/TestLibBytes.json'; +export const artifacts = { + LibBytes: LibBytes as ContractArtifact, + Ownable: Ownable as ContractArtifact, + ReentrancyGuard: ReentrancyGuard as ContractArtifact, + SafeMath: SafeMath as ContractArtifact, + IOwnable: IOwnable as ContractArtifact, + TestConstants: TestConstants as ContractArtifact, + TestLibBytes: TestLibBytes as ContractArtifact, +}; diff --git a/contracts/utils/src/artifacts/index.ts b/contracts/utils/src/artifacts/index.ts deleted file mode 100644 index a5c2b215c..000000000 --- a/contracts/utils/src/artifacts/index.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { ContractArtifact } from 'ethereum-types'; - -import * as IOwnable from '../../generated-artifacts/IOwnable.json'; -import * as LibBytes from '../../generated-artifacts/LibBytes.json'; -import * as Ownable from '../../generated-artifacts/Ownable.json'; -import * as ReentrancyGuard from '../../generated-artifacts/ReentrancyGuard.json'; -import * as SafeMath from '../../generated-artifacts/SafeMath.json'; -import * as TestConstants from '../../generated-artifacts/TestConstants.json'; -import * as TestLibBytes from '../../generated-artifacts/TestLibBytes.json'; - -export const artifacts = { - TestConstants: TestConstants as ContractArtifact, - TestLibBytes: TestLibBytes as ContractArtifact, - IOwnable: IOwnable as ContractArtifact, - LibBytes: LibBytes as ContractArtifact, - Ownable: Ownable as ContractArtifact, - SafeMath: SafeMath as ContractArtifact, - ReentrancyGuard: ReentrancyGuard as ContractArtifact, -}; diff --git a/contracts/utils/src/wrappers.ts b/contracts/utils/src/wrappers.ts new file mode 100644 index 000000000..8748cb074 --- /dev/null +++ b/contracts/utils/src/wrappers.ts @@ -0,0 +1,12 @@ +/* + * ----------------------------------------------------------------------------- + * Warning: This file is auto-generated by contracts-gen. Don't edit manually. + * ----------------------------------------------------------------------------- + */ +export * from '../generated-wrappers/i_ownable'; +export * from '../generated-wrappers/lib_bytes'; +export * from '../generated-wrappers/ownable'; +export * from '../generated-wrappers/reentrancy_guard'; +export * from '../generated-wrappers/safe_math'; +export * from '../generated-wrappers/test_constants'; +export * from '../generated-wrappers/test_lib_bytes'; diff --git a/contracts/utils/src/wrappers/index.ts b/contracts/utils/src/wrappers/index.ts deleted file mode 100644 index 823b7fa4b..000000000 --- a/contracts/utils/src/wrappers/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from '../../generated-wrappers/test_constants'; -export * from '../../generated-wrappers/test_lib_bytes'; diff --git a/contracts/utils/tsconfig.json b/contracts/utils/tsconfig.json index 68251e6b0..efd71ff93 100644 --- a/contracts/utils/tsconfig.json +++ b/contracts/utils/tsconfig.json @@ -1,19 +1,15 @@ { "extends": "../../tsconfig", - "compilerOptions": { - "outDir": "lib", - "rootDir": ".", - "resolveJsonModule": true - }, + "compilerOptions": { "outDir": "lib", "rootDir": ".", "resolveJsonModule": true }, "include": ["./src/**/*", "./test/**/*", "./generated-wrappers/**/*"], "files": [ - "./generated-artifacts/TestConstants.json", - "./generated-artifacts/TestLibBytes.json", - "./generated-artifacts/IOwnable.json", - "./generated-artifacts/Ownable.json", - "./generated-artifacts/LibBytes.json", - "./generated-artifacts/SafeMath.json", - "./generated-artifacts/ReentrancyGuard.json" + "generated-artifacts/IOwnable.json", + "generated-artifacts/LibBytes.json", + "generated-artifacts/Ownable.json", + "generated-artifacts/ReentrancyGuard.json", + "generated-artifacts/SafeMath.json", + "generated-artifacts/TestConstants.json", + "generated-artifacts/TestLibBytes.json" ], "exclude": ["./deploy/solc/solc_bin"] } |