mirror of
https://github.com/fullstack-cash/bch-api.git
synced 2026-09-22 17:22:04 -07:00
feat(v5): Adding v5 route
This commit is contained in:
+49
@@ -39,6 +39,21 @@ const EncryptionV4 = require('./routes/v4/encryption')
|
||||
const PriceV4 = require('./routes/v4/price')
|
||||
const Ninsight = require('./routes/v4/ninsight')
|
||||
|
||||
// v5
|
||||
const healthCheckV5 = require('./routes/v5/health-check')
|
||||
const BlockchainV5 = require('./routes/v5/full-node/blockchain')
|
||||
const ControlV5 = require('./routes/v5/full-node/control')
|
||||
const MiningV5 = require('./routes/v5/full-node/mining')
|
||||
const networkV5 = require('./routes/v5/full-node/network')
|
||||
const RawtransactionsV5 = require('./routes/v5/full-node/rawtransactions')
|
||||
const UtilV5 = require('./routes/v5/util')
|
||||
const SlpV5 = require('./routes/v5/slp')
|
||||
const xpubV5 = require('./routes/v5/xpub')
|
||||
const ElectrumXV5 = require('./routes/v5/electrumx')
|
||||
const EncryptionV5 = require('./routes/v5/encryption')
|
||||
const PriceV5 = require('./routes/v5/price')
|
||||
// const Ninsight = require('./routes/v5/ninsight')
|
||||
|
||||
require('dotenv').config()
|
||||
|
||||
// Instantiate v4 route libraries.
|
||||
@@ -53,6 +68,18 @@ const encryptionv4 = new EncryptionV4()
|
||||
const pricev4 = new PriceV4()
|
||||
const utilV4 = new UtilV4({ electrumx: electrumxv4 })
|
||||
|
||||
// Instantiate v5 route libraries.
|
||||
const blockchainV5 = new BlockchainV5()
|
||||
const controlV5 = new ControlV5()
|
||||
const miningV5 = new MiningV5()
|
||||
const rawtransactionsV5 = new RawtransactionsV5()
|
||||
const slpV5 = new SlpV5()
|
||||
const electrumxv5 = new ElectrumXV5()
|
||||
electrumxv5.connect()
|
||||
const encryptionv5 = new EncryptionV5()
|
||||
const pricev5 = new PriceV5()
|
||||
const utilV5 = new UtilV5({ electrumx: electrumxv5 })
|
||||
|
||||
const app = express()
|
||||
|
||||
app.locals.env = process.env
|
||||
@@ -94,12 +121,14 @@ app.use(express.static(path.join(__dirname, 'public')))
|
||||
app.use('/', logReqInfo)
|
||||
|
||||
const v4prefix = 'v4'
|
||||
const v5prefix = 'v5'
|
||||
|
||||
// START Rate Limits
|
||||
const auth = new AuthMW()
|
||||
|
||||
// Ensure req.locals and res.locals objects exist.
|
||||
app.use(`/${v4prefix}/`, rateLimits.populateLocals)
|
||||
app.use(`/${v5prefix}/`, rateLimits.populateLocals)
|
||||
|
||||
// Allow users to turn off rate limits with an environment variable.
|
||||
const DO_NOT_USE_RATE_LIMITS = process.env.DO_NOT_USE_RATE_LIMITS || false
|
||||
@@ -110,13 +139,16 @@ if (!DO_NOT_USE_RATE_LIMITS) {
|
||||
console.log('Rate limits are being used')
|
||||
// Inspect the header for a JWT token.
|
||||
app.use(`/${v4prefix}/`, jwtAuth.getTokenFromHeaders)
|
||||
app.use(`/${v5prefix}/`, jwtAuth.getTokenFromHeaders)
|
||||
|
||||
// Instantiate the authorization middleware, used to implement pro-tier rate limiting.
|
||||
// Handles Anonymous and Basic Authorization schemes used by passport.js
|
||||
app.use(`/${v4prefix}/`, auth.mw())
|
||||
app.use(`/${v5prefix}/`, auth.mw())
|
||||
|
||||
// Experimental rate limits
|
||||
app.use(`/${v4prefix}/`, rateLimits.applyRateLimits)
|
||||
app.use(`/${v5prefix}/`, rateLimits.applyRateLimits)
|
||||
|
||||
// Rate limit on all v4 routes
|
||||
// Establish and enforce rate limits.
|
||||
@@ -143,6 +175,23 @@ app.use(`/${v4prefix}/` + 'util', utilV4.router)
|
||||
const ninsight = new Ninsight()
|
||||
app.use(`/${v4prefix}/` + 'ninsight', ninsight.router)
|
||||
|
||||
// Connect v5 routes
|
||||
app.use(`/${v5prefix}/` + 'health-check', healthCheckV5)
|
||||
app.use(`/${v5prefix}/` + 'blockchain', blockchainV5.router)
|
||||
app.use(`/${v5prefix}/` + 'control', controlV5.router)
|
||||
app.use(`/${v5prefix}/` + 'mining', miningV5.router)
|
||||
app.use(`/${v5prefix}/` + 'network', networkV5)
|
||||
app.use(`/${v5prefix}/` + 'rawtransactions', rawtransactionsV5.router)
|
||||
app.use(`/${v5prefix}/` + 'slp', slpV5.router)
|
||||
app.use(`/${v5prefix}/` + 'xpub', xpubV5.router)
|
||||
app.use(`/${v5prefix}/` + 'electrumx', electrumxv5.router)
|
||||
app.use(`/${v5prefix}/` + 'encryption', encryptionv5.router)
|
||||
app.use(`/${v5prefix}/` + 'price', pricev5.router)
|
||||
app.use(`/${v5prefix}/` + 'util', utilV5.router)
|
||||
|
||||
// const ninsight = new Ninsight()
|
||||
app.use(`/${v5prefix}/` + 'ninsight', ninsight.router)
|
||||
|
||||
// catch 404 and forward to error handler
|
||||
app.use((req, res, next) => {
|
||||
const err = {
|
||||
|
||||
Reference in New Issue
Block a user