aboutsummaryrefslogtreecommitdiffstats
path: root/contracts
diff options
context:
space:
mode:
authorFabio Berger <me@fabioberger.com>2019-02-07 20:33:44 +0800
committerFabio Berger <me@fabioberger.com>2019-02-07 20:33:44 +0800
commit7a9ff3846ecbfbdbe5ace374563deea50c15bc45 (patch)
treea44c30848e06af96b5e1ba1fea395d636e6693ae /contracts
parentf118e86cfe478f95eb0450df351871e8278862c3 (diff)
parent2ef3af000378f66daa0212daaf23c807d018711e (diff)
downloaddexon-0x-contracts-7a9ff3846ecbfbdbe5ace374563deea50c15bc45.tar.gz
dexon-0x-contracts-7a9ff3846ecbfbdbe5ace374563deea50c15bc45.tar.zst
dexon-0x-contracts-7a9ff3846ecbfbdbe5ace374563deea50c15bc45.zip
Merge development
Diffstat (limited to 'contracts')
-rw-r--r--contracts/asset-proxy/compiler.json24
-rw-r--r--contracts/asset-proxy/package.json7
-rw-r--r--contracts/asset-proxy/src/artifacts.ts33
-rw-r--r--contracts/asset-proxy/src/artifacts/index.ts19
-rw-r--r--contracts/asset-proxy/src/wrappers.ts17
-rw-r--r--contracts/asset-proxy/src/wrappers/index.ts7
-rw-r--r--contracts/asset-proxy/test/proxies.ts28
-rw-r--r--contracts/asset-proxy/test/utils/erc20_wrapper.ts6
-rw-r--r--contracts/asset-proxy/test/utils/erc721_wrapper.ts6
-rw-r--r--contracts/asset-proxy/tsconfig.json25
-rw-r--r--contracts/erc20/compiler.json27
-rw-r--r--contracts/erc20/package.json7
-rw-r--r--contracts/erc20/src/artifacts.ts31
-rw-r--r--contracts/erc20/src/artifacts/index.ts30
-rw-r--r--contracts/erc20/src/wrappers.ts16
-rw-r--r--contracts/erc20/src/wrappers/index.ts11
-rw-r--r--contracts/erc20/tsconfig.json28
-rw-r--r--contracts/erc721/compiler.json19
-rw-r--r--contracts/erc721/package.json7
-rw-r--r--contracts/erc721/src/artifacts.ts23
-rw-r--r--contracts/erc721/src/artifacts/index.ts20
-rw-r--r--contracts/erc721/src/wrappers.ts12
-rw-r--r--contracts/erc721/src/wrappers/index.ts7
-rw-r--r--contracts/erc721/tsconfig.json20
-rw-r--r--contracts/exchange-forwarder/compiler.json13
-rw-r--r--contracts/exchange-forwarder/package.json7
-rw-r--r--contracts/exchange-forwarder/src/artifacts.ts19
-rw-r--r--contracts/exchange-forwarder/src/artifacts/index.ts7
-rw-r--r--contracts/exchange-forwarder/src/wrappers.ts10
-rw-r--r--contracts/exchange-forwarder/src/wrappers/index.ts1
-rw-r--r--contracts/exchange-forwarder/test/forwarder.ts20
-rw-r--r--contracts/exchange-forwarder/test/utils/forwarder_wrapper.ts10
-rw-r--r--contracts/exchange-forwarder/tsconfig.json14
-rw-r--r--contracts/exchange-libs/compiler.json21
-rw-r--r--contracts/exchange-libs/package.json7
-rw-r--r--contracts/exchange-libs/src/artifacts.ts25
-rw-r--r--contracts/exchange-libs/src/artifacts/index.ts17
-rw-r--r--contracts/exchange-libs/src/wrappers.ts13
-rw-r--r--contracts/exchange-libs/src/wrappers/index.ts6
-rw-r--r--contracts/exchange-libs/tsconfig.json20
-rw-r--r--contracts/exchange/compiler.json49
-rw-r--r--contracts/exchange/package.json7
-rw-r--r--contracts/exchange/src/artifacts.ts61
-rw-r--r--contracts/exchange/src/artifacts/index.ts41
-rw-r--r--contracts/exchange/src/wrappers.ts31
-rw-r--r--contracts/exchange/src/wrappers/index.ts18
-rw-r--r--contracts/exchange/test/core.ts31
-rw-r--r--contracts/exchange/test/dispatcher.ts14
-rw-r--r--contracts/exchange/test/match_orders.ts19
-rw-r--r--contracts/exchange/test/signature_validator.ts3
-rw-r--r--contracts/exchange/test/utils/exchange_wrapper.ts4
-rw-r--r--contracts/exchange/test/utils/fill_order_combinatorial_utils.ts9
-rw-r--r--contracts/exchange/test/wrapper.ts17
-rw-r--r--contracts/exchange/tsconfig.json50
-rw-r--r--contracts/extensions/compiler.json19
-rw-r--r--contracts/extensions/package.json7
-rw-r--r--contracts/extensions/src/artifacts.ts31
-rw-r--r--contracts/extensions/src/artifacts/index.ts13
-rw-r--r--contracts/extensions/src/wrappers.ts16
-rw-r--r--contracts/extensions/src/wrappers/index.ts4
-rw-r--r--contracts/extensions/test/balance_threshold_filter.ts6
-rw-r--r--contracts/extensions/test/dutch_auction.ts18
-rw-r--r--contracts/extensions/test/order_matcher.ts47
-rw-r--r--contracts/extensions/test/order_validator.ts18
-rw-r--r--contracts/extensions/test/utils/balance_threshold_wrapper.ts15
-rw-r--r--contracts/extensions/test/utils/dutch_auction_test_wrapper.ts10
-rw-r--r--contracts/extensions/tsconfig.json21
-rw-r--r--contracts/multisig/compiler.json16
-rw-r--r--contracts/multisig/package.json7
-rw-r--r--contracts/multisig/src/artifacts.ts21
-rw-r--r--contracts/multisig/src/artifacts/index.ts15
-rw-r--r--contracts/multisig/src/wrappers.ts11
-rw-r--r--contracts/multisig/src/wrappers/index.ts5
-rw-r--r--contracts/multisig/test/asset_proxy_owner.ts6
-rw-r--r--contracts/multisig/test/utils/asset_proxy_owner_wrapper.ts4
-rw-r--r--contracts/multisig/tsconfig.json17
-rw-r--r--contracts/test-utils/package.json2
-rw-r--r--contracts/utils/compiler.json15
-rw-r--r--contracts/utils/package.json7
-rw-r--r--contracts/utils/src/artifacts.ts23
-rw-r--r--contracts/utils/src/artifacts/index.ts19
-rw-r--r--contracts/utils/src/wrappers.ts12
-rw-r--r--contracts/utils/src/wrappers/index.ts2
-rw-r--r--contracts/utils/tsconfig.json20
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"]
}