aboutsummaryrefslogtreecommitdiffstats
path: root/packages/metacoin/README.md
diff options
context:
space:
mode:
authorFabio Berger <me@fabioberger.com>2018-06-13 22:10:05 +0800
committerFabio Berger <me@fabioberger.com>2018-06-13 22:10:05 +0800
commitb4fead9606ecc9655b2038fcef1c75217752f67d (patch)
treeb363eee11085850328837004b41ff23c5d31efb6 /packages/metacoin/README.md
parent61243b418e4d962cd8d8a1d7a49f04510b3c1c7f (diff)
parent4efd28c092e74b438d0397069c0c55cc90c537f2 (diff)
downloaddexon-sol-tools-b4fead9606ecc9655b2038fcef1c75217752f67d.tar
dexon-sol-tools-b4fead9606ecc9655b2038fcef1c75217752f67d.tar.gz
dexon-sol-tools-b4fead9606ecc9655b2038fcef1c75217752f67d.tar.bz2
dexon-sol-tools-b4fead9606ecc9655b2038fcef1c75217752f67d.tar.lz
dexon-sol-tools-b4fead9606ecc9655b2038fcef1c75217752f67d.tar.xz
dexon-sol-tools-b4fead9606ecc9655b2038fcef1c75217752f67d.tar.zst
dexon-sol-tools-b4fead9606ecc9655b2038fcef1c75217752f67d.zip
Merge branch 'v2-prototype' into feature/combinatorial-testing
* v2-prototype: (26 commits) Rename _coverageCollector -> _profilerCollector in TraceCollectionSubprovider Refactor sol-cov to de-duplicate code for coverage and profiling Rename popByte and popAddress Hard code test addresses/bytes32 instead of generating pseudorandom ones Update artifacts Rename computeCoverageAsync -> computeSingleTraceCoverageAsync Fix linter errors Refactor sol-cov to avoid keeping traceInfo in memory Unpop byte rather than making deep copy Pass gas in to marketBuyOrdersNoThrow Looks up the memory location of makerAssetData/takerAssetData Make ZRX_PROXY_ID constant rather than popping it from ZRX_ASSET_DATA Add tests for deepCopyBytes and missing write methods from LibBytes Pop id from assetData before dispatching to AssetProxies Upgrade solidity-parser-entlr 0.2.11 => 0.2.12 Fix import order Fix typos Add CHANGELOGs Speed-up sol-cov Increase delay when sending transactions during devnet startup ...
Diffstat (limited to 'packages/metacoin/README.md')
-rw-r--r--packages/metacoin/README.md97
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();
+```