Added ganache setup guide
This commit is contained in:
committed by
fabioberger
parent
b58d4005d3
commit
d5a22829ac
71
packages/website/mdx/guides/ganache-setup.mdx
Normal file
71
packages/website/mdx/guides/ganache-setup.mdx
Normal file
@@ -0,0 +1,71 @@
|
||||
In order to run 0x.js methods that interact with the Ethereum blockchain (i.e filling an order, checking a balance or setting an allowance) you need to point your Web3 Provider to an Ethereum node. Because of the ~12 second block times, during development it is best to use [Ganache-cli](https://github.com/trufflesuite/ganache-cli) a fast Ethereum RPC client made for testing and development.
|
||||
|
||||
# Install Ganache-cli locally
|
||||
|
||||
```
|
||||
npm install -g ganache-cli@6.1.6
|
||||
```
|
||||
|
||||
In order to run Ganache-cli with all the latest V2 0x protocol smart contracts available, you must first download [this Ganache-cli snapshot](http://ganache-snapshots.0x.org.s3.amazonaws.com/0x_ganache_snapshot-2.4.0.zip) and save it. Next unzip it's contents with:
|
||||
|
||||
```bash
|
||||
unzip ./0x_ganache_snapshot-2.4.0.zip -d ./0x_ganache_snapshot
|
||||
```
|
||||
|
||||
You can now start Ganache-cli as follows:
|
||||
|
||||
```bash
|
||||
ganache-cli \
|
||||
--networkId 50 \
|
||||
-p 8545 \
|
||||
--db ./0x_ganache_snapshot \
|
||||
-m "concert load couple harbor equip island argue ramp clarify fence smart topic"
|
||||
```
|
||||
|
||||
**Note:** The `--db` flag expects the filepath to where the DB snapshot folder is located on your machine.
|
||||
|
||||
Since we started Ganache-cli on port 8545, we can pass ZeroEx the following provider during instantiation:
|
||||
|
||||
```
|
||||
const provider = new Web3.providers.HttpProvider('http://localhost:8545');
|
||||
```
|
||||
|
||||
0x.js will now communicate with Ganache-cli over HTTP.
|
||||
|
||||
To test that your setup is working, use this cURL request to fetch the byte-code for the Exchange contract:
|
||||
|
||||
```
|
||||
curl -X POST \
|
||||
http://localhost:8545/ \
|
||||
-d '{"jsonrpc":"2.0","method":"eth_getCode","params":["0x0b1ba0af832d7c05fd64161e0db78e85978e8082", "latest"],"id":1}'
|
||||
```
|
||||
|
||||
If the result key does not return `0x0`, then the contract code was successfully returned.
|
||||
|
||||
---
|
||||
|
||||
# Contract addresses
|
||||
|
||||
- Exchange.sol: `0x48bacb9266a570d521063ef5dd96e61686dbe788`
|
||||
- ERC20Proxy.sol: `0x1dc4c1cefef38a777b15aa20260a54e584b16c48`
|
||||
- ERC721Proxy.sol: `0x1d7022f5b17d2f8b695918fb48fa1089c9f85401`
|
||||
- MultiAssetProxy.sol: `0x6a4a62e5a7ed13c361b176a5f62c2ee620ac0df8`
|
||||
- ZRXToken.sol: `0x871dd7c2b4b25e1aa18728e9d5f2af4c4e431f5c`
|
||||
- AssetProxyOwner.sol: `0x04b5dadd2c0d6a261bfafbc964e0cac48585def3`
|
||||
- WETH9.sol: `0x0b1ba0af832d7c05fd64161e0db78e85978e8082`
|
||||
- Forwarder.sol: `0x6000eca38b8b5bba64986182fe2a69c57f6b5414`
|
||||
- OrderValidator.sol: `0x32eecaf51dfea9618e9bc94e9fbfddb1bbdcba15`
|
||||
- DutchAuction.sol: `0x7e3f4e1deb8d3a05d9d2da87d9521268d0ec3239`
|
||||
- Coordinator.sol: `0x4d3d5c850dd5bd9d6f4adda3dd039a3c8054ca29`
|
||||
- CoordinatorRegistry.sol: `0xaa86dda78e9434aca114b6676fc742a18d15a1cc`
|
||||
|
||||
# Dummy tokens for testing
|
||||
|
||||
- DummyERC20Token.sol: `0x34d402f14d58e001d8efbe6585051bf9706aa064`
|
||||
- DummyERC20Token.sol: `0x25b8fe1de9daf8ba351890744ff28cf7dfa8f5e3`
|
||||
- DummyERC20Token.sol: `0xcdb594a32b1cc3479d8746279712c39d18a07fc0`
|
||||
- DummyERC20Token.sol: `0x1e2f9e10d02a6b8f8f69fcbf515e75039d2ea30d`
|
||||
- DummyERC20Token.sol: `0xbe0037eaf2d64fe5529bca93c18c9702d3930376`
|
||||
- DummyERC721Token.sol: `0x07f96aa816c1f244cbc6ef114bb2b023ba54a2eb`
|
||||
|
||||
The first EOA generated by the supplied mnemonic (`0x5409ed021d9299bf6814279a6a1411a7e866a631`) has a starting balance of 1,000,000,000 ZRX and all 9 unlocked accounts have a balance of ~100 ETH. The dummy tokens can be minted by any address by calling the respective contract methods ([ERC20](https://github.com/0xProject/0x-monorepo/blob/69c7c03fb34b3f21f65c40b73baa21184a296fb2/contracts/erc20/contracts/test/DummyERC20Token.sol#L67) & [ERC721](https://github.com/0xProject/0x-monorepo/blob/69c7c03fb34b3f21f65c40b73baa21184a296fb2/contracts/erc721/contracts/test/DummyERC721Token.sol#L47) method).
|
||||
@@ -63,5 +63,16 @@
|
||||
"type": "Command-line tools",
|
||||
"path": "tools/ethereum-types/v2.1.4/reference.mdx",
|
||||
"versions": ["v2.1.4"]
|
||||
},
|
||||
"ganache-setup": {
|
||||
"title": "How to Set Up Ganache",
|
||||
"description": "",
|
||||
"topics": ["Ganache"],
|
||||
"difficulty": "Intermediate",
|
||||
"isCommunity": false,
|
||||
"isFeatured": false,
|
||||
"tags": ["Protocol developer"],
|
||||
"type": "Command-line tools",
|
||||
"path": "guides/ganache-setup.mdx"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user