Hush Full Node software. We were censored from Github, this is where all development happens now.
https://hush.is
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
2.7 KiB
67 lines
2.7 KiB
// Copyright (c) 2009-2010 Satoshi Nakamoto
|
|
// Copyright (c) 2009-2013 The Bitcoin Core developers
|
|
// Copyright (c) 2016-2022 The Hush developers
|
|
// Distributed under the GPLv3 software license, see the accompanying
|
|
// file COPYING or https://www.gnu.org/licenses/gpl-3.0.en.html
|
|
/******************************************************************************
|
|
* Copyright © 2014-2019 The SuperNET Developers. *
|
|
* *
|
|
* See the AUTHORS, DEVELOPER-AGREEMENT and LICENSE files at *
|
|
* the top-level directory of this distribution for the individual copyright *
|
|
* holder information and the developer policies on copyright and licensing. *
|
|
* *
|
|
* Unless otherwise agreed in a custom licensing agreement, no part of the *
|
|
* SuperNET software, including this file may be copied, modified, propagated *
|
|
* or distributed except according to the terms contained in the LICENSE file *
|
|
* *
|
|
* Removal or modification of this copyright notice is prohibited. *
|
|
* *
|
|
******************************************************************************/
|
|
|
|
#ifndef HUSH_MINER_H
|
|
#define HUSH_MINER_H
|
|
|
|
#include "primitives/block.h"
|
|
#include <boost/optional.hpp>
|
|
#include <stdint.h>
|
|
|
|
class CBlockIndex;
|
|
class CScript;
|
|
#ifdef ENABLE_WALLET
|
|
class CReserveKey;
|
|
class CWallet;
|
|
#endif
|
|
namespace Consensus { struct Params; };
|
|
|
|
struct CBlockTemplate
|
|
{
|
|
CBlock block;
|
|
std::vector<CAmount> vTxFees;
|
|
std::vector<int64_t> vTxSigOps;
|
|
};
|
|
#define HUSH_MAXGPUCOUNT 65
|
|
|
|
/** Generate a new block, without valid proof-of-work */
|
|
CBlockTemplate* CreateNewBlock(CPubKey _pk,const CScript& scriptPubKeyIn, int32_t gpucount, bool isStake = false);
|
|
#ifdef ENABLE_WALLET
|
|
boost::optional<CScript> GetMinerScriptPubKey(CReserveKey& reservekey);
|
|
CBlockTemplate* CreateNewBlockWithKey(CReserveKey& reservekey, int32_t nHeight, int32_t gpucount, bool isStake = false);
|
|
#else
|
|
boost::optional<CScript> GetMinerScriptPubKey();
|
|
CBlockTemplate* CreateNewBlockWithKey();
|
|
#endif
|
|
|
|
#ifdef ENABLE_MINING
|
|
/** Modify the extranonce in a block */
|
|
void IncrementExtraNonce(CBlock* pblock, CBlockIndex* pindexPrev, unsigned int& nExtraNonce);
|
|
/** Run the miner threads */
|
|
#ifdef ENABLE_WALLET
|
|
void GenerateBitcoins(bool fGenerate, CWallet* pwallet, int nThreads);
|
|
#else
|
|
void GenerateBitcoins(bool fGenerate, int nThreads);
|
|
#endif
|
|
#endif
|
|
|
|
void UpdateTime(CBlockHeader* pblock, const Consensus::Params& consensusParams, const CBlockIndex* pindexPrev);
|
|
|
|
#endif // HUSH_MINER_H
|
|
|