Stubbed insight API

Server changed to API
cleaned up some console.log

Insight UI does not use the entire API. Those are high priority
This commit is contained in:
tenthirtyone 2017-08-02 18:23:27 -04:00
parent ee160d9e7b
commit 71a24237f2
4 changed files with 151 additions and 28 deletions

View File

@ -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');
});

143
lib/api/index.js Normal file
View File

@ -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;

View File

@ -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;

View File

@ -8,7 +8,7 @@ const BlockSchema = new Schema({
version: Number,
merkleRoot: String,
tx: Array,
time: Date,
time: Number,
nonce: Number,
bits: Number,
difficulty: Number,