diff --git a/README.md b/README.md
index b983ea0..2bfb9ac 100644
--- a/README.md
+++ b/README.md
@@ -1,22 +1,23 @@
# Relayer for Tornado mixer [![Build Status](https://travis-ci.org/tornadocash/relayer.svg?branch=master)](https://travis-ci.org/tornadocash/relayer) [![Docker Cloud Build Status](https://img.shields.io/docker/cloud/build/tornadocash/relayer.svg)](https://hub.docker.com/r/tornadocash/relayer/builds)
-## Setup
+## Run locally
1. `npm i`
2. `cp .env.example .env`
3. Modify `.env` as needed
-4. If you want to change contracts' addresses go to [config.js](./config.js) file.
-
-## Deploy Kovan
-1. `cp .env.example deploy/kovan/.env`
-2. `cd deploy/kovan`
-2. Modify `.env` as needed
-3. `docker-compose -p kovan up -d`
-
-## Run locally
-1. `npm run start`
-2. `curl -X POST -H 'content-type:application/json' --data '' http://127.0.0.1:8000/relay`
+4. `npm run start`
+5. Go to `http://127.0.0.1:8000`
+6. In order to execute withdraw request, you can run following command
+```bash
+curl -X POST -H 'content-type:application/json' --data '' http://127.0.0.1:8000/relay
+```
Relayer should return a transaction hash.
+*Note.* If you want to change contracts' addresses go to [config.js](./config.js) file.
+
+## Deploy as a Docker container
+1. `cp .env.example .env`
+2. Modify `.env` as needed
+3. `docker run -d --env-file .env -p 80:8000 tornadocash/relayer`
## Input data example
```json
diff --git a/app.js b/app.js
new file mode 100644
index 0000000..93dd2bc
--- /dev/null
+++ b/app.js
@@ -0,0 +1 @@
+module.exports = require('./src/index')
\ No newline at end of file
diff --git a/config.js b/config.js
index e5a96d3..b14e1ed 100644
--- a/config.js
+++ b/config.js
@@ -50,7 +50,7 @@ module.exports = {
}
},
defaultGasPrice: 2,
- gasOracleUrls: ['https://www.etherchain.org/api/gasPriceOracle', 'https://gasprice.poa.network/'],
+ gasOracleUrls: ['https://ethgasstation.info/json/ethgasAPI.json', 'https://gasprice.poa.network/'],
port: process.env.APP_PORT,
relayerServiceFee: Number(process.env.RELAYER_FEE)
}
\ No newline at end of file
diff --git a/deploy/kovan/docker-compose.yml b/deploy/kovan/docker-compose.yml
deleted file mode 100644
index 2594476..0000000
--- a/deploy/kovan/docker-compose.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-version: '2.2'
-
-services:
- relayer:
- build: ../../
- restart: always
- environment:
- NODE_ENV: production
- VIRTUAL_HOST: kovan.tornado.cash
- LETSENCRYPT_HOST: kovan.tornado.cash
- env_file: ./.env
- healthcheck:
- test: curl -sS http://127.0.0.1:8000 || exit 1
-
-networks:
- default:
- external:
- name: frontend_default
\ No newline at end of file
diff --git a/deploy/mainnet/docker-compose.yml b/deploy/mainnet/docker-compose.yml
deleted file mode 100644
index 2f1c21c..0000000
--- a/deploy/mainnet/docker-compose.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-version: '2.2'
-
-services:
- relayer:
- build: ../../
- restart: always
- environment:
- NODE_ENV: production
- VIRTUAL_HOST: mainnet.tornado.cash
- LETSENCRYPT_HOST: mainnet.tornado.cash
- env_file: ./.env
- healthcheck:
- test: curl -sS http://127.0.0.1:8000 || exit 1
-
-networks:
- default:
- external:
- name: frontend_default
\ No newline at end of file
diff --git a/package.json b/package.json
index 3564874..4966f1b 100644
--- a/package.json
+++ b/package.json
@@ -2,9 +2,9 @@
"name": "relay",
"version": "1.0.0",
"description": "Relayer for Tornado mixer. https://tornado.cash",
- "main": "src/index.js",
+ "main": "app.js",
"scripts": {
- "start": "node src/index.js",
+ "start": "node app.js",
"eslint": "npx eslint --ignore-path .gitignore .",
"test": "echo \"Error: no test specified\" && exit 1"
},
diff --git a/src/Fetcher.js b/src/Fetcher.js
index 5e16f0c..b3a2485 100644
--- a/src/Fetcher.js
+++ b/src/Fetcher.js
@@ -38,22 +38,27 @@ class Fetcher {
}
async fetchGasPrice({ oracleIndex = 0 } = {}) {
oracleIndex = (oracleIndex + 1) % gasOracleUrls.length
+ const url = gasOracleUrls[oracleIndex]
+ const delimiter = url === 'https://ethgasstation.info/json/ethgasAPI.json' ? 10 : 1
try {
- const response = await fetch(gasOracleUrls[oracleIndex])
+ const response = await fetch(url)
if (response.status === 200) {
const json = await response.json()
+ if (Number(json.fast) === 0) {
+ throw new Error('Fetch gasPrice failed')
+ }
if (json.slow) {
- this.gasPrices.low = Number(json.slow)
+ this.gasPrices.low = Number(json.slow) / delimiter
}
if (json.safeLow) {
- this.gasPrices.low = Number(json.safeLow)
+ this.gasPrices.low = Number(json.safeLow) / delimiter
}
if (json.standard) {
- this.gasPrices.standard = Number(json.standard)
+ this.gasPrices.standard = Number(json.standard) / delimiter
}
if (json.fast) {
- this.gasPrices.fast = Number(json.fast)
+ this.gasPrices.fast = Number(json.fast) / delimiter
}
} else {
throw Error('Fetch gasPrice failed')
diff --git a/src/index.js b/src/index.js
index f505d50..819c6d2 100644
--- a/src/index.js
+++ b/src/index.js
@@ -25,7 +25,7 @@ app.use(function(req, res, next) {
app.get('/', function (req, res) {
// just for testing purposes
- res.send('This is tornado.cash Relayer service. Check the /status for settings')
+ res.send('This is tornado.cash Relayer service. Check the /status for settings')
})
app.get('/status', function (req, res) {