Changeset View
Changeset View
Standalone View
Standalone View
test/functional/test_framework/messages.py
Show First 20 Lines • Show All 828 Lines • ▼ Show 20 Lines | def __init__(self): | ||||
self.addrFrom = CAddress() | self.addrFrom = CAddress() | ||||
self.nNonce = random.getrandbits(64) | self.nNonce = random.getrandbits(64) | ||||
self.strSubVer = MY_SUBVERSION | self.strSubVer = MY_SUBVERSION | ||||
self.nStartingHeight = -1 | self.nStartingHeight = -1 | ||||
self.nRelay = MY_RELAY | self.nRelay = MY_RELAY | ||||
def deserialize(self, f): | def deserialize(self, f): | ||||
self.nVersion = struct.unpack("<i", f.read(4))[0] | self.nVersion = struct.unpack("<i", f.read(4))[0] | ||||
if self.nVersion == 10300: | |||||
self.nVersion = 300 | |||||
self.nServices = struct.unpack("<Q", f.read(8))[0] | self.nServices = struct.unpack("<Q", f.read(8))[0] | ||||
self.nTime = struct.unpack("<q", f.read(8))[0] | self.nTime = struct.unpack("<q", f.read(8))[0] | ||||
self.addrTo = CAddress() | self.addrTo = CAddress() | ||||
self.addrTo.deserialize(f, False) | self.addrTo.deserialize(f, False) | ||||
if self.nVersion >= 106: | |||||
self.addrFrom = CAddress() | self.addrFrom = CAddress() | ||||
self.addrFrom.deserialize(f, False) | self.addrFrom.deserialize(f, 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) | ||||
else: | |||||
self.addrFrom = None | |||||
self.nNonce = None | |||||
self.strSubVer = None | |||||
self.nStartingHeight = None | |||||
if self.nVersion >= 209: | |||||
self.nStartingHeight = struct.unpack("<i", f.read(4))[0] | self.nStartingHeight = struct.unpack("<i", f.read(4))[0] | ||||
else: | |||||
self.nStartingHeight = None | |||||
if self.nVersion >= 70001: | if self.nVersion >= 70001: | ||||
# Relay field is optional for version 70001 onwards | # Relay field is optional for version 70001 onwards | ||||
try: | try: | ||||
self.nRelay = struct.unpack("<b", f.read(1))[0] | self.nRelay = struct.unpack("<b", f.read(1))[0] | ||||
except: | except: | ||||
self.nRelay = 0 | self.nRelay = 0 | ||||
else: | else: | ||||
▲ Show 20 Lines • Show All 464 Lines • Show Last 20 Lines |