Serialize in addrv2 format (BIP155)
(self)
| 286 | self.port = struct.unpack(">H", f.read(2))[0] |
| 287 | |
| 288 | def serialize_v2(self): |
| 289 | """Serialize in addrv2 format (BIP155)""" |
| 290 | assert self.net in (self.NET_IPV4, self.NET_I2P) |
| 291 | r = b"" |
| 292 | r += struct.pack("<I", self.time) |
| 293 | r += ser_compact_size(self.nServices) |
| 294 | r += struct.pack("B", self.net) |
| 295 | r += ser_compact_size(self.ADDRV2_ADDRESS_LENGTH[self.net]) |
| 296 | if self.net == self.NET_IPV4: |
| 297 | r += socket.inet_aton(self.ip) |
| 298 | else: |
| 299 | sfx = ".b32.i2p" |
| 300 | assert self.ip.endswith(sfx) |
| 301 | r += b32decode(self.ip[0:-len(sfx)] + self.I2P_PAD, True) |
| 302 | r += struct.pack(">H", self.port) |
| 303 | return r |
| 304 | |
| 305 | def __repr__(self): |
| 306 | return ("CAddress(nServices=%i net=%s addr=%s port=%i)" |
nothing calls this directly
no test coverage detected