diff --git a/bot/index.js b/bot/index.js index faac734..203c0f1 100644 --- a/bot/index.js +++ b/bot/index.js @@ -1,16 +1,25 @@ +const winston = require('winston'); const SignerProvider = require('ethjs-provider-signer'); const sign = require('ethjs-signer').sign; const Eth = require('ethjs-query'); const prices = require('./prices'); const config = require('../config'); - const provider = new SignerProvider(config.signerPath, { signTransaction: (rawTx, cb) => cb(null, sign(rawTx, process.env.KEY)), accounts: (cb) => cb(null, [address]), }); const eth = new Eth(provider); +const logger = winston.createLogger({ + level: 'info', + format: winston.format.json(), + transports: [ + new winston.transports.File({ filename: 'error.log', level: 'error' }), + new winston.transports.File({ filename: 'info.log', level: 'info'}), + new winston.transports.File({ filename: 'combined.log' }) + ] +}); const bountyLabels = { 'bounty-xs': 1, @@ -69,8 +78,8 @@ const getGasPrice = function(req) { // Check how to handle errors when promises does not arrive } -const log = function() { - console.log(arguments); +const log = function(msg) { + logger.info(msg); } module.exports = { diff --git a/index.js b/index.js index 13f9c53..01a3916 100644 --- a/index.js +++ b/index.js @@ -1,67 +1,67 @@ /* - * Bot that receives a POST request (from a GitHub issue comment webhook) - * and in case it's a comment that has "@autobounty " - * awards that bounty to the address posted earlier in the thread (by the - * commiteth bot). - * TODO tests - * REVIEW parsing, non-persisting storage of addresses, hardcoded string length. - * Depends on commiteth version as of 2017-06-10. - */ +* Bot that receives a POST request (from a GitHub issue comment webhook) +* and in case it's a comment that has "@autobounty " +* awards that bounty to the address posted earlier in the thread (by the +* commiteth bot). +* TODO tests +* REVIEW parsing, non-persisting storage of addresses, hardcoded string length. +* Depends on commiteth version as of 2017-06-10. +*/ const config = require('./config'); const bot = require('./bot'); var express = require('express'), - cors = require('cors'), - helmet = require('helmet'), - app = express(), - bodyParser = require('body-parser'), - jsonParser = bodyParser.json(); + cors = require('cors'), + helmet = require('helmet'), + app = express(), + bodyParser = require('body-parser'), + jsonParser = bodyParser.json(); app.use(cors()); app.use(helmet()); // Receive a POST request at the address specified by an env. var. app.post(`${config.urlEndpoint}`, jsonParser, function(req, res, next) { - // TODO decide how long the delay to start everything should be - if (!req.body || !req.body.action) - return res.sendStatus(400); + // TODO decide how long the delay to start everything should be + if (!req.body || !req.body.action) + return res.sendStatus(400); - if (!bot.needsFunding(req)) - return res.sendStatus(204); + if (!bot.needsFunding(req)) + return res.sendStatus(204); - //const eth = bot.eth; - //const from = config.sourceAddress; - //const to = bot.getAddress(req); - const amount = bot.getAmount(req); - const gasPrice = bot.getGasPrice(); - console.log('amount: ', amount); - console.log('gasPrice: ', gasPrice); - /* - eth.getTransactionCount(address, (err, nonce) => { - eth.sendTransaction({ - from: from, - to: to, - gas: gas, - gasPrice: gasPrice, - value: amount, - nonce, - }, (err, txID) => { - if (err) { - config.log('Request failed', err) - return res.status(500).json(err) - } - else { - config.log('Successful request:', txID) - res.json({ txID }) - } - }); - }); - */ - return res.sendStatus(200); + //const eth = bot.eth; + //const from = config.sourceAddress; + //const to = bot.getAddress(req); + const amount = bot.getAmount(req); + const gasPrice = bot.getGasPrice(); + bot.log('amount: ' + amount); + bot.log('gasPrice: ' + gasPrice); + /* + eth.getTransactionCount(address, (err, nonce) => { + eth.sendTransaction({ + from: from, + to: to, + gas: gas, + gasPrice: gasPrice, + value: amount, + nonce, + }, (err, txID) => { + if (err) { + config.log('Request failed', err) + return res.status(500).json(err) + } + else { + config.log('Successful request:', txID) + res.json({ txID }) + } + }); + }); + */ + return res.sendStatus(200); }); const port = process.env.PORT || 8181 app.listen(port, function(){ - console.log('Autobounty listening on port', port); + console.log('Autobounty listening on port', port); }); diff --git a/package.json b/package.json index 956ddaf..377940e 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ "express": "^4.15.2", "helmet": "^3.9.0", "lodash": "^4.17.4", - "web3": "^0.18.2" + "web3": "^0.18.2", + "winston": "^2.4.0" } }