Changeset View
Changeset View
Standalone View
Standalone View
test/functional/test_framework/messages.py
Show First 20 Lines • Show All 496 Lines • ▼ Show 20 Lines | class CBlockHeader: | ||||
def rehash(self): | def rehash(self): | ||||
self.sha256 = None | self.sha256 = None | ||||
self.calc_sha256() | self.calc_sha256() | ||||
return self.sha256 | return self.sha256 | ||||
def __repr__(self): | def __repr__(self): | ||||
return "CBlockHeader(nVersion={} hashPrevBlock={:064x} hashMerkleRoot={:064x} nTime={} nBits={:08x} nNonce={:08x})".format( | return "CBlockHeader(nVersion={} hashPrevBlock={:064x} hashMerkleRoot={:064x} nTime={} nBits={:08x} nNonce={:08x})".format( | ||||
self.nVersion, self.hashPrevBlock, self.hashMerkleRoot, | self.nVersion, self.hashPrevBlock, self.hashMerkleRoot, | ||||
time.ctime(self.nTime), self.nBits, self.nNonce) | self.nTime, self.nBits, self.nNonce) | ||||
class CBlock(CBlockHeader): | class CBlock(CBlockHeader): | ||||
__slots__ = ("vtx",) | __slots__ = ("vtx",) | ||||
def __init__(self, header=None): | def __init__(self, header=None): | ||||
super(CBlock, self).__init__(header) | super(CBlock, self).__init__(header) | ||||
self.vtx = [] | self.vtx = [] | ||||
▲ Show 20 Lines • Show All 42 Lines • ▼ Show 20 Lines | def solve(self): | ||||
target = uint256_from_compact(self.nBits) | target = uint256_from_compact(self.nBits) | ||||
while self.sha256 > target: | while self.sha256 > target: | ||||
self.nNonce += 1 | self.nNonce += 1 | ||||
self.rehash() | self.rehash() | ||||
def __repr__(self): | def __repr__(self): | ||||
return "CBlock(nVersion={} hashPrevBlock={:064x} hashMerkleRoot={:064x} nTime={} nBits={:08x} nNonce={:08x} vtx={})".format( | return "CBlock(nVersion={} hashPrevBlock={:064x} hashMerkleRoot={:064x} nTime={} nBits={:08x} nNonce={:08x} vtx={})".format( | ||||
self.nVersion, self.hashPrevBlock, self.hashMerkleRoot, | self.nVersion, self.hashPrevBlock, self.hashMerkleRoot, | ||||
time.ctime(self.nTime), self.nBits, self.nNonce, repr(self.vtx)) | self.nTime, self.nBits, self.nNonce, repr(self.vtx)) | ||||
class PrefilledTransaction: | class PrefilledTransaction: | ||||
__slots__ = ("index", "tx") | __slots__ = ("index", "tx") | ||||
def __init__(self, index=0, tx=None): | def __init__(self, index=0, tx=None): | ||||
self.index = index | self.index = index | ||||
self.tx = tx | self.tx = tx | ||||
▲ Show 20 Lines • Show All 392 Lines • ▼ Show 20 Lines | def serialize(self): | ||||
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) | ||||
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={})'.format( | ||||
self.nVersion, self.nServices, time.ctime(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) | ||||
class msg_verack: | class msg_verack: | ||||
__slots__ = () | __slots__ = () | ||||
command = b"verack" | command = b"verack" | ||||
▲ Show 20 Lines • Show All 495 Lines • Show Last 20 Lines |