Skip to content

Commit 409ab7d

Browse files
committed
signet/miner: add Generate.mine function
1 parent 7b31332 commit 409ab7d

File tree

1 file changed

+13
-8
lines changed

1 file changed

+13
-8
lines changed

contrib/signet/miner

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -306,6 +306,17 @@ class Generate:
306306

307307
return tmpl
308308

309+
def mine(self, bcli, grind_cmd, tmpl, reward_spk):
310+
psbt = generate_psbt(tmpl, reward_spk, blocktime=self.mine_time)
311+
input_stream = os.linesep.join([psbt, "true", "ALL"]).encode('utf8')
312+
psbt_signed = json.loads(bcli("-stdin", "walletprocesspsbt", input=input_stream))
313+
if not psbt_signed.get("complete",False):
314+
logging.debug("Generated PSBT: %s" % (psbt,))
315+
sys.stderr.write("PSBT signing failed\n")
316+
return None
317+
block, signet_solution = decode_psbt(psbt_signed["psbt"])
318+
return finish_block(block, signet_solution, grind_cmd)
319+
309320
def do_generate(args):
310321
if args.max_blocks is not None:
311322
if args.ongoing:
@@ -417,15 +428,9 @@ def do_generate(args):
417428
# mine block
418429
logging.debug("Mining block delta=%s start=%s mine=%s", seconds_to_hms(gen.mine_time-bestheader["time"]), gen.mine_time, gen.is_mine)
419430
mined_blocks += 1
420-
psbt = generate_psbt(tmpl, reward_spk, blocktime=gen.mine_time)
421-
input_stream = os.linesep.join([psbt, "true", "ALL"]).encode('utf8')
422-
psbt_signed = json.loads(args.bcli("-stdin", "walletprocesspsbt", input=input_stream))
423-
if not psbt_signed.get("complete",False):
424-
logging.debug("Generated PSBT: %s" % (psbt,))
425-
sys.stderr.write("PSBT signing failed\n")
431+
block = gen.mine(args.bcli, args.grind_cmd, tmpl, reward_spk)
432+
if block is None:
426433
return 1
427-
block, signet_solution = decode_psbt(psbt_signed["psbt"])
428-
block = finish_block(block, signet_solution, args.grind_cmd)
429434

430435
# submit block
431436
r = args.bcli("-stdin", "submitblock", input=block.serialize().hex().encode('utf8'))

0 commit comments

Comments
 (0)