def msg_deser(cls, f, protover=PROTO_VERSION): c = cls() c.nVersion = struct.unpack(b"<i", ser_read(f, 4))[0] if c.nVersion == 10300: c.nVersion = 300 c.nServices = struct.unpack(b"<Q", ser_read(f, 8))[0] c.nTime = struct.unpack(b"<q", ser_read(f, 8))[0] c.addrTo = CAddress.stream_deserialize(f, True) if c.nVersion >= 106: c.addrFrom = CAddress.stream_deserialize(f, True) c.nNonce = struct.unpack(b"<Q", ser_read(f, 8))[0] c.strSubVer = VarStringSerializer.stream_deserialize(f) if c.nVersion >= 209: c.nStartingHeight = struct.unpack(b"<i", ser_read(f,4))[0] else: c.nStartingHeight = None else: c.addrFrom = None c.nNonce = None c.strSubVer = None c.nStartingHeight = None return c
def msg_deser(cls, f, protover=PROTO_VERSION): c = cls() c.nVersion = struct.unpack(b"<i", ser_read(f, 4))[0] if c.nVersion == 10300: c.nVersion = 300 c.nServices = struct.unpack(b"<Q", ser_read(f, 8))[0] c.nTime = struct.unpack(b"<q", ser_read(f, 8))[0] c.addrTo = CAddress.stream_deserialize(f, True) if c.nVersion >= 106: c.addrFrom = CAddress.stream_deserialize(f, True) c.nNonce = struct.unpack(b"<Q", ser_read(f, 8))[0] c.strSubVer = VarStringSerializer.stream_deserialize(f) if c.nVersion >= 209: c.nStartingHeight = struct.unpack(b"<i", ser_read(f, 4))[0] else: c.nStartingHeight = None else: c.addrFrom = None c.nNonce = None c.strSubVer = None c.nStartingHeight = None return c