@@ -145,7 +145,7 @@ const CHAIN_PARAM_REGEX = /^[a-z0-9-]+$/i;
145145
146146const CHAINSTACK_API_BASE = "https://api.chainstack.com/v1" ;
147147const CHAINSTACK_NODES_ENDPOINT = `${ CHAINSTACK_API_BASE } /nodes` ;
148- const CHAINSTACK_NODE_CACHE_TTL_MS = 5 * 60 * 1000 ; // 5 minutes
148+ const CHAINSTACK_NODE_CACHE_TTL_MS = 300 * 60 * 1000 ; // 5 hours
149149
150150interface ChainstackNodeDetails {
151151 https_endpoint ?: string ;
@@ -501,34 +501,35 @@ const fetchBitcoinBalance = async (node: ChainstackNode, address: string): Promi
501501
502502const CHAIN_HANDLERS : Record < string , ChainHandler > = {
503503 btc : {
504- selectNode : ( nodes ) => nodes . find ( ( node ) => endpointIncludes ( node , "bitcoin" ) ) ,
504+ selectNode : ( nodes ) => nodes . find ( ( node ) => endpointIncludes ( node , "bitcoin" ) ) ?? null ,
505505 fetchBalance : ( node , address ) => fetchBitcoinBalance ( node , address ) ,
506506 } ,
507507 eth : {
508508 validateAddress : ( address ) => / ^ 0 x [ a - f A - F 0 - 9 ] { 40 } $ / . test ( address ) ,
509- selectNode : ( nodes ) => nodes . find ( ( node ) => endpointIncludes ( node , "ethereum" ) ) ,
509+ selectNode : ( nodes ) => nodes . find ( ( node ) => endpointIncludes ( node , "ethereum" ) ) ?? null ,
510510 fetchBalance : ( node , address ) => fetchEvmBalance ( "eth" , node , address ) ,
511511 } ,
512512 bnb : {
513513 validateAddress : ( address ) => / ^ 0 x [ a - f A - F 0 - 9 ] { 40 } $ / . test ( address ) ,
514- selectNode : ( nodes ) => nodes . find ( ( node ) => endpointIncludes ( node , "bsc" ) ) ,
514+ selectNode : ( nodes ) => nodes . find ( ( node ) => endpointIncludes ( node , "bsc" ) ) ?? null ,
515515 fetchBalance : ( node , address ) => fetchEvmBalance ( "bnb" , node , address ) ,
516516 } ,
517517 sol : {
518- selectNode : ( nodes ) => nodes . find ( ( node ) => endpointIncludes ( node , "solana" ) ) ,
518+ selectNode : ( nodes ) => nodes . find ( ( node ) => endpointIncludes ( node , "solana" ) ) ?? null ,
519519 fetchBalance : ( node , address ) => fetchSolanaBalance ( node , address ) ,
520520 } ,
521521 tron : {
522- selectNode : ( nodes ) => nodes . find ( ( node ) => endpointIncludes ( node , "tron" ) ) ,
522+ selectNode : ( nodes ) => nodes . find ( ( node ) => endpointIncludes ( node , "tron" ) ) ?? null ,
523523 fetchBalance : ( node , address ) => fetchTronBalance ( node , address ) ,
524524 } ,
525525 ton : {
526- selectNode : ( nodes ) => nodes . find ( ( node ) => node . details ?. toncenter_api_v2 || node . details ?. toncenter_api_v3 ) ,
526+ selectNode : ( nodes ) =>
527+ nodes . find ( ( node ) => node . details ?. toncenter_api_v2 || node . details ?. toncenter_api_v3 ) ?? null ,
527528 fetchBalance : ( node , address ) => fetchTonBalance ( node , address ) ,
528529 } ,
529530 apt : {
530531 validateAddress : ( address ) => / ^ 0 x [ a - f A - F 0 - 9 ] + $ / . test ( address ) ,
531- selectNode : ( nodes ) => nodes . find ( ( node ) => endpointIncludes ( node , "aptos" ) ) ,
532+ selectNode : ( nodes ) => nodes . find ( ( node ) => endpointIncludes ( node , "aptos" ) ) ?? null ,
532533 fetchBalance : ( node , address ) => fetchAptosBalance ( node , address ) ,
533534 } ,
534535} ;
0 commit comments