Changeset View
Changeset View
Standalone View
Standalone View
test/functional/test_framework/messages.py
Show First 20 Lines • Show All 921 Lines • ▼ Show 20 Lines | def __repr__(self): | ||||
return "CMerkleBlock(header={}, txn={})".format( | return "CMerkleBlock(header={}, txn={})".format( | ||||
repr(self.header), repr(self.txn)) | repr(self.header), repr(self.txn)) | ||||
# Objects that correspond to messages on the wire | # Objects that correspond to messages on the wire | ||||
class msg_version: | class msg_version: | ||||
__slots__ = ("addrFrom", "addrTo", "nNonce", "nRelay", "nServices", | __slots__ = ("addrFrom", "addrTo", "nNonce", "nRelay", "nServices", | ||||
"nStartingHeight", "nTime", "nVersion", "strSubVer") | "nStartingHeight", "nTime", "nVersion", "strSubVer", "nExtraEntropy") | ||||
msgtype = b"version" | msgtype = b"version" | ||||
def __init__(self): | def __init__(self): | ||||
self.nVersion = MY_VERSION | self.nVersion = MY_VERSION | ||||
self.nServices = 1 | self.nServices = 1 | ||||
self.nTime = int(time.time()) | self.nTime = int(time.time()) | ||||
self.addrTo = CAddress() | self.addrTo = CAddress() | ||||
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 | ||||
self.nExtraEntropy = random.getrandbits(64) | |||||
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] | ||||
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, with_time=False) | self.addrTo.deserialize(f, with_time=False) | ||||
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] | ||||
self.nRelay = struct.unpack("<b", f.read(1))[0] | self.nRelay = struct.unpack("<b", f.read(1))[0] | ||||
self.nExtraEntropy = struct.unpack("<Q", f.read(8))[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) | ||||
r += struct.pack("<Q", self.nNonce) | r += struct.pack("<Q", self.nNonce) | ||||
r += ser_string(self.strSubVer) | r += ser_string(self.strSubVer) | ||||
r += struct.pack("<i", self.nStartingHeight) | r += struct.pack("<i", self.nStartingHeight) | ||||
r += struct.pack("<b", self.nRelay) | r += struct.pack("<b", self.nRelay) | ||||
r += struct.pack("<Q", self.nExtraEntropy) | |||||
return r | return r | ||||
def __repr__(self): | def __repr__(self): | ||||
return 'msg_version(nVersion={} nServices={} nTime={} addrTo={} addrFrom={} nNonce=0x{:016X} strSubVer={} nStartingHeight={} nRelay={})'.format( | return 'msg_version(nVersion={} nServices={} nTime={} addrTo={} addrFrom={} nNonce=0x{:016X} strSubVer={} nStartingHeight={} nRelay={} nExtraEntropy={})'.format( | ||||
self.nVersion, self.nServices, self.nTime, | self.nVersion, self.nServices, self.nTime, | ||||
repr(self.addrTo), repr(self.addrFrom), self.nNonce, | repr(self.addrTo), repr(self.addrFrom), self.nNonce, | ||||
self.strSubVer, self.nStartingHeight, self.nRelay) | self.strSubVer, self.nStartingHeight, self.nRelay, self.nExtraEntropy) | ||||
class msg_verack: | class msg_verack: | ||||
__slots__ = () | __slots__ = () | ||||
msgtype = b"verack" | msgtype = b"verack" | ||||
def __init__(self): | def __init__(self): | ||||
pass | pass | ||||
▲ Show 20 Lines • Show All 700 Lines • Show Last 20 Lines |