X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=src%2Fminer.h;h=40167af9b617c7179aba5acb034dd2a47b6ca35b;hb=f54055f01b2a21b9e634e7d614a2982d49cf4f7e;hp=07196e52ea3213f9b671b88bd9df09ca2722e925;hpb=d5c1cb354fa50539f836ea337284679d56b84c3b;p=novacoin.git diff --git a/src/miner.h b/src/miner.h index 07196e5..40167af 100644 --- a/src/miner.h +++ b/src/miner.h @@ -8,23 +8,27 @@ #include "main.h" #include "wallet.h" +#include -/** Generate a new block, without valid proof-of-work */ -CBlock* CreateNewBlock(CWallet* pwallet, bool fProofOfStake=false); +/* Generate a new block, without valid proof-of-work/with provided proof-of-stake */ +std::shared_ptr CreateNewBlock(CWallet* pwallet, CTransaction *txAdd=NULL); /** Modify the extranonce in a block */ -void IncrementExtraNonce(CBlock* pblock, CBlockIndex* pindexPrev, unsigned int& nExtraNonce); +void IncrementExtraNonce(std::shared_ptr& pblock, CBlockIndex* pindexPrev, unsigned int& nExtraNonce); /** Do mining precalculation */ -void FormatHashBuffers(CBlock* pblock, char* pmidstate, char* pdata, char* phash1); +void FormatHashBuffers(const std::shared_ptr& pblock, char* pmidstate, char* pdata, char* phash1); /** Check mined proof-of-work block */ -bool CheckWork(CBlock* pblock, CWallet& wallet, CReserveKey& reservekey); +bool CheckWork(const std::shared_ptr& pblock, CWallet& wallet, CReserveKey& reservekey); /** Check mined proof-of-stake block */ -bool CheckStake(CBlock* pblock, CWallet& wallet); +bool CheckStake(const std::shared_ptr& pblock, CWallet& wallet); /** Base sha256 mining transform */ void SHA256Transform(void* pstate, void* pinput, const void* pinit); +/** Stake miner thread */ +void ThreadStakeMiner(void* parg); + #endif // NOVACOIN_MINER_H