refactor: pass BlockCreateOptions to createNewBlock

Rather than pass options individually to createNewBlock and then
combining them into BlockAssembler::Options, this commit introduces
BlockCreateOptions and passes that instead.

Currently there's only one option (use_mempool) but the next
commit adds more.

Co-authored-by: Ryan Ofsky <ryan@ofsky.org>
This commit is contained in:
Sjors Provoost
2024-07-16 10:13:28 +02:00
parent 323cfed595
commit 6b4c817d4b
6 changed files with 22 additions and 11 deletions

View File

@@ -5,9 +5,11 @@
#ifndef BITCOIN_INTERFACES_MINING_H
#define BITCOIN_INTERFACES_MINING_H
#include <node/types.h>
#include <uint256.h>
#include <memory>
#include <optional>
#include <uint256.h>
namespace node {
struct CBlockTemplate;
@@ -41,10 +43,10 @@ public:
* Construct a new block template
*
* @param[in] script_pub_key the coinbase output
* @param[in] use_mempool set false to omit mempool transactions
* @param[in] options options for creating the block
* @returns a block template
*/
virtual std::unique_ptr<node::CBlockTemplate> createNewBlock(const CScript& script_pub_key, bool use_mempool = true) = 0;
virtual std::unique_ptr<node::CBlockTemplate> createNewBlock(const CScript& script_pub_key, const node::BlockCreateOptions& options={}) = 0;
/**
* Processes new block. A valid new block is automatically relayed to peers.