diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..3b6a34e --- /dev/null +++ b/.dockerignore @@ -0,0 +1,7 @@ +node_modules +contracts +.env.local +.env +build +coverage +__mocks__ diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..c2491b4 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,20 @@ +FROM node:12 + +COPY package*.json /usr/src/app/ +WORKDIR /usr/src/app +RUN npm install + +COPY . /usr/src/app +ENV DB_PASSWORD='pass' +ENV DB_USER='user' +ENV DB_HOST='localhost' +ENV DB_PORT='27017' +ENV DB_NAME='faucet' +ENV RPC='xxx' +ENV SEED_PHRASE='xxx' +ENV TOKEN_AMOUNT=200 +ENV TOKEN_CONTRACT_ADDRESS=0x +ENV PORT=4000 +ENV COOLING_PERIOD_IN_HOURS=24 + +ENTRYPOINT ["/usr/src/app/docker-entrypoint.sh"] diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh new file mode 100755 index 0000000..f41a2ac --- /dev/null +++ b/docker-entrypoint.sh @@ -0,0 +1,2 @@ +#!/bin/sh +npm start diff --git a/src/server.js b/src/server.js index 41c5a48..1585059 100644 --- a/src/server.js +++ b/src/server.js @@ -11,14 +11,14 @@ var client = null; require("dotenv").config(); var tokenInstance = null; -const infura_apikey = process.env.INFURA_NODE_ID; +const rpc = process.env.RPC; const provider = new HDWalletProvider( process.env.SEED_PHRASE, - "https://rinkeby.infura.io/v3/" + infura_apikey + rpc ); const web3 = new Web3(provider); - +const account = provider.getAddress(0) const app = express(); app.use(bodyParser.urlencoded({ extended: false })); @@ -36,7 +36,7 @@ app.get("/send", async (req, res) => { const url_parts = url.parse(req.url, true); const query = url_parts.query; - const from = process.env.FROM; + const from = account; const to = query.address; const value = web3.utils.toWei(process.env.TOKEN_AMOUNT, "ether"); //check if its valid ETH address @@ -98,7 +98,7 @@ app.get("/send", async (req, res) => { async function getBalance() { let tokenInst = getTokenInstance(); - let bal = await tokenInst.methods.balanceOf(process.env.FROM).call(); + let bal = await tokenInst.methods.balanceOf(account).call(); let balance = web3.utils.fromWei(bal, "ether"); return Math.floor(balance); }