MCPcopy
hub / github.com/petertodd/python-bitcoinlib / __init__

Method __init__

bitcoin/core/__init__.py:645–663  ·  view source on GitHub ↗

Create a new block

(self, nVersion=2, hashPrevBlock=b'\x00'*32, hashMerkleRoot=b'\x00'*32, nTime=0, nBits=0, nNonce=0, vtx=())

Source from the content-addressed store, hash-verified

643 return commit_pos
644
645 def __init__(self, nVersion=2, hashPrevBlock=b'\x00'*32, hashMerkleRoot=b'\x00'*32, nTime=0, nBits=0, nNonce=0, vtx=()):
646 """Create a new block"""
647 if vtx:
648 vMerkleTree = tuple(CBlock.build_merkle_tree_from_txs(vtx))
649 if hashMerkleRoot == b'\x00'*32:
650 hashMerkleRoot = vMerkleTree[-1]
651 elif hashMerkleRoot != vMerkleTree[-1]:
652 raise CheckBlockError("CBlock : hashMerkleRoot is not compatible with vtx")
653 else:
654 vMerkleTree = ()
655 super(CBlock, self).__init__(nVersion, hashPrevBlock, hashMerkleRoot, nTime, nBits, nNonce)
656
657 object.__setattr__(self, 'vMerkleTree', vMerkleTree)
658 try:
659 vWitnessMerkleTree = tuple(CBlock.build_witness_merkle_tree_from_txs(vtx))
660 except NoWitnessData:
661 vWitnessMerkleTree = ()
662 object.__setattr__(self, 'vWitnessMerkleTree', vWitnessMerkleTree)
663 object.__setattr__(self, 'vtx', tuple(CTransaction.from_tx(tx) for tx in vtx))
664
665 @classmethod
666 def stream_deserialize(cls, f):

Callers

nothing calls this directly

Calls 6

CheckBlockErrorClass · 0.85
__setattr__Method · 0.80
__init__Method · 0.45
from_txMethod · 0.45

Tested by

no test coverage detected