(self, number, spend=None, additional_coinbase_value=0, *, script=None, version=4, additional_output_scripts=None)
| 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): |
no test coverage detected