diff options
author | Leonid Logvinov <logvinov.leon@gmail.com> | 2018-06-12 13:03:22 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-06-12 13:03:22 +0800 |
commit | 71934f05a8758a180d85797156eb254360d9e5ce (patch) | |
tree | dc774b4a4a6f260c75365f5c9f00a7cd3db21689 /packages/metacoin/README.md | |
parent | 746b1d0c4d0c5a6442373655877b268d365f9a0a (diff) | |
parent | 534a0d68362abb5a7e643852015c3496bead705c (diff) | |
download | dexon-sol-tools-71934f05a8758a180d85797156eb254360d9e5ce.tar dexon-sol-tools-71934f05a8758a180d85797156eb254360d9e5ce.tar.gz dexon-sol-tools-71934f05a8758a180d85797156eb254360d9e5ce.tar.bz2 dexon-sol-tools-71934f05a8758a180d85797156eb254360d9e5ce.tar.lz dexon-sol-tools-71934f05a8758a180d85797156eb254360d9e5ce.tar.xz dexon-sol-tools-71934f05a8758a180d85797156eb254360d9e5ce.tar.zst dexon-sol-tools-71934f05a8758a180d85797156eb254360d9e5ce.zip |
Merge pull request #687 from 0xProject/feature/metacoin-docs
Add profiler and geth tests to metacoin
Diffstat (limited to 'packages/metacoin/README.md')
-rw-r--r-- | packages/metacoin/README.md | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/packages/metacoin/README.md b/packages/metacoin/README.md new file mode 100644 index 000000000..15816cc67 --- /dev/null +++ b/packages/metacoin/README.md @@ -0,0 +1,97 @@ +## @0xproject/metacoin + +This is an example project that demonstrates how the many Ethereum dev tools developed by 0x can be used in any Solidity/TS project. +It supports: + +* Compiling & testing smart contracts +* Generating typed contract wrappers +* Solidity coverage +* Solidity gas profiling +* Running tests against Ganache +* Running tests against our fork of Geth (it supports snapshotting & time travel) + +## Contributing + +We welcome improvements and fixes from the wider community! To report bugs within this package, please create an issue in this repository. + +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=@0xproject/metacoin yarn build +``` + +Or continuously rebuild on change: + +```bash +PKG=@0xproject/metacoin yarn watch +``` + +### Clean + +```bash +yarn clean +``` + +### Lint + +```bash +yarn lint +``` + +### Test providers + +By default tests run against an in-process Ganache instance. If you want to use Geth you'll need to [start a Geth dev node](https://github.com/0xProject/0x-monorepo/blob/v2-prototype/packages/devnet/README.md) first. + +```bash +cd ../devnet +docker build -t 0x-devnet . +docker run -it --rm -p 8501:8501 0x-devnet +``` + +This Geth version supports snapshots and time travel. Then - run your tests against it. + +``` +TEST_PROVIDER=geth yarn test +``` + +### Coverage + +```bash +yarn test:coverage +yarn coverage:report:html +``` + +### Profiling + +Please note that traces emitted by ganache have incorrect gas costs so we recommend using Geth for profiling. + +```bash +TEST_PROVIDER=geth yarn test:profile +``` + +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 solidity stuff +profiler.stop(); +``` |