embark-nim-compiler/README.md

60 lines
2.1 KiB
Markdown

embark-nim-compiler
======
Plugin for [Embark](https://github.com/embark-framework/embark) to compile [Nim contracts](https://github.com/status-im/nimplay)
## Installation
### Plugin
In your embark dapp directory:
```npm install embark-nim-compiler --save```
or
```yarn add embark-nim-compiler```
then add embark-nim-compiler to the plugins section in `embark.json`:
```Json
{
"plugins": {
"embark-nim-compiler": {
"setupBlockchainOptions": true,
"libHeraPath": "path/to/libHera.so"
}
}
}
```
- `setupBlockchainOptions`: boolean that when set to `true`, will change the blockchain config for you. If you set this to `false`, you need to set the blockchain config yourself so that it supports eWasm
- `libHeraPath`: string path to the file `libHera.so` that is used to have Geth use Hera as a VM. Not needed if `setupBlockchainOptions` is `false`
Since you need to have Geth+Hera installed, make sure that the built Geth is in your Path or change `ethereumClientBin` in you blockchain config to point to the Geth executable (absolute path).
### Configs
If you plan to use the eWasm testnet, you will need to have an account with tesnet Ether.
You can find the testnet faucet here: http://ewasm.ethereum.org/faucet/
You will need to connect your Metamask extension to the testnet. To do so, either connect it to you local Geth instance or to a hosted node.
Once you have ETH in your account, add it to the `accounts` section in the blockchain config. You can find information on how to do it here: https://embark.status.im/docs/blockchain_accounts_configuration.html
### Temporary endpoint
You can use our temporary endpoint available at `http://159.65.52.177:8545/`.
This endpoint connects to an eWasm testnet node, but we'll probably shut down at some point, so don't rely on it for production.
## Requirements
- [Embark](https://www.npmjs.com/package/embark) 5.0.0 or higher
- A valid eWasm ready node. See https://github.com/ewasm/testnet for more details
- Docker
### Troubleshooting
If you get an error related to docker or the image `jacqueswww/nimclang`, you might need to pull it first manually using:
```docker pull jacqueswww/nimclang```