|
|
@ -663,7 +663,7 @@ CBlockTemplate* CreateNewBlock(CPubKey _pk,const CScript& _scriptPubKeyIn, int32 |
|
|
|
// Create a local variable instead of modifying the global ASSETCHAINS_SCRIPTPUB
|
|
|
|
auto assetchains_scriptpub = devtax_scriptpub_for_height(nHeight); |
|
|
|
|
|
|
|
if ( nHeight > 1 && SMART_CHAIN_SYMBOL[0] != 0 && (ASSETCHAINS_OVERRIDE_PUBKEY33[0] != 0 || assetchains_scriptpub.size() > 1) && (ASSETCHAINS_COMMISSION != 0 || ASSETCHAINS_FOUNDERS_REWARD != 0) && (commission= the_commission((CBlock*)&pblocktemplate->block,(int32_t)nHeight)) != 0 ) |
|
|
|
if ( nHeight > 1 && (ASSETCHAINS_OVERRIDE_PUBKEY33[0] != 0 || assetchains_scriptpub.size() > 1) && (ASSETCHAINS_COMMISSION != 0 || ASSETCHAINS_FOUNDERS_REWARD != 0) && (commission= the_commission((CBlock*)&pblocktemplate->block,(int32_t)nHeight)) != 0 ) |
|
|
|
{ |
|
|
|
int32_t i; uint8_t *ptr; |
|
|
|
txNew.vout.resize(2); |
|
|
@ -749,13 +749,14 @@ CBlockTemplate* CreateNewBlock(CPubKey _pk,const CScript& _scriptPubKeyIn, int32 |
|
|
|
pblock->hashFinalSaplingRoot = sapling_tree.root(); |
|
|
|
|
|
|
|
// all PoS chains need this data in the block at all times
|
|
|
|
if ( ASSETCHAINS_LWMAPOS || SMART_CHAIN_SYMBOL[0] == 0 || ASSETCHAINS_STAKED == 0 || HUSH_MININGTHREADS > 0 ) |
|
|
|
if ( ASSETCHAINS_LWMAPOS || ASSETCHAINS_STAKED == 0 || HUSH_MININGTHREADS > 0 ) |
|
|
|
{ |
|
|
|
UpdateTime(pblock, Params().GetConsensus(), pindexPrev); |
|
|
|
pblock->nBits = GetNextWorkRequired(pindexPrev, pblock, Params().GetConsensus()); |
|
|
|
} |
|
|
|
pblock->nSolution.clear(); |
|
|
|
pblocktemplate->vTxSigOps[0] = GetLegacySigOpCount(pblock->vtx[0]); |
|
|
|
/*
|
|
|
|
if ( SMART_CHAIN_SYMBOL[0] == 0 && IS_HUSH_NOTARY != 0 && My_notaryid >= 0 ) |
|
|
|
{ |
|
|
|
uint32_t r; CScript opret; void **ptr=0; |
|
|
@ -792,14 +793,15 @@ CBlockTemplate* CreateNewBlock(CPubKey _pk,const CScript& _scriptPubKeyIn, int32 |
|
|
|
} |
|
|
|
return(0); |
|
|
|
} |
|
|
|
} |
|
|
|
else if ( ASSETCHAINS_CC == 0 && pindexPrev != 0 && ASSETCHAINS_STAKED == 0 && (SMART_CHAIN_SYMBOL[0] != 0 || IS_HUSH_NOTARY == 0 || My_notaryid < 0) ) |
|
|
|
} else */ |
|
|
|
|
|
|
|
if ( ASSETCHAINS_CC == 0 && pindexPrev != 0 && ASSETCHAINS_STAKED == 0 && (SMART_CHAIN_SYMBOL[0] != 0 || IS_HUSH_NOTARY == 0 || My_notaryid < 0) ) |
|
|
|
{ |
|
|
|
CValidationState state; |
|
|
|
//fprintf(stderr,"%s: check validity\n", __func__);
|
|
|
|
if ( !TestBlockValidity(state, *pblock, pindexPrev, false, false)) // invokes CC checks
|
|
|
|
{ |
|
|
|
if ( SMART_CHAIN_SYMBOL[0] == 0 || (SMART_CHAIN_SYMBOL[0] != 0 && !isStake) ) |
|
|
|
if ( (SMART_CHAIN_SYMBOL[0] != 0 && !isStake) ) |
|
|
|
{ |
|
|
|
LEAVE_CRITICAL_SECTION(cs_main); |
|
|
|
LEAVE_CRITICAL_SECTION(mempool.cs); |
|
|
@ -811,7 +813,7 @@ CBlockTemplate* CreateNewBlock(CPubKey _pk,const CScript& _scriptPubKeyIn, int32 |
|
|
|
//fprintf(stderr,"valid\n");
|
|
|
|
} |
|
|
|
} |
|
|
|
if ( SMART_CHAIN_SYMBOL[0] == 0 || (SMART_CHAIN_SYMBOL[0] != 0 && !isStake) ) |
|
|
|
if ( (SMART_CHAIN_SYMBOL[0] != 0 && !isStake) ) |
|
|
|
{ |
|
|
|
LEAVE_CRITICAL_SECTION(cs_main); |
|
|
|
LEAVE_CRITICAL_SECTION(mempool.cs); |
|
|
@ -820,7 +822,6 @@ CBlockTemplate* CreateNewBlock(CPubKey _pk,const CScript& _scriptPubKeyIn, int32 |
|
|
|
return pblocktemplate.release(); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// Internal miner
|
|
|
|
|
|
|
|
#ifdef ENABLE_MINING |
|
|
|