@@ -485,7 +485,8 @@ export class Discv5 extends (EventEmitter as { new (): Discv5EventEmitter }) {
485485 const enr = this . findEnr ( peer ) ;
486486 if ( ! enr || ! getSocketAddressMultiaddrOnENR ( enr , this . ipMode ) ) {
487487 log ( "Lookup %s requested an unknown ENR or ENR w/o UDP" , lookupId ) ;
488- this . activeLookups . get ( lookupId ) ?. onFailure ( peer ) ;
488+ const lookup = this . activeLookups . get ( lookupId ) ;
489+ if ( lookup ) lookup . onFailure ( peer ) ;
489490 return ;
490491 }
491492
@@ -512,7 +513,9 @@ export class Discv5 extends (EventEmitter as { new (): Discv5EventEmitter }) {
512513 log ( "Sending %s to node: %o" , MessageType [ activeRequest . request . type ] , nodeAddr ) ;
513514 try {
514515 this . sessionService . sendRequest ( activeRequest . contact , activeRequest . request ) ;
515- this . metrics ?. sentMessageCount . inc ( { type : MessageType [ activeRequest . request . type ] } ) ;
516+ if ( this . metrics ) {
517+ this . metrics . sentMessageCount . inc ( { type : MessageType [ activeRequest . request . type ] } ) ;
518+ }
516519 } catch ( e ) {
517520 this . activeRequests . delete ( bytesToBigint ( activeRequest . request . id ) ) ;
518521 log ( "Error sending RPC to node: %o, :Error: %s" , nodeAddr , ( e as Error ) . message ) ;
@@ -526,7 +529,9 @@ export class Discv5 extends (EventEmitter as { new (): Discv5EventEmitter }) {
526529 log ( "Sending %s to node: %o" , MessageType [ response . type ] , nodeAddr ) ;
527530 try {
528531 this . sessionService . sendResponse ( nodeAddr , response ) ;
529- this . metrics ?. sentMessageCount . inc ( { type : MessageType [ response . type ] } ) ;
532+ if ( this . metrics ) {
533+ this . metrics . sentMessageCount . inc ( { type : MessageType [ response . type ] } ) ;
534+ }
530535 } catch ( e ) {
531536 log ( "Error sending RPC to node: %o, :Error: %s" , nodeAddr , ( e as Error ) . message ) ;
532537 }
@@ -735,7 +740,9 @@ export class Discv5 extends (EventEmitter as { new (): Discv5EventEmitter }) {
735740 */
736741 private handleRpcRequest = ( nodeAddr : INodeAddress , request : RequestMessage ) : void => {
737742 const requestType = MessageType [ request . type ] ;
738- this . metrics ?. rcvdMessageCount . inc ( { type : requestType } ) ;
743+ if ( this . metrics ) {
744+ this . metrics . rcvdMessageCount . inc ( { type : requestType } ) ;
745+ }
739746
740747 try {
741748 switch ( request . type ) {
@@ -777,7 +784,9 @@ export class Discv5 extends (EventEmitter as { new (): Discv5EventEmitter }) {
777784 log ( "Sending PONG response to node: %o" , nodeAddr ) ;
778785 try {
779786 this . sessionService . sendResponse ( nodeAddr , pongMessage ) ;
780- this . metrics ?. sentMessageCount . inc ( { type : MessageType [ MessageType . PONG ] } ) ;
787+ if ( this . metrics ) {
788+ this . metrics . sentMessageCount . inc ( { type : MessageType [ MessageType . PONG ] } ) ;
789+ }
781790 } catch ( e ) {
782791 log ( "Failed to send Pong. Error %s" , ( e as Error ) . message ) ;
783792 }
@@ -809,7 +818,9 @@ export class Discv5 extends (EventEmitter as { new (): Discv5EventEmitter }) {
809818 log ( "Sending empty NODES response to %o" , nodeAddr ) ;
810819 try {
811820 this . sessionService . sendResponse ( nodeAddr , createNodesMessage ( id , 1 , nodes ) ) ;
812- this . metrics ?. sentMessageCount . inc ( { type : MessageType [ MessageType . NODES ] } ) ;
821+ if ( this . metrics ) {
822+ this . metrics . sentMessageCount . inc ( { type : MessageType [ MessageType . NODES ] } ) ;
823+ }
813824 } catch ( e ) {
814825 log ( "Failed to send a NODES response. Error: %s" , ( e as Error ) . message ) ;
815826 }
@@ -828,7 +839,9 @@ export class Discv5 extends (EventEmitter as { new (): Discv5EventEmitter }) {
828839 const _nodes = nodes . slice ( i , i + nodesPerPacket ) ;
829840 try {
830841 this . sessionService . sendResponse ( nodeAddr , createNodesMessage ( id , total , _nodes ) ) ;
831- this . metrics ?. sentMessageCount . inc ( { type : MessageType [ MessageType . NODES ] } ) ;
842+ if ( this . metrics ) {
843+ this . metrics . sentMessageCount . inc ( { type : MessageType [ MessageType . NODES ] } ) ;
844+ }
832845 } catch ( e ) {
833846 log ( "Failed to send a NODES response. Error: %s" , ( e as Error ) . message ) ;
834847 }
@@ -847,7 +860,9 @@ export class Discv5 extends (EventEmitter as { new (): Discv5EventEmitter }) {
847860 */
848861 private handleRpcResponse = ( nodeAddr : INodeAddress , response : ResponseMessage ) : void => {
849862 const responseType = MessageType [ response . type ] ;
850- this . metrics ?. rcvdMessageCount . inc ( { type : responseType } ) ;
863+ if ( this . metrics ) {
864+ this . metrics . rcvdMessageCount . inc ( { type : responseType } ) ;
865+ }
851866
852867 // verify we know of the rpc id
853868
@@ -867,21 +882,25 @@ export class Discv5 extends (EventEmitter as { new (): Discv5EventEmitter }) {
867882 nodeAddr ,
868883 response . id
869884 ) ;
870- activeRequest . callbackPromise ?. reject (
871- new CodeError (
872- "Received a response from an nexpected address" ,
873- ResponseErrorType [ ResponseErrorType . WrongAddress ]
874- )
875- ) ;
885+ if ( activeRequest . callbackPromise ) {
886+ activeRequest . callbackPromise . reject (
887+ new CodeError (
888+ "Received a response from an nexpected address" ,
889+ ResponseErrorType [ ResponseErrorType . WrongAddress ]
890+ )
891+ ) ;
892+ }
876893 return ;
877894 }
878895
879896 // Check that the response type matches the request
880897 if ( ! requestMatchesResponse ( activeRequest . request , response ) ) {
881898 log ( "Node gave an incorrect response type. Ignoring response from: %o" , nodeAddr ) ;
882- activeRequest . callbackPromise ?. reject (
883- new CodeError ( "Response has incorrect response type" , ResponseErrorType [ ResponseErrorType . WrongResponseType ] )
884- ) ;
899+ if ( activeRequest . callbackPromise ) {
900+ activeRequest . callbackPromise . reject (
901+ new CodeError ( "Response has incorrect response type" , ResponseErrorType [ ResponseErrorType . WrongResponseType ] )
902+ ) ;
903+ }
885904 return ;
886905 }
887906
@@ -901,13 +920,16 @@ export class Discv5 extends (EventEmitter as { new (): Discv5EventEmitter }) {
901920 // TODO Implement all RPC methods
902921 return ;
903922 }
904-
905- activeRequest . callbackPromise ?. resolve ( toResponseType ( response ) ) ;
923+ if ( activeRequest . callbackPromise ) {
924+ activeRequest . callbackPromise . resolve ( toResponseType ( response ) ) ;
925+ }
906926 } catch ( e ) {
907927 log ( "Error handling rpc response: node: %o response: %s" , nodeAddr , responseType ) ;
908- activeRequest . callbackPromise ?. reject (
909- new CodeError ( ( e as Error ) . message , ResponseErrorType [ ResponseErrorType . InternalError ] )
910- ) ;
928+ if ( activeRequest . callbackPromise ) {
929+ activeRequest . callbackPromise . reject (
930+ new CodeError ( ( e as Error ) . message , ResponseErrorType [ ResponseErrorType . InternalError ] )
931+ ) ;
932+ }
911933 }
912934 } ;
913935
@@ -1056,6 +1078,8 @@ export class Discv5 extends (EventEmitter as { new (): Discv5EventEmitter }) {
10561078 this . connectionUpdated ( nodeId , { type : ConnectionStatusType . Disconnected } ) ;
10571079
10581080 // If this is initiated by the user, return the error on the callback.
1059- callbackPromise ?. reject ( new CodeError ( "RPC failure" , RequestErrorType [ error ] ) ) ;
1081+ if ( callbackPromise ) {
1082+ callbackPromise . reject ( new CodeError ( "RPC failure" , RequestErrorType [ error ] ) ) ;
1083+ }
10601084 } ;
10611085}
0 commit comments