#ifndef BITCOIN_TEST_UTIL_MINING_H
#define BITCOIN_TEST_UTIL_MINING_H
#include <node/miner.h>
#include <memory>
#include <string>
#include <vector>
class CBlock;
class CChainParams;
class COutPoint;
class CScript;
namespace node {
struct NodeContext;
}
std::vector<std::shared_ptr<CBlock>> CreateBlockChain(size_t total_height, const CChainParams& params);
COutPoint MineBlock(const node::NodeContext&,
const node::BlockAssembler::Options& assembler_options);
COutPoint MineBlock(const node::NodeContext&, std::shared_ptr<CBlock>& block);
COutPoint ProcessBlock(const node::NodeContext&, const std::shared_ptr<CBlock>& block);
std::shared_ptr<CBlock> PrepareBlock(const node::NodeContext&);
std::shared_ptr<CBlock> PrepareBlock(const node::NodeContext& node,
const node::BlockAssembler::Options& assembler_options);
COutPoint generatetoaddress(const node::NodeContext&, const std::string& address);
#endif