chainpro
Version:
58 lines (39 loc) • 1.59 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _express = require('express');
var _express2 = _interopRequireDefault(_express);
var _chain = require('../chain');
var _chain2 = _interopRequireDefault(_chain);
var _block = require('../block');
var _sockets = require('../p2p/sockets');
var _sockets2 = _interopRequireDefault(_sockets);
var _index = require('../p2p/index');
var _handlers = require('../p2p/handlers');
var _actions = require('../p2p/actions');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const router = _express2.default.Router();
router.get('/health-check', (req, res) => res.send('OK'));
router.get('/chain', (req, res) => {
res.setHeader('Content-Type', 'application/json');
res.send(JSON.stringify(_chain2.default.get()));
});
router.post('/mine', (req, res) => {
const block = (0, _block.create)(req.body.data);
_chain2.default.update(block);
(0, _handlers.broadcast)((0, _actions.responseLatestMsg)());
console.log('New block in chain has been added: ', block);
res.send(block);
});
router.get('/peers', (req, res) => {
res.send(_sockets2.default.get().map(s => `${s._socket.remoteAddress}:${s._socket.remotePort}`)); // eslint-disable-line no-underscore-dangle
});
router.post('/connect', (req, res) => {
const { peer } = req.body;
(0, _index.connectToPeers)([peer]);
console.log('New peer in p2p websocket has been added: ', peer);
res.send(peer);
});
exports.default = router;
//# sourceMappingURL=routes.js.map