| 98 | |
| 99 | |
| 100 | class CBlockLocator(Serializable): |
| 101 | def __init__(self, protover=PROTO_VERSION): |
| 102 | self.nVersion = protover |
| 103 | self.vHave = [] |
| 104 | |
| 105 | @classmethod |
| 106 | def stream_deserialize(cls, f): |
| 107 | c = cls() |
| 108 | c.nVersion = struct.unpack(b"<i", ser_read(f, 4))[0] |
| 109 | c.vHave = uint256VectorSerializer.stream_deserialize(f) |
| 110 | return c |
| 111 | |
| 112 | def stream_serialize(self, f): |
| 113 | f.write(struct.pack(b"<i", self.nVersion)) |
| 114 | uint256VectorSerializer.stream_serialize(self.vHave, f) |
| 115 | |
| 116 | def __repr__(self): |
| 117 | return "CBlockLocator(nVersion=%i vHave=%s)" % (self.nVersion, repr(self.vHave)) |
| 118 | |
| 119 | |
| 120 | class CUnsignedAlert(Serializable): |