From 83ddaccf4a7c855ed726399cb587ec7e1abe28f4 Mon Sep 17 00:00:00 2001 From: Leonid Logvinov Date: Mon, 11 Jun 2018 11:59:48 -0700 Subject: Add profiler and geth tests to metacoin --- packages/metacoin/README.md | 97 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 packages/metacoin/README.md (limited to 'packages/metacoin/README.md') diff --git a/packages/metacoin/README.md b/packages/metacoin/README.md new file mode 100644 index 000000000..8f45154d7 --- /dev/null +++ b/packages/metacoin/README.md @@ -0,0 +1,97 @@ +## @0xproject/metacoin + +This is a small example project that server as a showroom/polygon for 0x dev tools. +It suppports: + +* Compiling & testing smart contracts +* Typed contract wrappers +* Coverage +* Profiling +* Running tests against Ganache +* Running tests against our fork of Geth that supports snapshots & 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 emmited 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(); +``` -- cgit v1.2.3 From 534a0d68362abb5a7e643852015c3496bead705c Mon Sep 17 00:00:00 2001 From: Leonid Logvinov Date: Mon, 11 Jun 2018 22:03:07 -0700 Subject: Fix typos --- packages/metacoin/README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'packages/metacoin/README.md') diff --git a/packages/metacoin/README.md b/packages/metacoin/README.md index 8f45154d7..15816cc67 100644 --- a/packages/metacoin/README.md +++ b/packages/metacoin/README.md @@ -1,14 +1,14 @@ ## @0xproject/metacoin -This is a small example project that server as a showroom/polygon for 0x dev tools. -It suppports: +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 -* Typed contract wrappers -* Coverage -* Profiling +* Generating typed contract wrappers +* Solidity coverage +* Solidity gas profiling * Running tests against Ganache -* Running tests against our fork of Geth that supports snapshots & time travel +* Running tests against our fork of Geth (it supports snapshotting & time travel) ## Contributing @@ -81,7 +81,7 @@ yarn coverage:report:html ### Profiling -Please note that traces emmited by ganache have incorrect gas costs so we recommend using Geth for 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 -- cgit v1.2.3