File tree Expand file tree Collapse file tree 1 file changed +8
-2
lines changed
packages/bitcore-node/src/routes/api Expand file tree Collapse file tree 1 file changed +8
-2
lines changed Original file line number Diff line number Diff line change 11import { Request , Response } from 'express' ;
22import { ChainStateProvider } from '../../providers/chain-state' ;
33const router = require ( 'express' ) . Router ( { mergeParams : true } ) ;
4+ const feeCache = { } ;
45
56router . get ( '/:target' , async ( req : Request , res : Response ) => {
67 let { target, chain, network } = req . params ;
7- if ( network === 'regtest' ) {
8- return res . json ( { feerate : 0.0002 } ) ; // default 20 sat/byte for regtest
8+ if ( target < 0 || target > 100 ) {
9+ return res . status ( 400 ) . send ( 'invalid target specified' ) ;
10+ }
11+ const cachedFee = feeCache [ `${ chain } :${ network } :${ target } ` ] ;
12+ if ( cachedFee && cachedFee . date > Date . now ( ) - 10 * 1000 ) {
13+ return res . json ( cachedFee . fee ) ;
914 }
1015 try {
1116 let fee = await ChainStateProvider . getFee ( { chain, network, target} ) ;
1217 if ( ! fee ) {
1318 return res . status ( 404 ) . send ( 'not available right now' ) ;
1419 }
20+ feeCache [ `${ chain } :${ network } :${ target } ` ] = { fee, date : Date . now ( ) } ;
1521 return res . json ( fee ) ;
1622 } catch ( err ) {
1723 return res . status ( 500 ) . send ( err ) ;
You can’t perform that action at this time.
0 commit comments