From 71a24237f250f2199397e9c8af7f2250cbcf1804 Mon Sep 17 00:00:00 2001 From: tenthirtyone Date: Wed, 2 Aug 2017 18:23:27 -0400 Subject: [PATCH] Stubbed insight API Server changed to API cleaned up some console.log Insight UI does not use the entire API. Those are high priority --- index.js | 11 ++-- lib/api/index.js | 143 ++++++++++++++++++++++++++++++++++++++++++++ lib/server/index.js | 23 ------- models/block.js | 2 +- 4 files changed, 151 insertions(+), 28 deletions(-) create mode 100644 lib/api/index.js delete mode 100644 lib/server/index.js diff --git a/index.js b/index.js index c43a612..6c2d8d3 100644 --- a/index.js +++ b/index.js @@ -2,7 +2,7 @@ const FullNode = require('bcoin/lib/node/fullnode'); const config = require(`${__dirname}/config/config.js`); const logger = require('./lib/logger'); const Block = require('./models/block'); -const Server = require('./lib/server'); +const Api = require('./lib/api'); const db = require('./lib/db'); const util = require('./lib/util'); const node = new FullNode(config.bcoin); @@ -13,6 +13,7 @@ logger.log('debug', (async () => { logger.log('debug', 'Starting Full Node'); + await node.open(); await node.connect(); @@ -22,7 +23,8 @@ logger.log('debug', }); node.on('tx', (tx) => { - console.log('%s added to mempool.', tx.txid()); + logger.log('debug', + '%s added to mempool.', tx.txid()); }); node.startSync(); @@ -61,6 +63,7 @@ function processBlock(block) { }); } -Server.listen(3000, () => { - console.log('listening on port 3000'); +Api.listen(3000, () => { + logger.log('debug', + 'listening on port 3000'); }); diff --git a/lib/api/index.js b/lib/api/index.js new file mode 100644 index 0000000..7a58ae9 --- /dev/null +++ b/lib/api/index.js @@ -0,0 +1,143 @@ +const express = require('express'); +const app = express(); +const mongoose = require('mongoose'); +const config = require('../../config/config.js'); +const Block = require('../../models/block.js'); +const BLOCK_LIMIT = 200; + +mongoose.connect(config.mongodb.uri, config.mongodb.options); + +// Address Routes +app.get('/block/:blockhash', (req, res) => { + res.send(req.params.blockhash); +}); + +app.get('/blocks', (req, res) => { + res.send({ + blocks: [], + length: 0, + pagination: { + }, + }); +}); + +app.get('/rawblock/:blockHash', (req, res) => { + res.send(req.params.blockHash); +}); + +app.get('/block-index/:height', (req, res) => { + res.send(req.params.height); +}); + + +// Tx Routes +app.get('/tx/:txid', (req, res) => { + res.send(req.params.txid); +}); + +app.get('/txs', (req, res) => { + res.send('list of txs'); +}); + +app.post('/tx/send', (req, res) => { + res.send('tx send stub'); +}); + + +// Raw Routes +app.get('/rawtx/:txid', (req, res) => { + res.send(req.params.txid); +}); + + +// Address Routes +app.get('/addr/:addr', (req, res) => { + res.send(req.params.addr); +}); + +app.get('/addr/:addr/utxo', (req, res) => { + res.send(req.params.addr); +}); + +app.get('/addrs/:addrs/utxo', (req, res) => { + res.send(req.params.addrs); +}); + +app.post('/addrs/utxo', (req, res) => { + res.send('post stub'); +}); + +app.get('/addrs/:addrs/txs', (req, res) => { + res.send(req.params.addrs); +}); + +app.post('/addrs/txs', (req, res) => { + res.send('post stub'); +}); + + +// Address property routes +app.get('/addr/:addr/balance', (req, res) => { + res.send(req.params.addr); +}); + +app.get('/addr/:addr/totalReceived', (req, res) => { + res.send(req.params.addr); +}); + +app.get('/addr/:addr/totalSent', (req, res) => { + res.send(req.params.addr); +}); + +app.get('/addr/:addr/unconfirmedBalance', (req, res) => { + res.send(req.params.addr); +}); + + +// Status +app.get('/status', (req, res) => { + res.send('status'); +}); + +app.get('/sync', (req, res) => { + res.send('sync'); +}); + +app.get('/peer', (req, res) => { + res.send('peer'); +}); + +app.get('/version', (req, res) => { + res.send('version'); +}); + +// Messages +app.get('/messages/verify', (req, res) => { + res.send('messages verify'); +}); + +app.post('/messages/verify', (req, res) => { + res.send('post messages verify'); +}); + +app.get('/utils/estimatefee', (req, res) => { + res.send('estimate fees'); +}); + + +// Currency +app.get('/currency', (req, res) => { + res.send('currency'); +}); + + +// 404 Catchall +app.use((req, res) => { + res.status(404).send({ + status: 404, + url: req.originalUrl, + error: 'Not found', + }); +}); + +module.exports = app; diff --git a/lib/server/index.js b/lib/server/index.js deleted file mode 100644 index 9f4bc51..0000000 --- a/lib/server/index.js +++ /dev/null @@ -1,23 +0,0 @@ -const express = require('express'); -const app = express(); -const mongoose = require('mongoose'); -const config = require('../../config/config.js'); -const Block = require('../../models/block.js'); - -mongoose.connect(config.mongodb.uri, config.mongodb.options); - -app.get('/block/:blockhash', (req, res) => { - res.send(req.params.blockhash); -}); - -app.get('/blocks', (req, res) => { - res.send({ - blocks: [], - length: 0, - pagination: { - next: - } - }) -}); - -module.exports = app; diff --git a/models/block.js b/models/block.js index 77da6b1..862611b 100644 --- a/models/block.js +++ b/models/block.js @@ -8,7 +8,7 @@ const BlockSchema = new Schema({ version: Number, merkleRoot: String, tx: Array, - time: Date, + time: Number, nonce: Number, bits: Number, difficulty: Number,