aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Browne <stephenalexbrowne@gmail.com>2018-10-05 05:14:05 +0800
committerAlex Browne <stephenalexbrowne@gmail.com>2018-10-16 04:36:59 +0800
commit8f0ceaf1d8261e9779213276372f4690cdf3426c (patch)
tree8773a0d4b5366be0d3821a68d31b309816f81521
parent1da360435102bb6629f01d8a9d1c5d02d2a983bd (diff)
downloaddexon-sol-tools-8f0ceaf1d8261e9779213276372f4690cdf3426c.tar.gz
dexon-sol-tools-8f0ceaf1d8261e9779213276372f4690cdf3426c.tar.zst
dexon-sol-tools-8f0ceaf1d8261e9779213276372f4690cdf3426c.zip
Create abi-gen-wrappers package
-rw-r--r--.gitignore2
-rw-r--r--packages/abi-gen-wrappers/package.json40
-rw-r--r--packages/abi-gen-wrappers/src/index.ts12
-rw-r--r--packages/abi-gen-wrappers/tsconfig.json8
-rw-r--r--packages/contract-artifacts/README.md135
-rw-r--r--packages/contract-artifacts/package.json5
-rw-r--r--packages/contract-artifacts/src/index.ts3
-rw-r--r--tsconfig.json1
8 files changed, 67 insertions, 139 deletions
diff --git a/.gitignore b/.gitignore
index ac921ea20..4aff448f0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -79,6 +79,7 @@ packages/react-docs/example/public/bundle*
packages/testnet-faucets/server/
# generated contract artifacts/
+packages/contracts/generated-artifacts/
packages/sol-cov/test/fixtures/artifacts/
packages/metacoin/artifacts/
packages/order-watcher/test/artifacts/
@@ -90,6 +91,7 @@ packages/order-utils/src/artifacts/
packages/migrations/artifacts/development/
# generated contract wrappers
+packages/abi-gen-wrappers/wrappers
packages/0x.js/src/generated_contract_wrappers/
packages/contracts/generated-wrappers/
packages/metacoin/src/contract_wrappers
diff --git a/packages/abi-gen-wrappers/package.json b/packages/abi-gen-wrappers/package.json
new file mode 100644
index 000000000..7412e2739
--- /dev/null
+++ b/packages/abi-gen-wrappers/package.json
@@ -0,0 +1,40 @@
+{
+ "name": "@0xproject/abi-gen-wrappers",
+ "version": "1.0.0",
+ "engines": {
+ "node": ">=6.12"
+ },
+ "description": "Smart contract components of 0x protocol",
+ "main": "lib/src/index.js",
+ "directories": {
+ "test": "test"
+ },
+ "scripts": {
+ "build": "yarn pre_build && tsc -b",
+ "build:ci": "yarn build",
+ "pre_build": "yarn generate_contract_wrappers",
+ "clean": "shx rm -rf lib wrappers",
+ "generate_contract_wrappers": "abi-gen --abis ${npm_package_config_abis} --template ../contract_templates/contract.handlebars --partials '../contract_templates/partials/**/*.handlebars' --output wrappers --backend ethers"
+ },
+ "config": {
+ "abis": "../contract-artifacts/artifacts/@(AssetProxyOwner|DummyERC20Token|DummyERC721Token|ERC20Proxy|ERC20Token|ERC721Proxy|ERC721Token|Exchange|Forwarder|IValidator|IWallet|OrderValidator|WETH9|ZRXToken).json"
+ },
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/0xProject/0x-monorepo.git"
+ },
+ "license": "Apache-2.0",
+ "bugs": {
+ "url": "https://github.com/0xProject/0x-monorepo/issues"
+ },
+ "homepage": "https://github.com/0xProject/0x-monorepo/packages/abi-gen-wrappers/README.md",
+ "devDependencies": {
+ "@0xproject/abi-gen": "^1.0.12",
+ "shx": "^0.2.2"
+ },
+ "dependencies": {
+ },
+ "publishConfig": {
+ "access": "public"
+ }
+}
diff --git a/packages/abi-gen-wrappers/src/index.ts b/packages/abi-gen-wrappers/src/index.ts
new file mode 100644
index 000000000..614eb4ec0
--- /dev/null
+++ b/packages/abi-gen-wrappers/src/index.ts
@@ -0,0 +1,12 @@
+export * from '../wrappers/asset_proxy_owner';
+export * from '../wrappers/dummy_erc20_token';
+export * from '../wrappers/dummy_erc721_token';
+export * from '../wrappers/erc20_proxy';
+export * from '../wrappers/erc721_proxy';
+export * from '../wrappers/erc20_token';
+export * from '../wrappers/erc721_token';
+export * from '../wrappers/exchange';
+export * from '../wrappers/forwarder';
+export * from '../wrappers/order_validator';
+export * from '../wrappers/weth9';
+export * from '../wrappers/zrx_token';
diff --git a/packages/abi-gen-wrappers/tsconfig.json b/packages/abi-gen-wrappers/tsconfig.json
new file mode 100644
index 000000000..241a4ae51
--- /dev/null
+++ b/packages/abi-gen-wrappers/tsconfig.json
@@ -0,0 +1,8 @@
+{
+ "extends": "../../tsconfig",
+ "compilerOptions": {
+ "outDir": "lib",
+ "rootDir": ".",
+ },
+ "include": ["./src/**/*", "./wrappers/**/*"],
+}
diff --git a/packages/contract-artifacts/README.md b/packages/contract-artifacts/README.md
deleted file mode 100644
index 33cbdae26..000000000
--- a/packages/contract-artifacts/README.md
+++ /dev/null
@@ -1,135 +0,0 @@
-## Contracts
-
-Smart contracts that implement the 0x protocol. Addresses of the deployed contracts can be found [here](https://0xproject.com/wiki#Deployed-Addresses).
-
-## Usage
-
-### 2.0.0
-
-Contracts that make up and interact with version 2.0.0 of the protocol can be found in the `src/2.0.0` directory. The contents of this directory are broken down into the following subdirectories:
-
-* protocol
- * This directory contains the contracts that make up version 2.0.0. A full specification can be found [here](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md).
-* extensions
- * This directory contains contracts that interact with the 2.0.0 contracts and will be used in production, such as the [Forwarder](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/forwarder-specification.md) contract.
-* examples
- * This directory contains example implementations of contracts that interact with the protocol but are _not_ intended for use in production. Examples include [filter](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md#filter-contracts) contracts, a [Wallet](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md#wallet) contract, and a [Validator](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md#validator) contract, among others.
-* tokens
- * This directory contains implementations of different tokens and token standards, including [wETH](https://weth.io/), ZRX, [ERC20](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md), and [ERC721](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md).
-* multisig
- * This directory contains the [Gnosis MultiSigWallet](https://github.com/gnosis/MultiSigWallet) and a custom extension that adds a timelock to transactions within the MultiSigWallet.
-* utils
- * This directory contains libraries and utils that are shared across all of the other directories.
-* test
- * This directory contains mocks and other contracts that are used solely for testing contracts within the other directories.
-
-### 1.0.0
-
-Contracts that make up version 1.0.0 of the protocol can be found in `src/1.0.0`. These contracts are considered deprecated and will have limited support going forward.
-
-## Bug bounty
-
-A bug bounty for the 2.0.0 contracts is ongoing! Instructions can be found [here](https://0xproject.com/wiki#Bug-Bounty).
-
-## Contributing
-
-We strongly recommend that the community help us make improvements and determine the future direction of the protocol. To report bugs within this package, please create an issue in this repository.
-
-For proposals regarding the 0x protocol's smart contract architecture, message format, or additional functionality, go to the [0x Improvement Proposals (ZEIPs)](https://github.com/0xProject/ZEIPs) repository and follow the contribution guidelines provided therein.
-
-Please read our [contribution guidelines](../../CONTRIBUTING.md) before getting started.
-
-### Install Dependencies
-
-If you don't have yarn workspaces enabled (Yarn < v1.0) - enable them:
-
-```bash
-yarn config set workspaces-experimental true
-```
-
-Then install dependencies
-
-```bash
-yarn install
-```
-
-### Build
-
-To build this package and all other monorepo packages that it depends on, run the following from the monorepo root directory:
-
-```bash
-PKG=contracts yarn build
-```
-
-Or continuously rebuild on change:
-
-```bash
-PKG=contracts yarn watch
-```
-
-### Clean
-
-```bash
-yarn clean
-```
-
-### Lint
-
-```bash
-yarn lint
-```
-
-### Run Tests
-
-```bash
-yarn test
-```
-
-#### Testing options
-
-###### Revert stack traces
-
-If you want to see helpful stack traces (incl. line number, code snippet) for smart contract reverts, run the tests with:
-
-```
-yarn test:trace
-```
-
-**Note:** This currently slows down the test runs and is therefore not enabled by default.
-
-###### Backing Ethereum node
-
-By default, our tests run against an in-process [Ganache](https://github.com/trufflesuite/ganache-core) instance. In order to run the tests against [Geth](https://github.com/ethereum/go-ethereum), first follow the instructions in the README for the devnet package to start the devnet Geth node. Then run:
-
-```bash
-TEST_PROVIDER=geth yarn test
-```
-
-###### Code coverage
-
-In order to see the Solidity code coverage output generated by `@0xproject/sol-cov`, run:
-
-```
-yarn test:coverage
-```
-
-###### Gas profiler
-
-In order to profile the gas costs for a specific smart contract call/transaction, you can run the tests in `profiler` mode.
-
-**Note:** Traces emitted by ganache have incorrect gas costs so we recommend using Geth for profiling.
-
-```
-TEST_PROVIDER=geth yarn test:profiler
-```
-
-You'll see a warning that you need to explicitly enable and disable the profiler before and after the block of code you want to profile.
-
-```typescript
-import { profiler } from './utils/profiler';
-profiler.start();
-// Some call to a smart contract
-profiler.stop();
-```
-
-Without explicitly starting and stopping the profiler, the profiler output will be too busy, and therefore unusable.
diff --git a/packages/contract-artifacts/package.json b/packages/contract-artifacts/package.json
index 1493510e8..39fe68410 100644
--- a/packages/contract-artifacts/package.json
+++ b/packages/contract-artifacts/package.json
@@ -1,6 +1,6 @@
{
"name": "@0xproject/contract-artifacts",
- "version": "2.0.0",
+ "version": "1.0.0",
"engines": {
"node": ">=6.12"
},
@@ -24,7 +24,8 @@
},
"homepage": "https://github.com/0xProject/0x-monorepo/packages/contract-artifacts/README.md",
"devDependencies": {
- "typescript": "3.0.1"
+ "typescript": "3.0.1",
+ "shx": "^0.2.2"
},
"dependencies": {
},
diff --git a/packages/contract-artifacts/src/index.ts b/packages/contract-artifacts/src/index.ts
index d8c83503b..f30276dd9 100644
--- a/packages/contract-artifacts/src/index.ts
+++ b/packages/contract-artifacts/src/index.ts
@@ -13,8 +13,7 @@ import * as OrderValidator from '../artifacts/OrderValidator.json';
import * as WETH9 from '../artifacts/WETH9.json';
import * as ZRXToken from '../artifacts/ZRXToken.json';
-// TODO(albrow): Do we need to export all of these?
-export const artifacts = {
+export {
AssetProxyOwner,
DummyERC20Token,
DummyERC721Token,
diff --git a/tsconfig.json b/tsconfig.json
index 5d1da9d02..7127f9a88 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -22,6 +22,7 @@
"references": [
{ "path": "./packages/0x.js" },
{ "path": "./packages/abi-gen" },
+ { "path": "./packages/abi-gen-wrappers" },
{ "path": "./packages/assert" },
{ "path": "./packages/asset-buyer" },
{ "path": "./packages/base-contract" },