create coinbase transaction
This commit is contained in:
parent
ed76d9be46
commit
24267213c6
@ -580,6 +580,7 @@ class Block():
|
||||
self.hash = hash
|
||||
self.header = header
|
||||
self.version = version
|
||||
self.nversion = int.from_bytes(version,'little')
|
||||
self.prev_block = prev_block
|
||||
self.merkle_root = merkle_root
|
||||
self.timestamp = timestamp
|
||||
@ -602,7 +603,7 @@ class Block():
|
||||
self.witness_root_hash = None
|
||||
if txs:
|
||||
if txs[0].coinbase:
|
||||
if version > 1:
|
||||
if self.nversion > 1:
|
||||
self.height = int.from_bytes(txs[0].tx_in[0].sig_script.raw[1:5], "little")
|
||||
self.coinbase = txs[0].tx_in[0].sig_script.raw[5:]
|
||||
else:
|
||||
@ -644,8 +645,10 @@ class Block():
|
||||
if insert:
|
||||
if self.transactions[0].coinbase:
|
||||
self.transactions[0] = tx
|
||||
self.tx_hash_list[0] = tx.hash
|
||||
else:
|
||||
self.transactions.insert(0,tx)
|
||||
self.tx_hash_list.insert(0, tx.hash)
|
||||
return tx
|
||||
|
||||
def split_coinbase(self, extranonce_size = 8, extranonce_start = -8):
|
||||
|
||||
@ -587,7 +587,8 @@ class BlockDeserializeTests(unittest.TestCase):
|
||||
def setUpClass(cls):
|
||||
print("\nTesting Block class deserialization:\n")
|
||||
def test_block_deserialize(self):
|
||||
block = blockchain.Block.deserialize(block_a)
|
||||
block_c = "2000000000000000000001b7b88a5bad46d2e6707a89d7dc850441c81876cc9b7cfa6ce4c7a3304d8f487f52b6268d942f72d908a10a027ea01c3c04c93aff718bb8783e8053815a1a372b40915ae40604010000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff2303c38e130068747470733a5c6170692e6269746170732e636f6d204a5948fc8a000000ffffffff02c7a2a904000000001976a914d4e49947b9f545218cd20389244c249d3520545d88ac0000000000000000266a24aa21a9ed7a2c14ed22283b657a9181f8981dc05361ca46f0b2a5c71d983326e5a73578100120000000000000000000000000000000000000000000000000000000000000000000000000010000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff2303c38e130068747470733a5c6170692e6269746170732e636f6d2004b7841500000000ffffffff02c7a2a904000000001976a914d4e49947b9f545218cd20389244c249d3520545d88ac0000000000000000266a24aa21a9edcdbbce5ecb7d4878ac6828fe9284eb5616b26941d395524a95af8ea9b7b62df301200000000000000000000000000000000000000000000000000000000000000000000000000100000001f70f321af3d0cd51241b3755129298e2b389056084e7f9e716677feb7bfc823c010000006a47304402204970ddbb984e260419d78ac265af76ed427aa7789a38661e65d08535db408f1d022048f11c920753c8409b83cc5adfbfa36c19a176b502d5ea59b693dd45661db5ac012103b403539e4175cde64cc99b71d0d9cfc701c193bed1d6df17ae37b92e8506f141ffffffff0200000000000000001e6a1c504f455400000002b2dabb0c40f888bcedc5006bdf1cf3ed7bd26b0b239ede490a0000001976a9140fcc88829c46f85443edcce2150a8edbf57b48be88ac0000000001000000015bd2dcb6ec8cb4c82c2d6c59dc6390d94693d807d91f8749a5638fd925e88cd200000000fdfe000048304502210081c18398e662da86f8a8106ab78bdbd5732e456c872cc112f646070cc02f375202200ad1dd76bdf427222ce3edc73262128ecf20b0d57b328450e5fdaa7420fefc9a01483045022100ec41d289edc6bbec37560cf9f47d294c47d92a811cb67400a17e6bcd82594328022061031dd011fac9bc90bcde08eadca8143725854c502ab559270caa84c298d73b014c69522102f4dade8a5d54a904e3c7e639f397f049ab597b0859c6b486c5721344f4488f4921034b669c9a2f24d3d3d3d72358ae3f75bb257bfd3e166b404b4ff4ba8d6d0b52a821030fbf0e349acc83649bf187ba78c7764845f16cfe95c7c0287b6fac123815755753aeffffffff02a08601000000000017a914ac160ac1388194d6fe0e8e620d905e90bb3031fd87de6f850b0000000017a914d24feab4ad5431661fe18ffd158295158fe046218700000000"
|
||||
block = blockchain.Block.deserialize(block_c)
|
||||
|
||||
print(">>>",block.bits)
|
||||
print(">>>",block.hash)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user