@@ -2,7 +2,7 @@ package io.iohk.ethereum.network.discovery.codecs
2
2
3
3
import io .iohk .scalanet .discovery .ethereum .Node
4
4
import io .iohk .scalanet .discovery .ethereum .v4 .Payload
5
- import io .iohk .ethereum .rlp .{ RLPList , RLPCodec }
5
+ import io .iohk .ethereum .rlp .RLPCodec
6
6
import io .iohk .ethereum .rlp .RLPImplicits ._
7
7
import io .iohk .ethereum .rlp .RLPImplicitConversions ._
8
8
import io .iohk .ethereum .rlp .RLPImplicitDerivations ._
@@ -14,14 +14,17 @@ object RLPCodecs {
14
14
15
15
implicit val policy : DerivationPolicy = DerivationPolicy (omitTrailingOptionals = true )
16
16
17
+ implicit val inetAddressRLPCodec : RLPCodec [InetAddress ] =
18
+ RLPCodec .instance[InetAddress ](
19
+ ip => ip.getAddress,
20
+ // Implicit conversion to `Array[Byte]`
21
+ { case rlp => InetAddress .getByAddress(rlp) }
22
+ )
23
+
17
24
implicit val nodeAddressRLPCodec : RLPCodec [Node .Address ] =
18
- RLPCodec .instance[Node .Address ](
19
- { case Node .Address (ip, udpPort, tcpPort) =>
20
- RLPList (ip.getAddress, udpPort, tcpPort)
21
- },
22
- { case RLPList (ip, udpPort, tcpPort, _* ) =>
23
- Node .Address (InetAddress .getByAddress(ip), udpPort, tcpPort)
24
- }
25
+ RLPCodec [Node .Address ](
26
+ deriveLabelledGenericRLPListEncoder,
27
+ deriveLabelledGenericRLPListDecoder
25
28
)
26
29
27
30
implicit val pingRLPCodec : RLPCodec [Payload .Ping ] =
0 commit comments