@@ -783,23 +783,16 @@ func (p *peer) Handshake(network uint64, td *big.Int, head common.Hash, genesis
783783 )
784784 go func () {
785785 switch {
786- case p .version == xdpos2 :
787- errc <- p2p .Send (p .rw , StatusMsg , & statusData63 {
788- ProtocolVersion : uint32 (p .version ),
789- NetworkId : network ,
790- TD : td ,
791- CurrentBlock : head ,
792- GenesisBlock : genesis ,
793- })
794- case p .version == eth63 :
795- errc <- p2p .Send (p .rw , StatusMsg , & statusData63 {
786+ case supportsEth65 (p .version ):
787+ errc <- p2p .Send (p .rw , StatusMsg , & statusData {
796788 ProtocolVersion : uint32 (p .version ),
797- NetworkId : network ,
789+ NetworkID : network ,
798790 TD : td ,
799- CurrentBlock : head ,
800- GenesisBlock : genesis ,
791+ Head : head ,
792+ Genesis : genesis ,
793+ ForkID : forkID ,
801794 })
802- case p .version >= eth64 || p . version >= xdpos22 :
795+ case supportsEth64 ( p .version ) :
803796 errc <- p2p .Send (p .rw , StatusMsg , & statusData {
804797 ProtocolVersion : uint32 (p .version ),
805798 NetworkID : network ,
@@ -808,18 +801,24 @@ func (p *peer) Handshake(network uint64, td *big.Int, head common.Hash, genesis
808801 Genesis : genesis ,
809802 ForkID : forkID ,
810803 })
804+ case supportsEth63 (p .version ):
805+ errc <- p2p .Send (p .rw , StatusMsg , & statusData63 {
806+ ProtocolVersion : uint32 (p .version ),
807+ NetworkId : network ,
808+ TD : td ,
809+ CurrentBlock : head ,
810+ GenesisBlock : genesis ,
811+ })
811812 default :
812813 panic (fmt .Sprintf ("unsupported eth protocol version: %d" , p .version ))
813814 }
814815 }()
815816 go func () {
816817 switch {
817- case p .version == xdpos2 :
818- errc <- p .readStatusLegacy (network , & status63 , genesis )
819- case p .version == eth63 :
820- errc <- p .readStatusLegacy (network , & status63 , genesis )
821- case p .version >= eth64 || p .version >= xdpos22 : //include xdpos22 condition for completeness
818+ case supportsEth64 (p .version ):
822819 errc <- p .readStatus (network , & status , genesis , forkFilter )
820+ case supportsEth63 (p .version ):
821+ errc <- p .readStatusLegacy (network , & status63 , genesis )
823822 default :
824823 panic (fmt .Sprintf ("unsupported eth protocol version: %d" , p .version ))
825824 }
@@ -837,12 +836,10 @@ func (p *peer) Handshake(network uint64, td *big.Int, head common.Hash, genesis
837836 }
838837 }
839838 switch {
840- case p .version == xdpos2 :
841- p .td , p .head = status63 .TD , status63 .CurrentBlock
842- case p .version == eth63 :
843- p .td , p .head = status63 .TD , status63 .CurrentBlock
844- case p .version >= eth64 || p .version >= xdpos22 : //include xdpos22 for completeness
839+ case supportsEth64 (p .version ):
845840 p .td , p .head = status .TD , status .Head
841+ case supportsEth63 (p .version ):
842+ p .td , p .head = status63 .TD , status63 .CurrentBlock
846843 default :
847844 panic (fmt .Sprintf ("unsupported eth protocol version: %d" , p .version ))
848845 }
0 commit comments