diff --git a/src/komodo_bitcoind.h b/src/komodo_bitcoind.h index beb3c0fb3..fdfaa0669 100644 --- a/src/komodo_bitcoind.h +++ b/src/komodo_bitcoind.h @@ -695,15 +695,8 @@ int32_t komodo_WhoStaked(CBlock *pblock, CTxDestination &addressout) return(0); } -int32_t komodo_newStakerActive(int32_t height, uint32_t timestamp) -{ - if ( timestamp > nStakedDecemberHardforkTimestamp || komodo_heightstamp(height) > nStakedDecemberHardforkTimestamp ) //December 2019 hardfork - return(1); - else return(0); -} - int32_t komodo_hasOpRet(int32_t height, uint32_t timestamp) -{ +{ return((ASSETCHAINS_MARMARA!=0 || komodo_newStakerActive(height, timestamp) == 1)); } @@ -715,69 +708,14 @@ bool komodo_checkopret(CBlock *pblock, CScript &merkleroot) bool komodo_hardfork_active(uint32_t time) { + //TODO: set a block height for ~ Jan 21 3pm return ( (ASSETCHAINS_SYMBOL[0] == 0 && chainActive.Height() > nDecemberHardforkHeight) || (ASSETCHAINS_SYMBOL[0] != 0 && time > nStakedDecemberHardforkTimestamp) ); //December 2019 hardfork } bool MarmaraPoScheck(char *destaddr,CScript opret,CTransaction staketx); -int32_t komodo_isPoS2(CBlock *pblock) -{ - CBlockIndex *pindex = komodo_blockindex(pblock->GetHash()); - if ( pindex != 0 && pindex->segid >= -1 ) - { - //fprintf(stderr,"isPoSblock segid.%d\n",pindex->segid); - if ( pindex->segid == -1 ) - return(0); - else return(1); - } - return (-1); -} - int32_t komodo_isPoS(CBlock *pblock,int32_t height,bool fJustCheck) { - int32_t n,vout,numvouts,ret; uint32_t txtime; uint64_t value; char voutaddr[64],destaddr[64]; CTxDestination voutaddress; uint256 txid; CScript opret; - if ( ASSETCHAINS_STAKED != 0 ) - { - if ( fJustCheck ) - { - // check pindex first, if that does not work, continue with slow check. - if ( (ret= komodo_isPoS2(pblock)) == 1 ) - return (1); - else if ( ret == 0 ) - return (0); - } - n = pblock->vtx.size(); - //fprintf(stderr,"ht.%d check for PoS numtx.%d numvins.%d numvouts.%d\n",height,n,(int32_t)pblock->vtx[n-1].vin.size(),(int32_t)pblock->vtx[n-1].vout.size()); - if ( n > 1 && pblock->vtx[n-1].vin.size() == 1 && pblock->vtx[n-1].vout.size() == 1+(ASSETCHAINS_MARMARA!=0) ) - { - txid = pblock->vtx[n-1].vin[0].prevout.hash; - vout = pblock->vtx[n-1].vin[0].prevout.n; - txtime = komodo_txtime(opret,&value,txid,vout,destaddr); - if ( ExtractDestination(pblock->vtx[n-1].vout[0].scriptPubKey,voutaddress) ) - { - strcpy(voutaddr,CBitcoinAddress(voutaddress).ToString().c_str()); - //fprintf(stderr,"voutaddr.%s vs destaddr.%s\n",voutaddr,destaddr); - if ( pblock->vtx[n-1].vout[0].nValue == value && strcmp(destaddr,voutaddr) == 0 ) - { - if ( ASSETCHAINS_MARMARA == 0 ) - return(1); - else - { - if ( pblock->vtx[n-1].vout[0].scriptPubKey.IsPayToCryptoCondition() != 0 && (numvouts= pblock->vtx[n-1].vout.size()) == 2 ) - { -//fprintf(stderr,"validate proper %s %s signature and unlockht preservation\n",voutaddr,destaddr); - return(MarmaraPoScheck(destaddr,opret,pblock->vtx[n-1])); - } - else - { - fprintf(stderr,"reject ht.%d PoS block\n",height); - return(strcmp(ASSETCHAINS_SYMBOL,"MTST2") == 0); // allow until MTST3 - } - } - } - } - } - } return(0); }