class CTransaction(object):
def __init__(self):
self.nVersion = 1
+ self.nTime = 0
self.vin = []
self.vout = []
self.nLockTime = 0
self.sha256 = None
def deserialize(self, f):
self.nVersion = struct.unpack("<i", f.read(4))[0]
+ self.nTime = struct.unpack("<i", f.read(4))[0]
self.vin = deser_vector(f, CTxIn)
self.vout = deser_vector(f, CTxOut)
self.nLockTime = struct.unpack("<I", f.read(4))[0]
def serialize(self):
r = ""
r += struct.pack("<i", self.nVersion)
+ r += struct.pack("<i", self.nTime)
r += ser_vector(self.vin)
r += ser_vector(self.vout)
r += struct.pack("<I", self.nLockTime)
class CBlock(object):
def __init__(self):
- self.nVersion = 1
+ self.nVersion = 6
self.hashPrevBlock = 0
self.hashMerkleRoot = 0
self.nTime = 0
self.nNonce = 0
self.vtx = []
self.sha256 = None
+ self.signature = b""
def deserialize(self, f):
self.nVersion = struct.unpack("<i", f.read(4))[0]
self.hashPrevBlock = deser_uint256(f)
self.nBits = struct.unpack("<I", f.read(4))[0]
self.nNonce = struct.unpack("<I", f.read(4))[0]
self.vtx = deser_vector(f, CTransaction)
+ self.signature = deser_string(f)
def serialize(self):
r = []
r.append(struct.pack("<i", self.nVersion))
r.append(struct.pack("<I", self.nBits))
r.append(struct.pack("<I", self.nNonce))
r.append(ser_vector(self.vtx))
+ r.append(ser_string(self.signature))
return ''.join(r)
def calc_sha256(self):
if self.sha256 is None:
r.append(struct.pack("<I", self.nTime))
r.append(struct.pack("<I", self.nBits))
r.append(struct.pack("<I", self.nNonce))
- self.sha256 = uint256_from_str(SHA256.new(SHA256.new(''.join(r)).digest()).digest())
+ self.sha256 = uint256_from_str(scrypt(''.join(r)))
return self.sha256
def is_valid(self):