MCPcopy Create free account
hub / github.com/bitcoin/bitcoin / next_block

Method next_block

test/functional/feature_block.py:1359–1389  ·  view source on GitHub ↗
(self, number, spend=None, additional_coinbase_value=0, *, script=None, version=4, additional_output_scripts=None)

Source from the content-addressed store, hash-verified

1357 return tx
1358
1359 def next_block(self, number, spend=None, additional_coinbase_value=0, *, script=None, version=4, additional_output_scripts=None):
1360 if script is None:
1361 script = CScript([OP_TRUE])
1362 if additional_output_scripts is None:
1363 additional_output_scripts = []
1364 if self.tip is None:
1365 base_block_hash = self.genesis_hash
1366 block_time = int(time.time()) + 1
1367 else:
1368 base_block_hash = self.tip.hash_int
1369 block_time = self.tip.nTime + 1
1370 # First create the coinbase
1371 height = self.block_heights[base_block_hash] + 1
1372 coinbase = create_coinbase(height, self.coinbase_pubkey)
1373 coinbase.vout[0].nValue += additional_coinbase_value
1374 for additional_script in additional_output_scripts:
1375 coinbase.vout.append(CTxOut(0, additional_script))
1376 if spend is None:
1377 block = create_block(base_block_hash, coinbase, ntime=block_time, version=version)
1378 else:
1379 coinbase.vout[0].nValue += spend.vout[0].nValue - 1 # all but one satoshi to fees
1380 tx = self.create_tx(spend, 0, 1, output_script=script) # spend 1 satoshi
1381 self.sign_tx(tx, spend)
1382 block = create_block(base_block_hash, coinbase, ntime=block_time, version=version, txlist=[tx])
1383 # Block is created. Find a valid nonce.
1384 block.solve()
1385 self.tip = block
1386 self.block_heights[block.hash_int] = height
1387 assert number not in self.blocks
1388 self.blocks[number] = block
1389 return block
1390
1391 # save the current tip so it can be spent by a later block
1392 def save_spendable_output(self):

Callers 1

run_testMethod · 0.95

Calls 7

create_txMethod · 0.95
sign_txMethod · 0.95
CScriptClass · 0.90
create_coinbaseFunction · 0.90
CTxOutClass · 0.90
create_blockFunction · 0.90
solveMethod · 0.80

Tested by

no test coverage detected