Changeset View
Changeset View
Standalone View
Standalone View
test/functional/test_framework/messages.py
Show First 20 Lines • Show All 949 Lines • ▼ Show 20 Lines | def deserialize(self, f): | ||||
self.addrFrom = CAddress() | self.addrFrom = CAddress() | ||||
self.addrFrom.deserialize(f, with_time=False) | self.addrFrom.deserialize(f, with_time=False) | ||||
self.nNonce = struct.unpack("<Q", f.read(8))[0] | self.nNonce = struct.unpack("<Q", f.read(8))[0] | ||||
self.strSubVer = deser_string(f) | self.strSubVer = deser_string(f) | ||||
self.nStartingHeight = struct.unpack("<i", f.read(4))[0] | self.nStartingHeight = struct.unpack("<i", f.read(4))[0] | ||||
if self.nVersion >= 70001: | |||||
# Relay field is optional for version 70001 onwards | |||||
try: | |||||
self.nRelay = struct.unpack("<b", f.read(1))[0] | self.nRelay = struct.unpack("<b", f.read(1))[0] | ||||
except Exception: | |||||
self.nRelay = 0 | |||||
else: | |||||
self.nRelay = 0 | |||||
def serialize(self): | def serialize(self): | ||||
r = b"" | r = b"" | ||||
r += struct.pack("<i", self.nVersion) | r += struct.pack("<i", self.nVersion) | ||||
r += struct.pack("<Q", self.nServices) | r += struct.pack("<Q", self.nServices) | ||||
r += struct.pack("<q", self.nTime) | r += struct.pack("<q", self.nTime) | ||||
r += self.addrTo.serialize(with_time=False) | r += self.addrTo.serialize(with_time=False) | ||||
r += self.addrFrom.serialize(with_time=False) | r += self.addrFrom.serialize(with_time=False) | ||||
▲ Show 20 Lines • Show All 719 Lines • Show Last 20 Lines |