Browse Source

Merge branch 'feat_use_tinyhttp' into 'develop'

Switch from express to tiny-http

See merge request dojo/samourai-dojo!227
umbrel
kenshin-samourai 3 years ago
parent
commit
a832a8700d
  1. 2
      accounts/api-helper.js
  2. 2
      accounts/headers-rest-api.js
  3. 4
      accounts/multiaddr-rest-api.js
  4. 8
      accounts/support-rest-api.js
  5. 4
      accounts/transactions-rest-api.js
  6. 8
      accounts/unspent-rest-api.js
  7. 4
      accounts/wallet-rest-api.js
  8. 8
      accounts/xpub-rest-api.js
  9. 10
      lib/http-server/http-server.js
  10. 3722
      package-lock.json
  11. 9
      package.json
  12. 5
      tracker/tracker-rest-api.js

2
accounts/api-helper.js

@ -109,7 +109,7 @@ class ApiHelper {
* Express middleware validating if entities params are well formed
* @param {object} req - http request object
* @param {object} res - http response object
* @param {function} next - next express middleware
* @param {function} next - next tiny-http middleware
*/
validateEntitiesParams(req, res, next) {
const params = this.checkEntitiesParams(req.query) ? req.query : req.body

2
accounts/headers-rest-api.js

@ -57,7 +57,7 @@ class HeadersRestApi {
* Validate request arguments
* @param {object} req - http request object
* @param {object} res - http response object
* @param {function} next - next express middleware
* @param {function} next - next tiny-http middleware
*/
validateArgsGetHeader(req, res, next) {
const isValidHash = validator.isHash(req.params.hash, 'sha256')

4
accounts/multiaddr-rest-api.js

@ -79,7 +79,7 @@ class MultiaddrRestApi {
} finally {
if (debugApi) {
const strParams =
const strParams =
`${req.query.active ? req.query.active : ''} \
${req.query.new ? req.query.new : ''} \
${req.query.pubkey ? req.query.pubkey : ''} \
@ -120,7 +120,7 @@ class MultiaddrRestApi {
} finally {
if (debugApi) {
const strParams =
const strParams =
`${req.body.active ? req.body.active : ''} \
${req.body.new ? req.body.new : ''} \
${req.body.pubkey ? req.body.pubkey : ''} \

8
accounts/support-rest-api.js

@ -336,7 +336,7 @@ class SupportRestApi {
* Validate arguments related to GET xpub info requests
* @param {object} req - http request object
* @param {object} res - http response object
* @param {function} next - next express middleware
* @param {function} next - next tiny-http middleware
*/
validateArgsGetXpubInfo(req, res, next) {
const isValidXpub = validator.isAlphanumeric(req.params.xpub)
@ -353,7 +353,7 @@ class SupportRestApi {
* Validate arguments related to GET xpub rescan requests
* @param {object} req - http request object
* @param {object} res - http response object
* @param {function} next - next express middleware
* @param {function} next - next tiny-http middleware
*/
validateArgsGetXpubRescan(req, res, next) {
const isValidXpub = validator.isAlphanumeric(req.params.xpub)
@ -371,7 +371,7 @@ class SupportRestApi {
* Validate arguments related to GET xpub delete requests
* @param {object} req - http request object
* @param {object} res - http response object
* @param {function} next - next express middleware
* @param {function} next - next tiny-http middleware
*/
validateArgsGetXpubDelete(req, res, next) {
const isValidXpub = validator.isAlphanumeric(req.params.xpub)
@ -388,7 +388,7 @@ class SupportRestApi {
* Validate arguments related to addresses requests
* @param {object} req - http request object
* @param {object} res - http response object
* @param {function} next - next express middleware
* @param {function} next - next tiny-http middleware
*/
validateAddress(req, res, next) {
const isValidAddress = validator.isAlphanumeric(req.params.addr)

4
accounts/transactions-rest-api.js

@ -112,7 +112,7 @@ class TransactionsRestApi {
* Validate arguments of /tx requests
* @param {object} req - http request object
* @param {object} res - http response object
* @param {function} next - next express middleware
* @param {function} next - next tiny-http middleware
*/
validateArgsGetTransaction(req, res, next) {
const isValidTxid = validator.isHash(req.params.txid, 'sha256')
@ -137,7 +137,7 @@ class TransactionsRestApi {
* Validate arguments of /txs requests
* @param {object} req - http request object
* @param {object} res - http response object
* @param {function} next - next express middleware
* @param {function} next - next tiny-http middleware
*/
validateArgsGetTransactions(req, res, next) {
const isValidPage =

8
accounts/unspent-rest-api.js

@ -40,7 +40,7 @@ class UnspentRestApi {
)
this.httpServer.app.post(
'/unspent',
'/unspent',
urlencodedParser,
authMgr.checkAuthentication.bind(authMgr),
apiHelper.validateEntitiesParams.bind(apiHelper),
@ -79,7 +79,7 @@ class UnspentRestApi {
} finally {
if (debugApi) {
const strParams =
const strParams =
`${req.query.active ? req.query.active : ''} \
${req.query.new ? req.query.new : ''} \
${req.query.pubkey ? req.query.pubkey : ''} \
@ -120,7 +120,7 @@ class UnspentRestApi {
} finally {
if (debugApi) {
const strParams =
const strParams =
`${req.body.active ? req.body.active : ''} \
${req.body.new ? req.body.new : ''} \
${req.body.pubkey ? req.body.pubkey : ''} \
@ -134,4 +134,4 @@ class UnspentRestApi {
}
module.exports = UnspentRestApi
module.exports = UnspentRestApi

4
accounts/wallet-rest-api.js

@ -78,7 +78,7 @@ class WalletRestApi {
} finally {
if (debugApi) {
const strParams =
const strParams =
`${req.query.active ? req.query.active : ''} \
${req.query.new ? req.query.new : ''} \
${req.query.pubkey ? req.query.pubkey : ''} \
@ -119,7 +119,7 @@ class WalletRestApi {
} finally {
if (debugApi) {
const strParams =
const strParams =
`${req.body.active ? req.body.active : ''} \
${req.body.new ? req.body.new : ''} \
${req.body.pubkey ? req.body.pubkey : ''} \

8
accounts/xpub-rest-api.js

@ -404,7 +404,7 @@ class XPubRestApi {
* Validate arguments of postXpub requests
* @param {object} req - http request object
* @param {object} res - http response object
* @param {function} next - next express middleware
* @param {function} next - next tiny-http middleware
*/
validateArgsPostXpub(req, res, next) {
const isValidXpub = validator.isAlphanumeric(req.body.xpub)
@ -436,7 +436,7 @@ class XPubRestApi {
* Validate arguments of getXpub requests
* @param {object} req - http request object
* @param {object} res - http response object
* @param {function} next - next express middleware
* @param {function} next - next tiny-http middleware
*/
validateArgsGetXpub(req, res, next) {
const isValidXpub = validator.isAlphanumeric(req.params.xpub)
@ -456,7 +456,7 @@ class XPubRestApi {
* Validate arguments of postLockXpub requests
* @param {object} req - http request object
* @param {object} res - http response object
* @param {function} next - next express middleware
* @param {function} next - next tiny-http middleware
*/
validateArgsPostLockXpub(req, res, next) {
const isValidXpub = validator.isAlphanumeric(req.params.xpub)
@ -480,7 +480,7 @@ class XPubRestApi {
* Validate arguments of deleteXpub requests
* @param {object} req - http request object
* @param {object} res - http response object
* @param {function} next - next express middleware
* @param {function} next - next tiny-http middleware
*/
validateArgsDeleteXpub(req, res, next) {
const isValidXpub = validator.isAlphanumeric(req.params.xpub)

10
lib/http-server/http-server.js

@ -4,8 +4,8 @@
*/
'use strict'
const fs = require('fs')
const express = require('express')
const { App } = require('@tinyhttp/app')
const sirv = require('sirv')
const helmet = require('helmet')
const Logger = require('../logger')
const errors = require('../errors');
@ -29,12 +29,12 @@ class HttpServer {
// Listening server instance
this.server = null
// Initialize the express app
this.app = express()
// Initialize the tiny-http app
this.app = new App();
this.app.set('trust proxy', 'loopback')
// Middlewares for json responses and requests logging
this.app.use('/static', express.static('../static'));
this.app.use('/static', sirv('../static'));
this.app.use(HttpServer.setJSONResponse)
this.app.use(HttpServer.requestLogger)
this.app.use(HttpServer.setCrossOrigin)

3722
package-lock.json

File diff suppressed because it is too large

9
package.json

@ -14,22 +14,23 @@
"license": "AGPL-3.0-only",
"homepage": "https://code.samourai.io/dojo/samourai-dojo",
"dependencies": {
"@tinyhttp/app": "1.3.3",
"async-sema": "2.1.2",
"axios": "0.21.1",
"bip39": "2.4.0",
"bitcoind-rpc-client": "0.3.1",
"bitcoinjs-lib": "5.1.4",
"bitcoinjs-message": "1.0.1",
"body-parser": "1.18.3",
"express": "4.16.3",
"express-jwt": "5.3.1",
"body-parser": "1.19.0",
"helmet": "3.23.3",
"lodash": "4.17.19",
"jsonwebtoken": "8.5.1",
"lodash": "4.17.21",
"lru-cache": "4.0.2",
"minimist": "1.2.3",
"mysql": "2.16.0",
"passport": "0.4.0",
"passport-localapikey-update": "0.6.0",
"sirv": "1.0.11",
"socks-proxy-agent": "4.0.1",
"validator": "10.8.0",
"websocket": "1.0.28",

5
tracker/tracker-rest-api.js

@ -4,10 +4,7 @@
*/
'use strict'
const qs = require('querystring')
const validator = require('validator')
const bodyParser = require('body-parser')
const Logger = require('../lib/logger')
const errors = require('../lib/errors')
const authMgr = require('../lib/auth/authorizations-manager')
const HttpServer = require('../lib/http-server/http-server')
@ -29,8 +26,6 @@ class TrackerRestApi {
this.httpServer = httpServer
this.tracker = tracker
const urlencodedParser = bodyParser.urlencoded({ extended: true })
// Establish routes. Proxy server strips /pushtx
this.httpServer.app.get(
`/${keys.prefixes.support}/rescan`,

Loading…
Cancel
Save