MCPcopy Create free account
hub / github.com/ElementsProject/elements / serialize_v2

Method serialize_v2

test/functional/test_framework/messages.py:288–303  ·  view source on GitHub ↗

Serialize in addrv2 format (BIP155)

(self)

Source from the content-addressed store, hash-verified

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)"

Callers

nothing calls this directly

Calls 1

ser_compact_sizeFunction · 0.70

Tested by

no test coverage detected