|
|
@ -665,81 +665,6 @@ class CBlock(CBlockHeader):
|
|
|
|
time.ctime(self.nTime), self.nBits, self.nNonce, repr(self.vtx))
|
|
|
|
time.ctime(self.nTime), self.nBits, self.nNonce, repr(self.vtx))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class CUnsignedAlert():
|
|
|
|
|
|
|
|
def __init__(self):
|
|
|
|
|
|
|
|
self.nVersion = 1
|
|
|
|
|
|
|
|
self.nRelayUntil = 0
|
|
|
|
|
|
|
|
self.nExpiration = 0
|
|
|
|
|
|
|
|
self.nID = 0
|
|
|
|
|
|
|
|
self.nCancel = 0
|
|
|
|
|
|
|
|
self.setCancel = []
|
|
|
|
|
|
|
|
self.nMinVer = 0
|
|
|
|
|
|
|
|
self.nMaxVer = 0
|
|
|
|
|
|
|
|
self.setSubVer = []
|
|
|
|
|
|
|
|
self.nPriority = 0
|
|
|
|
|
|
|
|
self.strComment = b""
|
|
|
|
|
|
|
|
self.strStatusBar = b""
|
|
|
|
|
|
|
|
self.strReserved = b""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def deserialize(self, f):
|
|
|
|
|
|
|
|
self.nVersion = struct.unpack("<i", f.read(4))[0]
|
|
|
|
|
|
|
|
self.nRelayUntil = struct.unpack("<q", f.read(8))[0]
|
|
|
|
|
|
|
|
self.nExpiration = struct.unpack("<q", f.read(8))[0]
|
|
|
|
|
|
|
|
self.nID = struct.unpack("<i", f.read(4))[0]
|
|
|
|
|
|
|
|
self.nCancel = struct.unpack("<i", f.read(4))[0]
|
|
|
|
|
|
|
|
self.setCancel = deser_int_vector(f)
|
|
|
|
|
|
|
|
self.nMinVer = struct.unpack("<i", f.read(4))[0]
|
|
|
|
|
|
|
|
self.nMaxVer = struct.unpack("<i", f.read(4))[0]
|
|
|
|
|
|
|
|
self.setSubVer = deser_string_vector(f)
|
|
|
|
|
|
|
|
self.nPriority = struct.unpack("<i", f.read(4))[0]
|
|
|
|
|
|
|
|
self.strComment = deser_string(f)
|
|
|
|
|
|
|
|
self.strStatusBar = deser_string(f)
|
|
|
|
|
|
|
|
self.strReserved = deser_string(f)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def serialize(self):
|
|
|
|
|
|
|
|
r = b""
|
|
|
|
|
|
|
|
r += struct.pack("<i", self.nVersion)
|
|
|
|
|
|
|
|
r += struct.pack("<q", self.nRelayUntil)
|
|
|
|
|
|
|
|
r += struct.pack("<q", self.nExpiration)
|
|
|
|
|
|
|
|
r += struct.pack("<i", self.nID)
|
|
|
|
|
|
|
|
r += struct.pack("<i", self.nCancel)
|
|
|
|
|
|
|
|
r += ser_int_vector(self.setCancel)
|
|
|
|
|
|
|
|
r += struct.pack("<i", self.nMinVer)
|
|
|
|
|
|
|
|
r += struct.pack("<i", self.nMaxVer)
|
|
|
|
|
|
|
|
r += ser_string_vector(self.setSubVer)
|
|
|
|
|
|
|
|
r += struct.pack("<i", self.nPriority)
|
|
|
|
|
|
|
|
r += ser_string(self.strComment)
|
|
|
|
|
|
|
|
r += ser_string(self.strStatusBar)
|
|
|
|
|
|
|
|
r += ser_string(self.strReserved)
|
|
|
|
|
|
|
|
return r
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def __repr__(self):
|
|
|
|
|
|
|
|
return "CUnsignedAlert(nVersion %d, nRelayUntil %d, nExpiration %d, nID %d, nCancel %d, nMinVer %d, nMaxVer %d, nPriority %d, strComment %s, strStatusBar %s, strReserved %s)" \
|
|
|
|
|
|
|
|
% (self.nVersion, self.nRelayUntil, self.nExpiration, self.nID,
|
|
|
|
|
|
|
|
self.nCancel, self.nMinVer, self.nMaxVer, self.nPriority,
|
|
|
|
|
|
|
|
self.strComment, self.strStatusBar, self.strReserved)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class CAlert():
|
|
|
|
|
|
|
|
def __init__(self):
|
|
|
|
|
|
|
|
self.vchMsg = b""
|
|
|
|
|
|
|
|
self.vchSig = b""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def deserialize(self, f):
|
|
|
|
|
|
|
|
self.vchMsg = deser_string(f)
|
|
|
|
|
|
|
|
self.vchSig = deser_string(f)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def serialize(self):
|
|
|
|
|
|
|
|
r = b""
|
|
|
|
|
|
|
|
r += ser_string(self.vchMsg)
|
|
|
|
|
|
|
|
r += ser_string(self.vchSig)
|
|
|
|
|
|
|
|
return r
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def __repr__(self):
|
|
|
|
|
|
|
|
return "CAlert(vchMsg.sz %d, vchSig.sz %d)" \
|
|
|
|
|
|
|
|
% (len(self.vchMsg), len(self.vchSig))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class PrefilledTransaction():
|
|
|
|
class PrefilledTransaction():
|
|
|
|
def __init__(self, index=0, tx = None):
|
|
|
|
def __init__(self, index=0, tx = None):
|
|
|
|
self.index = index
|
|
|
|
self.index = index
|
|
|
@ -1043,25 +968,6 @@ class msg_addr():
|
|
|
|
return "msg_addr(addrs=%s)" % (repr(self.addrs))
|
|
|
|
return "msg_addr(addrs=%s)" % (repr(self.addrs))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class msg_alert():
|
|
|
|
|
|
|
|
command = b"alert"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def __init__(self):
|
|
|
|
|
|
|
|
self.alert = CAlert()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def deserialize(self, f):
|
|
|
|
|
|
|
|
self.alert = CAlert()
|
|
|
|
|
|
|
|
self.alert.deserialize(f)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def serialize(self):
|
|
|
|
|
|
|
|
r = b""
|
|
|
|
|
|
|
|
r += self.alert.serialize()
|
|
|
|
|
|
|
|
return r
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def __repr__(self):
|
|
|
|
|
|
|
|
return "msg_alert(alert=%s)" % (repr(self.alert), )
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class msg_inv():
|
|
|
|
class msg_inv():
|
|
|
|
command = b"inv"
|
|
|
|
command = b"inv"
|
|
|
|
|
|
|
|
|
|
|
@ -1484,7 +1390,6 @@ class NodeConnCB():
|
|
|
|
self.connection = None
|
|
|
|
self.connection = None
|
|
|
|
|
|
|
|
|
|
|
|
def on_addr(self, conn, message): pass
|
|
|
|
def on_addr(self, conn, message): pass
|
|
|
|
def on_alert(self, conn, message): pass
|
|
|
|
|
|
|
|
def on_block(self, conn, message): pass
|
|
|
|
def on_block(self, conn, message): pass
|
|
|
|
def on_blocktxn(self, conn, message): pass
|
|
|
|
def on_blocktxn(self, conn, message): pass
|
|
|
|
def on_cmpctblock(self, conn, message): pass
|
|
|
|
def on_cmpctblock(self, conn, message): pass
|
|
|
@ -1588,7 +1493,6 @@ class NodeConn(asyncore.dispatcher):
|
|
|
|
b"version": msg_version,
|
|
|
|
b"version": msg_version,
|
|
|
|
b"verack": msg_verack,
|
|
|
|
b"verack": msg_verack,
|
|
|
|
b"addr": msg_addr,
|
|
|
|
b"addr": msg_addr,
|
|
|
|
b"alert": msg_alert,
|
|
|
|
|
|
|
|
b"inv": msg_inv,
|
|
|
|
b"inv": msg_inv,
|
|
|
|
b"getdata": msg_getdata,
|
|
|
|
b"getdata": msg_getdata,
|
|
|
|
b"getblocks": msg_getblocks,
|
|
|
|
b"getblocks": msg_getblocks,
|
|
|
|