From fc506524584f7fa722fdce60f58d4855f6aec1fd Mon Sep 17 00:00:00 2001 From: jl777 Date: Sun, 20 Jan 2019 06:24:55 -1100 Subject: [PATCH 01/41] Change error handling --- src/cc/CCutils.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cc/CCutils.cpp b/src/cc/CCutils.cpp index 67ee7d5db..58496333a 100644 --- a/src/cc/CCutils.cpp +++ b/src/cc/CCutils.cpp @@ -673,7 +673,7 @@ bool CClib_Dispatch(const CC *cond,Eval *eval,std::vector paramsNull,co return eval->Invalid("Cannot have params"); else if ( CClib_validate(cp,eval,txTo,nIn) != 0 ) return(true); - return eval->Invalid("error in CClib_validate"); + return(false); //eval->Invalid("error in CClib_validate"); } return eval->Invalid("cclib CC must have evalcode between 16 and 127"); } From 7bf38b4fdb2b9313c74c9866cf6844dc4b84368c Mon Sep 17 00:00:00 2001 From: jl777 Date: Sun, 20 Jan 2019 06:54:59 -1100 Subject: [PATCH 02/41] Pass in height to cclib_validate --- src/cc/CCutils.cpp | 4 ++-- src/cc/cclib.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/cc/CCutils.cpp b/src/cc/CCutils.cpp index 58496333a..4eb6fbbc1 100644 --- a/src/cc/CCutils.cpp +++ b/src/cc/CCutils.cpp @@ -638,7 +638,7 @@ bool ProcessCC(struct CCcontract_info *cp,Eval* eval, std::vector param extern struct CCcontract_info CCinfos[0x100]; extern std::string MYCCLIBNAME; -bool CClib_validate(struct CCcontract_info *cp,Eval *eval,const CTransaction tx,unsigned int nIn); +bool CClib_validate(struct CCcontract_info *cp,int32_t height,Eval *eval,const CTransaction tx,unsigned int nIn); bool CClib_Dispatch(const CC *cond,Eval *eval,std::vector paramsNull,const CTransaction &txTo,unsigned int nIn) { @@ -671,7 +671,7 @@ bool CClib_Dispatch(const CC *cond,Eval *eval,std::vector paramsNull,co CCclearvars(cp); if ( paramsNull.size() != 0 ) // Don't expect params return eval->Invalid("Cannot have params"); - else if ( CClib_validate(cp,eval,txTo,nIn) != 0 ) + else if ( CClib_validate(cp,height,eval,txTo,nIn) != 0 ) return(true); return(false); //eval->Invalid("error in CClib_validate"); } diff --git a/src/cc/cclib.cpp b/src/cc/cclib.cpp index 5a9c3b4af..971258d90 100644 --- a/src/cc/cclib.cpp +++ b/src/cc/cclib.cpp @@ -142,7 +142,7 @@ bool CClibExactAmounts(struct CCcontract_info *cp,Eval* eval,const CTransaction else return(true); } -bool CClib_validate(struct CCcontract_info *cp,Eval *eval,const CTransaction tx,unsigned int nIn) +bool CClib_validate(struct CCcontract_info *cp,int32_t height,Eval *eval,const CTransaction tx,unsigned int nIn) { int32_t numvins,numvouts,preventCCvins,preventCCvouts,i,numblocks; bool retval; uint256 txid; uint8_t hash[32]; char str[65],destaddr[64]; std::vector > txids; From 0cea4b2d11058e61de123cabfb87dd657af54a7f Mon Sep 17 00:00:00 2001 From: jl777 Date: Sun, 20 Jan 2019 21:13:19 -1100 Subject: [PATCH 03/41] +print --- src/komodo_bitcoind.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/komodo_bitcoind.h b/src/komodo_bitcoind.h index 10c6ee4b8..d35683c93 100644 --- a/src/komodo_bitcoind.h +++ b/src/komodo_bitcoind.h @@ -643,15 +643,15 @@ int32_t komodo_isPoS(CBlock *pblock) { txid = pblock->vtx[n-1].vin[0].prevout.hash; vout = pblock->vtx[n-1].vin[0].prevout.n; - if ( ASSETCHAINS_MARMARA != 0 ) - { - fprintf(stderr,"validate proper signature and unlockht preservation\n"); - // need to verify it was signed by the non-Marmarapk of the 1of2 - } txtime = komodo_txtime(&value,txid,vout,destaddr); if ( ExtractDestination(pblock->vtx[n-1].vout[0].scriptPubKey,voutaddress) ) { strcpy(voutaddr,CBitcoinAddress(voutaddress).ToString().c_str()); + if ( ASSETCHAINS_MARMARA != 0 ) + { + fprintf(stderr,"validate proper %s %s signature and unlockht preservation\n",voutaddr,destaddr); + // need to verify it was signed by the non-Marmarapk of the 1of2 + } if ( strcmp(destaddr,voutaddr) == 0 && pblock->vtx[n-1].vout[0].nValue == value ) { //fprintf(stderr,"is PoS block!\n"); From c9a44be0b1276cda887df1a6ccb200d73c3d1b59 Mon Sep 17 00:00:00 2001 From: jl777 Date: Sun, 20 Jan 2019 21:58:23 -1100 Subject: [PATCH 04/41] Marmara PoS check --- src/cc/marmara.cpp | 15 ++++++++++++++ src/komodo_bitcoind.h | 47 +++++++++++++++++++++++++------------------ src/main.cpp | 6 +++--- 3 files changed, 45 insertions(+), 23 deletions(-) diff --git a/src/cc/marmara.cpp b/src/cc/marmara.cpp index 795b95186..98e805c38 100644 --- a/src/cc/marmara.cpp +++ b/src/cc/marmara.cpp @@ -255,6 +255,21 @@ int32_t MarmaraValidateCoinbase(int32_t height,CTransaction tx) return(-1); } +bool MarmaraPoScheck(char *destaddr,CScript opret,CScript scriptPubKey) +{ + CPubKey pk; int32_t height,unlockht; uint8_t funcid; char coinaddr[64]; struct CCcontract_info *cp,C; + if ( opret == scriptPubKey ) + { + cp = CCinit(&C,EVAL_MARMARA); + funcid = DecodeMaramaraCoinbaseOpRet(opret,pk,height,unlockht); + Marmarapk = GetUnspendable(cp,0); + GetCCaddress1of2(cp,coinaddr,Marmarapk,pk); + fprintf(stderr,"matched opret! funcid.%c ht.%d unlock.%d %s\n",funcid,height,unlockht,coinaddr); + return(strcmp(destaddr,coinaddr)); + } + return(0); +} + bool MarmaraValidate(struct CCcontract_info *cp,Eval* eval,const CTransaction &tx, uint32_t nIn) { std::vector vopret; CTransaction vinTx; uint256 hashBlock; int32_t numvins,numvouts,i,ht,unlockht,vht,vunlockht; uint8_t funcid,vfuncid,*script; CPubKey pk,vpk; diff --git a/src/komodo_bitcoind.h b/src/komodo_bitcoind.h index d35683c93..67900ea27 100644 --- a/src/komodo_bitcoind.h +++ b/src/komodo_bitcoind.h @@ -557,9 +557,9 @@ uint64_t komodo_seed(int32_t height) return(seed); } -uint32_t komodo_txtime(uint64_t *valuep,uint256 hash, int32_t n, char *destaddr) +uint32_t komodo_txtime(CScript &opret,uint64_t *valuep,uint256 hash, int32_t n, char *destaddr) { - CTxDestination address; CTransaction tx; uint256 hashBlock; + CTxDestination address; CTransaction tx; uint256 hashBlock; int32_t numvouts; *valuep = 0; if (!GetTransaction(hash, tx, #ifndef KOMODO_ZCASH @@ -570,10 +570,12 @@ uint32_t komodo_txtime(uint64_t *valuep,uint256 hash, int32_t n, char *destaddr) //fprintf(stderr,"ERROR: %s/v%d locktime.%u\n",hash.ToString().c_str(),n,(uint32_t)tx.nLockTime); return(0); } + numvouts = tx.vout.size(); //fprintf(stderr,"%s/v%d locktime.%u\n",hash.ToString().c_str(),n,(uint32_t)tx.nLockTime); - if ( n < tx.vout.size() ) + if ( n < numvouts ) { *valuep = tx.vout[n].nValue; + opret = tx.vout[numvouts-1].scriptPubKey; if (ExtractDestination(tx.vout[n].scriptPubKey, address)) strcpy(destaddr,CBitcoinAddress(address).ToString().c_str()); } @@ -614,12 +616,12 @@ uint32_t komodo_txtime2(uint64_t *valuep,uint256 hash,int32_t n,char *destaddr) int32_t komodo_WhoStaked(CBlock *pblock, CTxDestination &addressout) { - int32_t n,vout; uint32_t txtime; uint64_t value; char voutaddr[64],destaddr[64]; CTxDestination voutaddress; uint256 txid; + int32_t n,vout; uint32_t txtime; uint64_t value; char voutaddr[64],destaddr[64]; CTxDestination voutaddress; uint256 txid; CScript opret; if ( (n= pblock->vtx.size()) > 1 && pblock->vtx[n-1].vin.size() == 1 && pblock->vtx[n-1].vout.size() == 1 ) { txid = pblock->vtx[n-1].vin[0].prevout.hash; vout = pblock->vtx[n-1].vin[0].prevout.n; - txtime = komodo_txtime(&value,txid,vout,destaddr); + 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()); @@ -634,28 +636,33 @@ int32_t komodo_WhoStaked(CBlock *pblock, CTxDestination &addressout) return(0); } -int32_t komodo_isPoS(CBlock *pblock) +bool MarmaraPoScheck(char *destaddr,CScript opret,CScript scriptPubKey); + +int32_t komodo_isPoS(CBlock *pblock,int32_t height) { - int32_t n,vout; uint32_t txtime; uint64_t value; char voutaddr[64],destaddr[64]; CTxDestination voutaddress; uint256 txid; + int32_t n,vout,numvouts; uint32_t txtime; uint64_t value; char voutaddr[64],destaddr[64]; CTxDestination voutaddress; uint256 txid; CScript opret; if ( ASSETCHAINS_STAKED != 0 ) { if ( (n= pblock->vtx.size()) > 1 && pblock->vtx[n-1].vin.size() == 1 && pblock->vtx[n-1].vout.size() == 1 ) { txid = pblock->vtx[n-1].vin[0].prevout.hash; vout = pblock->vtx[n-1].vin[0].prevout.n; - txtime = komodo_txtime(&value,txid,vout,destaddr); + 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()); - if ( ASSETCHAINS_MARMARA != 0 ) + if ( pblock->vtx[n-1].vout[0].nValue == value && strcmp(destaddr,voutaddr) == 0 ) { - fprintf(stderr,"validate proper %s %s signature and unlockht preservation\n",voutaddr,destaddr); - // need to verify it was signed by the non-Marmarapk of the 1of2 - } - if ( strcmp(destaddr,voutaddr) == 0 && pblock->vtx[n-1].vout[0].nValue == value ) - { - //fprintf(stderr,"is PoS block!\n"); - return(1); + if ( ASSETCHAINS_MARMARA == 0 ) + return(1); + else + { + if ( pblock->vtx[n-1].vout[0].scriptPubKey.IsPayToCryptoCondition() != 0 && (numvouts= pblock->vtx[n-1].vout.size()) > 1 ) + { +fprintf(stderr,"validate proper %s %s signature and unlockht preservation\n",voutaddr,destaddr); + return(MarmaraPoScheck(destaddr,opret,pblock->vtx[n-1].vout[numvouts-1].scriptPubKey)); + } + } } } } @@ -1195,7 +1202,7 @@ uint32_t komodo_segid32(char *coinaddr) int8_t komodo_segid(int32_t nocache,int32_t height) { - CTxDestination voutaddress; CBlock block; CBlockIndex *pindex; uint64_t value; uint32_t txtime; char voutaddr[64],destaddr[64]; int32_t txn_count,vout; uint256 txid; int8_t segid = -1; + CTxDestination voutaddress; CBlock block; CBlockIndex *pindex; uint64_t value; uint32_t txtime; char voutaddr[64],destaddr[64]; int32_t txn_count,vout; uint256 txid; CScript opret; int8_t segid = -1; if ( height > 0 && (pindex= komodo_chainactive(height)) != 0 ) { if ( nocache == 0 && pindex->segid >= -1 ) @@ -1207,7 +1214,7 @@ int8_t komodo_segid(int32_t nocache,int32_t height) { txid = block.vtx[txn_count-1].vin[0].prevout.hash; vout = block.vtx[txn_count-1].vin[0].prevout.n; - txtime = komodo_txtime(&value,txid,vout,destaddr); + txtime = komodo_txtime(opret,&value,txid,vout,destaddr); if ( ExtractDestination(block.vtx[txn_count-1].vout[0].scriptPubKey,voutaddress) ) { strcpy(voutaddr,CBitcoinAddress(voutaddress).ToString().c_str()); @@ -1464,7 +1471,7 @@ int32_t komodo_is_PoSblock(int32_t slowflag,int32_t height,CBlock *pblock,arith_ vout = pblock->vtx[txn_count-1].vin[0].prevout.n; if ( prevtime != 0 ) { - if ( komodo_isPoS(pblock) != 0 ) + if ( komodo_isPoS(pblock,height) != 0 ) { eligible = komodo_stake(1,bnTarget,height,txid,vout,pblock->nTime,prevtime+27,(char *)""); } @@ -1500,7 +1507,7 @@ int32_t komodo_is_PoSblock(int32_t slowflag,int32_t height,CBlock *pblock,arith_ } if ( slowflag == 0 && isPoS == 0 ) // maybe previous block is not seen yet, do the best approx { - if ( komodo_isPoS(pblock) != 0 ) + if ( komodo_isPoS(pblock,height) != 0 ) isPoS = 1; } if ( slowflag != 0 && isPoS != 0 ) diff --git a/src/main.cpp b/src/main.cpp index 21b6b4eb0..614f13d44 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -3806,7 +3806,7 @@ bool static DisconnectTip(CValidationState &state, bool fBare = false) { CValidationState stateDummy; // don't keep staking or invalid transactions - if (tx.IsCoinBase() || ((i == (block.vtx.size() - 1)) && (ASSETCHAINS_STAKED && komodo_isPoS((CBlock *)&block) != 0)) || !AcceptToMemoryPool(mempool, stateDummy, tx, false, NULL)) + if (tx.IsCoinBase() || ((i == (block.vtx.size() - 1)) && (ASSETCHAINS_STAKED && komodo_isPoS((CBlock *)&block,pindexDelete->GetHeight()) != 0)) || !AcceptToMemoryPool(mempool, stateDummy, tx, false, NULL)) { mempool.remove(tx, removed, true); } @@ -3837,7 +3837,7 @@ bool static DisconnectTip(CValidationState &state, bool fBare = false) { { CTransaction &tx = block.vtx[i]; //if ((i == (block.vtx.size() - 1)) && ((ASSETCHAINS_LWMAPOS && block.IsVerusPOSBlock()) || (ASSETCHAINS_STAKED != 0 && (komodo_isPoS((CBlock *)&block) != 0)))) - if ((i == (block.vtx.size() - 1)) && (ASSETCHAINS_STAKED != 0 && (komodo_isPoS((CBlock *)&block) != 0))) + if ((i == (block.vtx.size() - 1)) && (ASSETCHAINS_STAKED != 0 && (komodo_isPoS((CBlock *)&block,pindexDelete->GetHeight()) != 0))) { EraseFromWallets(tx.GetHash()); } @@ -4734,7 +4734,7 @@ bool CheckBlock(int32_t *futureblockp,int32_t height,CBlockIndex *pindex,const C CValidationState state; CTransaction Tx; const CTransaction &tx = (CTransaction)block.vtx[i]; - if (tx.IsCoinBase() || !tx.vjoinsplit.empty() || !tx.vShieldedSpend.empty() || ((i == (block.vtx.size() - 1)) && (ASSETCHAINS_STAKED && komodo_isPoS((CBlock *)&block) != 0))) + if (tx.IsCoinBase() || !tx.vjoinsplit.empty() || !tx.vShieldedSpend.empty() || ((i == (block.vtx.size() - 1)) && (ASSETCHAINS_STAKED && komodo_isPoS((CBlock *)&block,height) != 0))) continue; Tx = tx; if ( myAddtomempool(Tx, &state, true) == false ) // happens with out of order tx in block on resync From 2aa12aad792dde6868db3fa4b46f3c4357ef2580 Mon Sep 17 00:00:00 2001 From: jl777 Date: Sun, 20 Jan 2019 21:59:03 -1100 Subject: [PATCH 05/41] Marmarapk --- src/cc/marmara.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cc/marmara.cpp b/src/cc/marmara.cpp index 98e805c38..ca216069a 100644 --- a/src/cc/marmara.cpp +++ b/src/cc/marmara.cpp @@ -257,7 +257,7 @@ int32_t MarmaraValidateCoinbase(int32_t height,CTransaction tx) bool MarmaraPoScheck(char *destaddr,CScript opret,CScript scriptPubKey) { - CPubKey pk; int32_t height,unlockht; uint8_t funcid; char coinaddr[64]; struct CCcontract_info *cp,C; + CPubKey Marmarapk,pk; int32_t height,unlockht; uint8_t funcid; char coinaddr[64]; struct CCcontract_info *cp,C; if ( opret == scriptPubKey ) { cp = CCinit(&C,EVAL_MARMARA); From 9ff5e8de93d73f99f1d3380492412c122e9b4861 Mon Sep 17 00:00:00 2001 From: jl777 Date: Sun, 20 Jan 2019 22:03:15 -1100 Subject: [PATCH 06/41] Test --- src/komodo_bitcoind.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/komodo_bitcoind.h b/src/komodo_bitcoind.h index 67900ea27..877a192f3 100644 --- a/src/komodo_bitcoind.h +++ b/src/komodo_bitcoind.h @@ -661,7 +661,7 @@ int32_t komodo_isPoS(CBlock *pblock,int32_t height) { fprintf(stderr,"validate proper %s %s signature and unlockht preservation\n",voutaddr,destaddr); return(MarmaraPoScheck(destaddr,opret,pblock->vtx[n-1].vout[numvouts-1].scriptPubKey)); - } + } else fprintf(stderr,"reject ht.%d PoS block\n",height); } } } From 00151d02b037aaf9f6202fd7b5c90cf8c04b722e Mon Sep 17 00:00:00 2001 From: jl777 Date: Sun, 20 Jan 2019 23:08:38 -1100 Subject: [PATCH 07/41] Allow old style --- src/komodo_bitcoind.h | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/komodo_bitcoind.h b/src/komodo_bitcoind.h index 877a192f3..77dfbf6ad 100644 --- a/src/komodo_bitcoind.h +++ b/src/komodo_bitcoind.h @@ -661,7 +661,12 @@ int32_t komodo_isPoS(CBlock *pblock,int32_t height) { fprintf(stderr,"validate proper %s %s signature and unlockht preservation\n",voutaddr,destaddr); return(MarmaraPoScheck(destaddr,opret,pblock->vtx[n-1].vout[numvouts-1].scriptPubKey)); - } else fprintf(stderr,"reject ht.%d PoS block\n",height); + } + else + { + fprintf(stderr,"reject ht.%d PoS block\n",height); + return(1); // allow until MTST3 + } } } } @@ -2174,7 +2179,7 @@ int32_t komodo_staked(CMutableTransaction &txNew,uint32_t nBits,uint32_t *blockt { const CScript &scriptPubKey = tx.vout[vout].scriptPubKey; array = komodo_addutxo(array,&numkp,&maxkp,(uint32_t)pindex->nTime,(uint64_t)nValue,txid,vout,coinaddr,hashbuf,(CScript)scriptPubKey); - fprintf(stderr,"addutxo %.8f numkp.%d vs max.%d\n",(double)nValue/COIN,numkp,maxkp); + //fprintf(stderr,"addutxo %.8f numkp.%d vs max.%d\n",(double)nValue/COIN,numkp,maxkp); } } } From 824325ac281b969cf3c70bdd0c719882be57d524 Mon Sep 17 00:00:00 2001 From: jl777 Date: Sun, 20 Jan 2019 23:31:30 -1100 Subject: [PATCH 08/41] MarmaraSignature --- src/cc/marmara.cpp | 29 ++++++++++++++++++++++++++++- src/komodo_bitcoind.h | 23 ++++++++++++----------- 2 files changed, 40 insertions(+), 12 deletions(-) diff --git a/src/cc/marmara.cpp b/src/cc/marmara.cpp index ca216069a..906d268be 100644 --- a/src/cc/marmara.cpp +++ b/src/cc/marmara.cpp @@ -500,7 +500,34 @@ UniValue MarmaraLock(uint64_t txfee,int64_t amount,int32_t height) return(result); } -// jl777: decide on what unlockht settlement change should have +int32_t MarmaraSignature(uint8_t *utxosig,CMutableTransaction &txNew); +{ + uint256 txid,hashBlock; uint8_t *ptr; int32_t i,siglen,vout,numvouts; CTransaction tx; std::string rawtx; CPubKey mypk; std::vector pubkeys; struct CCcontract_info *cp,C; uint64_t txfee + txfee = 10000; + vout = txNew.vin[0].prevout.n; + if ( GetTransaction(txNew.vin[0].prevout.hash,tx,hashBlock,false) != 0 && (numvouts= tx.vout.size()) > 1 && vout < numvouts ) + { + cp = CCinit(&C,EVAL_MARMARA); + mypk = pubkey2pk(Mypubkey()); + mtx.vout.resize(2); + mtx.vout[1].scriptPubKey = tx.vout[numvouts - 1].scriptPubKey; + mtx.vout[1].nValue = 0; + pubkeys.push_back(mypk); + rawtx = FinalizeCCTx(0,cp,mtx,mypk,txfee,tx.vout[numvouts - 1].scriptPubKey,pubkeys); + if ( rawtx.size() > 0 ) + { + siglen = mtx.vin[0].scriptSig.size(); + ptr = mtx.vin[0].scriptSig.data(); + for (i=0; i from utxo making change UniValue MarmaraSettlement(uint64_t txfee,uint256 refbatontxid) { diff --git a/src/komodo_bitcoind.h b/src/komodo_bitcoind.h index 77dfbf6ad..383f4bf40 100644 --- a/src/komodo_bitcoind.h +++ b/src/komodo_bitcoind.h @@ -2081,6 +2081,8 @@ uint32_t komodo_eligible(arith_uint256 bnTarget,arith_uint256 ratio,struct komod return(0); } +int32_t MarmaraSignature(uint8_t *utxosig,CMutableTransaction &txNew); + int32_t komodo_staked(CMutableTransaction &txNew,uint32_t nBits,uint32_t *blocktimep,uint32_t *txtimep,uint256 *utxotxidp,int32_t *utxovoutp,uint64_t *utxovaluep,uint8_t *utxosig) { static struct komodo_staking *array; static int32_t numkp,maxkp; static uint32_t lasttime; @@ -2264,22 +2266,21 @@ int32_t komodo_staked(CMutableTransaction &txNew,uint32_t nBits,uint32_t *blockt if ( ASSETCHAINS_MARMARA == 0 ) { signSuccess = ProduceSignature(TransactionSignatureCreator(&keystore, &txNewConst, 0, *utxovaluep, SIGHASH_ALL), best_scriptPubKey, sigdata, consensusBranchId); - } - else - { - fprintf(stderr,"add opreturn and CCFinalizetx\n"); - // add opreturn - // signSuccess = CCFinalizetx(...) - } - if (!signSuccess) - fprintf(stderr,"failed to create signature\n"); - else - { UpdateTransaction(txNew,0,sigdata); ptr = (uint8_t *)&sigdata.scriptSig[0]; siglen = sigdata.scriptSig.size(); for (i=0; i Date: Sun, 20 Jan 2019 23:32:13 -1100 Subject: [PATCH 09/41] -; --- src/cc/marmara.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cc/marmara.cpp b/src/cc/marmara.cpp index 906d268be..30e4add97 100644 --- a/src/cc/marmara.cpp +++ b/src/cc/marmara.cpp @@ -500,7 +500,7 @@ UniValue MarmaraLock(uint64_t txfee,int64_t amount,int32_t height) return(result); } -int32_t MarmaraSignature(uint8_t *utxosig,CMutableTransaction &txNew); +int32_t MarmaraSignature(uint8_t *utxosig,CMutableTransaction &txNew) { uint256 txid,hashBlock; uint8_t *ptr; int32_t i,siglen,vout,numvouts; CTransaction tx; std::string rawtx; CPubKey mypk; std::vector pubkeys; struct CCcontract_info *cp,C; uint64_t txfee txfee = 10000; From 493b808298267b6be6b8f8aa89e88fb9d122222c Mon Sep 17 00:00:00 2001 From: jl777 Date: Sun, 20 Jan 2019 23:33:00 -1100 Subject: [PATCH 10/41] syntax --- src/cc/marmara.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/cc/marmara.cpp b/src/cc/marmara.cpp index 30e4add97..f8934e406 100644 --- a/src/cc/marmara.cpp +++ b/src/cc/marmara.cpp @@ -500,9 +500,9 @@ UniValue MarmaraLock(uint64_t txfee,int64_t amount,int32_t height) return(result); } -int32_t MarmaraSignature(uint8_t *utxosig,CMutableTransaction &txNew) +int32_t MarmaraSignature(uint8_t *utxosig,CMutableTransaction &mtx) { - uint256 txid,hashBlock; uint8_t *ptr; int32_t i,siglen,vout,numvouts; CTransaction tx; std::string rawtx; CPubKey mypk; std::vector pubkeys; struct CCcontract_info *cp,C; uint64_t txfee + uint256 txid,hashBlock; uint8_t *ptr; int32_t i,siglen,vout,numvouts; CTransaction tx; std::string rawtx; CPubKey mypk; std::vector pubkeys; struct CCcontract_info *cp,C; uint64_t txfee; txfee = 10000; vout = txNew.vin[0].prevout.n; if ( GetTransaction(txNew.vin[0].prevout.hash,tx,hashBlock,false) != 0 && (numvouts= tx.vout.size()) > 1 && vout < numvouts ) From 84b6f664cbd11a904767629a27b18581f0a0eb55 Mon Sep 17 00:00:00 2001 From: jl777 Date: Sun, 20 Jan 2019 23:34:03 -1100 Subject: [PATCH 11/41] Test --- src/cc/marmara.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/cc/marmara.cpp b/src/cc/marmara.cpp index f8934e406..872f3d69f 100644 --- a/src/cc/marmara.cpp +++ b/src/cc/marmara.cpp @@ -504,8 +504,8 @@ int32_t MarmaraSignature(uint8_t *utxosig,CMutableTransaction &mtx) { uint256 txid,hashBlock; uint8_t *ptr; int32_t i,siglen,vout,numvouts; CTransaction tx; std::string rawtx; CPubKey mypk; std::vector pubkeys; struct CCcontract_info *cp,C; uint64_t txfee; txfee = 10000; - vout = txNew.vin[0].prevout.n; - if ( GetTransaction(txNew.vin[0].prevout.hash,tx,hashBlock,false) != 0 && (numvouts= tx.vout.size()) > 1 && vout < numvouts ) + vout = mtx.vin[0].prevout.n; + if ( GetTransaction(mtx.vin[0].prevout.hash,tx,hashBlock,false) != 0 && (numvouts= tx.vout.size()) > 1 && vout < numvouts ) { cp = CCinit(&C,EVAL_MARMARA); mypk = pubkey2pk(Mypubkey()); @@ -517,7 +517,7 @@ int32_t MarmaraSignature(uint8_t *utxosig,CMutableTransaction &mtx) if ( rawtx.size() > 0 ) { siglen = mtx.vin[0].scriptSig.size(); - ptr = mtx.vin[0].scriptSig.data(); + ptr = mtx.vin[0].scriptSig.ptr(); for (i=0; i Date: Sun, 20 Jan 2019 23:35:30 -1100 Subject: [PATCH 12/41] Print --- src/cc/marmara.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/cc/marmara.cpp b/src/cc/marmara.cpp index 872f3d69f..f3e715796 100644 --- a/src/cc/marmara.cpp +++ b/src/cc/marmara.cpp @@ -517,10 +517,13 @@ int32_t MarmaraSignature(uint8_t *utxosig,CMutableTransaction &mtx) if ( rawtx.size() > 0 ) { siglen = mtx.vin[0].scriptSig.size(); - ptr = mtx.vin[0].scriptSig.ptr(); + ptr = &(uint8_t *)&mtx.vin[0].scriptSig; for (i=0; i Date: Sun, 20 Jan 2019 23:37:07 -1100 Subject: [PATCH 13/41] Begin --- src/cc/marmara.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cc/marmara.cpp b/src/cc/marmara.cpp index f3e715796..9d1a3fd9a 100644 --- a/src/cc/marmara.cpp +++ b/src/cc/marmara.cpp @@ -517,7 +517,7 @@ int32_t MarmaraSignature(uint8_t *utxosig,CMutableTransaction &mtx) if ( rawtx.size() > 0 ) { siglen = mtx.vin[0].scriptSig.size(); - ptr = &(uint8_t *)&mtx.vin[0].scriptSig; + ptr = mtx.vin[0].scriptSig.begin(); for (i=0; i Date: Sun, 20 Jan 2019 23:41:03 -1100 Subject: [PATCH 14/41] Test --- src/cc/marmara.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cc/marmara.cpp b/src/cc/marmara.cpp index 9d1a3fd9a..d743746b2 100644 --- a/src/cc/marmara.cpp +++ b/src/cc/marmara.cpp @@ -517,7 +517,7 @@ int32_t MarmaraSignature(uint8_t *utxosig,CMutableTransaction &mtx) if ( rawtx.size() > 0 ) { siglen = mtx.vin[0].scriptSig.size(); - ptr = mtx.vin[0].scriptSig.begin(); + ptr = &mtx.vin[0].scriptSig[0]; for (i=0; i Date: Sun, 20 Jan 2019 23:44:24 -1100 Subject: [PATCH 15/41] Bigger utxosig --- src/miner.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/miner.cpp b/src/miner.cpp index c71bc2461..f8fb8ba5f 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -487,7 +487,7 @@ CBlockTemplate* CreateNewBlock(CPubKey _pk,const CScript& _scriptPubKeyIn, int32 { LEAVE_CRITICAL_SECTION(cs_main); LEAVE_CRITICAL_SECTION(mempool.cs); - uint64_t txfees,utxovalue; uint32_t txtime; uint256 utxotxid; int32_t i,siglen,numsigs,utxovout; uint8_t utxosig[128],*ptr; + uint64_t txfees,utxovalue; uint32_t txtime; uint256 utxotxid; int32_t i,siglen,numsigs,utxovout; uint8_t utxosig[512],*ptr; CMutableTransaction txStaked = CreateNewContextualCMutableTransaction(Params().GetConsensus(), stakeHeight); if (ASSETCHAINS_LWMAPOS != 0) From b1f30fb7def9337d05a929efa63d7d9ed079d187 Mon Sep 17 00:00:00 2001 From: jl777 Date: Sun, 20 Jan 2019 23:46:25 -1100 Subject: [PATCH 16/41] signSuccess --- src/cc/marmara.cpp | 4 ++-- src/komodo_bitcoind.h | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/cc/marmara.cpp b/src/cc/marmara.cpp index d743746b2..97febf8e5 100644 --- a/src/cc/marmara.cpp +++ b/src/cc/marmara.cpp @@ -521,9 +521,9 @@ int32_t MarmaraSignature(uint8_t *utxosig,CMutableTransaction &mtx) for (i=0; i 0 ) + signSuccess = true; + else signSuccess = false; } if (!signSuccess) fprintf(stderr,"failed to create signature\n"); From 6b3ce154c037e668236ef1d9efedde60396c5c43 Mon Sep 17 00:00:00 2001 From: jl777 Date: Sun, 20 Jan 2019 23:47:14 -1100 Subject: [PATCH 17/41] Test --- src/komodo_bitcoind.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/komodo_bitcoind.h b/src/komodo_bitcoind.h index 9a17a71a2..cf2ae585f 100644 --- a/src/komodo_bitcoind.h +++ b/src/komodo_bitcoind.h @@ -2275,7 +2275,7 @@ int32_t komodo_staked(CMutableTransaction &txNew,uint32_t nBits,uint32_t *blockt else { siglen = MarmaraSignature(utxosig,txNew); - if ( signlen > 0 ) + if ( siglen > 0 ) signSuccess = true; else signSuccess = false; } From fe139f33637747c501fd7cd869db385f9359f0c6 Mon Sep 17 00:00:00 2001 From: jl777 Date: Sun, 20 Jan 2019 23:50:32 -1100 Subject: [PATCH 18/41] +print --- src/cc/marmara.cpp | 2 +- src/komodo_bitcoind.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/cc/marmara.cpp b/src/cc/marmara.cpp index 97febf8e5..7fefb9eb6 100644 --- a/src/cc/marmara.cpp +++ b/src/cc/marmara.cpp @@ -523,7 +523,7 @@ int32_t MarmaraSignature(uint8_t *utxosig,CMutableTransaction &mtx) utxosig[i] = ptr[i]; //fprintf(stderr,"%02x",ptr[i]); } - //fprintf(stderr," got signed rawtx.%s siglen.%d\n",rawtx.c_str(),siglen); + fprintf(stderr," got signed rawtx.%s siglen.%d\n",rawtx.c_str(),siglen); return(siglen); } } diff --git a/src/komodo_bitcoind.h b/src/komodo_bitcoind.h index cf2ae585f..1d3926139 100644 --- a/src/komodo_bitcoind.h +++ b/src/komodo_bitcoind.h @@ -651,6 +651,7 @@ int32_t komodo_isPoS(CBlock *pblock,int32_t height) 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 ) From f8ca9c22b709c9eb64205665eb54a6aa3080e458 Mon Sep 17 00:00:00 2001 From: jl777 Date: Sun, 20 Jan 2019 23:54:16 -1100 Subject: [PATCH 19/41] Test --- src/komodo_bitcoind.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/komodo_bitcoind.h b/src/komodo_bitcoind.h index 1d3926139..df1a99a5d 100644 --- a/src/komodo_bitcoind.h +++ b/src/komodo_bitcoind.h @@ -643,7 +643,7 @@ int32_t komodo_isPoS(CBlock *pblock,int32_t height) int32_t n,vout,numvouts; uint32_t txtime; uint64_t value; char voutaddr[64],destaddr[64]; CTxDestination voutaddress; uint256 txid; CScript opret; if ( ASSETCHAINS_STAKED != 0 ) { - if ( (n= pblock->vtx.size()) > 1 && pblock->vtx[n-1].vin.size() == 1 && pblock->vtx[n-1].vout.size() == 1 ) + if ( (n= pblock->vtx.size()) > 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; From 0e7de7412cc16af55cbc33ef5b5d360b853d5479 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 21 Jan 2019 00:00:04 -1100 Subject: [PATCH 20/41] +print --- src/komodo_bitcoind.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/komodo_bitcoind.h b/src/komodo_bitcoind.h index df1a99a5d..195267a78 100644 --- a/src/komodo_bitcoind.h +++ b/src/komodo_bitcoind.h @@ -643,7 +643,9 @@ int32_t komodo_isPoS(CBlock *pblock,int32_t height) int32_t n,vout,numvouts; uint32_t txtime; uint64_t value; char voutaddr[64],destaddr[64]; CTxDestination voutaddress; uint256 txid; CScript opret; if ( ASSETCHAINS_STAKED != 0 ) { - if ( (n= pblock->vtx.size()) > 1 && pblock->vtx[n-1].vin.size() == 1 && pblock->vtx[n-1].vout.size() == 1+(ASSETCHAINS_MARMARA!=0) ) + n = pblock->vtx.size(); + fprintf(stderr,"ht.%d check for PoS numtx.%d numvins.%d numvouts.%d\n",height,n,pblock->vtx[n-1].vin.size(),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; From f4861bdf77e5fd28aa20d9e555f3525cbd5d4e87 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 21 Jan 2019 00:08:07 -1100 Subject: [PATCH 21/41] +print --- src/komodo_bitcoind.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/komodo_bitcoind.h b/src/komodo_bitcoind.h index 195267a78..d40baaf00 100644 --- a/src/komodo_bitcoind.h +++ b/src/komodo_bitcoind.h @@ -1464,12 +1464,13 @@ int32_t komodo_is_PoSblock(int32_t slowflag,int32_t height,CBlock *pblock,arith_ pindex = it != mapBlockIndex.end() ? it->second : NULL; if ( pindex != 0 && pindex->segid >= -1 ) { + fprintf(stderr,"isPoSblock segid.%d\n",pindex->segid); if ( pindex->segid == -1 ) return(0); else return(1); } txn_count = pblock->vtx.size(); - if ( txn_count > 1 && pblock->vtx[txn_count-1].vin.size() == 1 && pblock->vtx[txn_count-1].vout.size() == 1 ) + if ( txn_count > 1 && pblock->vtx[txn_count-1].vin.size() == 1 && pblock->vtx[txn_count-1].vout.size() == 1 + (ASSETCHAINS_MARMARA!=0) ) { it = mapBlockIndex.find(pblock->hashPrevBlock); if ( it != mapBlockIndex.end() && (previndex = it->second) != NULL ) @@ -1784,6 +1785,7 @@ int32_t komodo_checkPOW(int32_t slowflag,CBlock *pblock,int32_t height) bnTarget.SetCompact(pblock->nBits,&fNegative,&fOverflow); bhash = UintToArith256(hash); possible = komodo_block2pubkey33(pubkey33,pblock); +fprintf(stderr,"checkPoW ht.%d\n",height); if ( height == 0 ) { if ( slowflag != 0 ) @@ -1828,6 +1830,7 @@ int32_t komodo_checkPOW(int32_t slowflag,CBlock *pblock,int32_t height) return(-1); } } + fprintf(stderr,"ASSETCHAINS_STAKED.%d ht.%d\n",ASSETCHAINS_STAKED,height); if ( ASSETCHAINS_STAKED != 0 && height >= 2 ) // must PoS or have at least 16x better PoW { if ( (is_PoSblock= komodo_is_PoSblock(slowflag,height,pblock,bnTarget,bhash)) == 0 ) From e8fd52a2b5adf4356056654bfcf1c0d54617f0b1 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 21 Jan 2019 00:12:17 -1100 Subject: [PATCH 22/41] Test --- src/komodo_bitcoind.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/komodo_bitcoind.h b/src/komodo_bitcoind.h index d40baaf00..5e1ec7f66 100644 --- a/src/komodo_bitcoind.h +++ b/src/komodo_bitcoind.h @@ -1470,6 +1470,7 @@ int32_t komodo_is_PoSblock(int32_t slowflag,int32_t height,CBlock *pblock,arith_ else return(1); } txn_count = pblock->vtx.size(); + fprintf(stderr,"checkblock n.%d vins.%d vouts.%d\n",txn_count,pblock->vtx[txn_count-1].vin.size(),pblock->vtx[txn_count-1].vout.size()); if ( txn_count > 1 && pblock->vtx[txn_count-1].vin.size() == 1 && pblock->vtx[txn_count-1].vout.size() == 1 + (ASSETCHAINS_MARMARA!=0) ) { it = mapBlockIndex.find(pblock->hashPrevBlock); From 7cfb6293c6b820426ed7184d4ee12c6cd8152d40 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 21 Jan 2019 00:31:14 -1100 Subject: [PATCH 23/41] komodo_defs a lot more --- src/cc/CCinclude.h | 5 ----- src/chainparams.cpp | 5 ----- src/komodo_bitcoind.h | 2 +- src/komodo_defs.h | 40 ++++++++++++++++++++++++++++++++++++++++ src/metrics.cpp | 3 +-- src/miner.cpp | 9 --------- src/pow.cpp | 5 ++--- src/primitives/block.cpp | 2 +- src/rpc/mining.cpp | 6 ++---- src/rpc/misc.cpp | 3 ++- src/wallet/rpcwallet.cpp | 3 +-- src/wallet/wallet.cpp | 6 ------ 12 files changed, 50 insertions(+), 39 deletions(-) diff --git a/src/cc/CCinclude.h b/src/cc/CCinclude.h index 1953fad34..66c001969 100644 --- a/src/cc/CCinclude.h +++ b/src/cc/CCinclude.h @@ -51,11 +51,6 @@ one other technical note is that komodod has the insight-explorer extensions bui #include "../utlist.h" #include "../uthash.h" -extern int32_t KOMODO_CONNECTING,KOMODO_CCACTIVATE,KOMODO_DEALERNODE; -extern uint32_t ASSETCHAINS_CC; -extern char ASSETCHAINS_SYMBOL[]; -extern std::string CCerror,ASSETCHAINS_CCLIB; -extern uint8_t ASSETCHAINS_CCDISABLES[256]; #define CC_MAXVINS 1024 diff --git a/src/chainparams.cpp b/src/chainparams.cpp index 47f4d48a8..c7232761b 100644 --- a/src/chainparams.cpp +++ b/src/chainparams.cpp @@ -92,11 +92,6 @@ static CBlock CreateGenesisBlock(uint32_t nTime, const uint256& nNonce, const st void *chainparams_commandline(void *ptr); #include "komodo_defs.h" -extern char ASSETCHAINS_SYMBOL[KOMODO_ASSETCHAIN_MAXLEN]; -extern uint16_t ASSETCHAINS_P2PPORT,ASSETCHAINS_RPCPORT; -extern uint32_t ASSETCHAIN_INIT, ASSETCHAINS_MAGIC; -extern int32_t VERUS_BLOCK_POSUNITS, ASSETCHAINS_LWMAPOS, ASSETCHAINS_SAPLING, ASSETCHAINS_OVERWINTER; -extern uint64_t ASSETCHAINS_SUPPLY, ASSETCHAINS_ALGO, ASSETCHAINS_EQUIHASH, ASSETCHAINS_VERUSHASH; const arith_uint256 maxUint = UintToArith256(uint256S("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff")); diff --git a/src/komodo_bitcoind.h b/src/komodo_bitcoind.h index 5e1ec7f66..9d0ea3228 100644 --- a/src/komodo_bitcoind.h +++ b/src/komodo_bitcoind.h @@ -1470,7 +1470,7 @@ int32_t komodo_is_PoSblock(int32_t slowflag,int32_t height,CBlock *pblock,arith_ else return(1); } txn_count = pblock->vtx.size(); - fprintf(stderr,"checkblock n.%d vins.%d vouts.%d\n",txn_count,pblock->vtx[txn_count-1].vin.size(),pblock->vtx[txn_count-1].vout.size()); + fprintf(stderr,"checkblock n.%d vins.%d vouts.%d %.8f %.8f\n",txn_count,pblock->vtx[txn_count-1].vin.size(),pblock->vtx[txn_count-1].vout.size(),(double)pblock->vtx[txn_count-1].vout[0].nValue/COIN,(doube)pblock->vtx[txn_count-1].vout[1].nValue/COIN); if ( txn_count > 1 && pblock->vtx[txn_count-1].vin.size() == 1 && pblock->vtx[txn_count-1].vout.size() == 1 + (ASSETCHAINS_MARMARA!=0) ) { it = mapBlockIndex.find(pblock->hashPrevBlock); diff --git a/src/komodo_defs.h b/src/komodo_defs.h index 91fcadddb..47916d5c4 100644 --- a/src/komodo_defs.h +++ b/src/komodo_defs.h @@ -36,5 +36,45 @@ extern uint8_t ASSETCHAINS_TXPOW,ASSETCHAINS_PUBLIC; int32_t MAX_BLOCK_SIZE(int32_t height); +extern char ASSETCHAINS_SYMBOL[KOMODO_ASSETCHAIN_MAXLEN]; +extern uint16_t ASSETCHAINS_P2PPORT,ASSETCHAINS_RPCPORT; +extern uint32_t ASSETCHAIN_INIT, ASSETCHAINS_MAGIC; +extern int32_t VERUS_BLOCK_POSUNITS, ASSETCHAINS_LWMAPOS, ASSETCHAINS_SAPLING, ASSETCHAINS_OVERWINTER; +extern uint64_t ASSETCHAINS_SUPPLY; + +extern uint64_t ASSETCHAINS_TIMELOCKGTE; +extern uint32_t ASSETCHAINS_ALGO, ASSETCHAINS_VERUSHASH,ASSETCHAINS_EQUIHASH; + +extern int32_t KOMODO_MININGTHREADS,KOMODO_LONGESTCHAIN,ASSETCHAINS_SEED,IS_KOMODO_NOTARY,USE_EXTERNAL_PUBKEY,KOMODO_CHOSEN_ONE,ASSETCHAIN_INIT,KOMODO_INITDONE,KOMODO_ON_DEMAND,KOMODO_INITDONE,KOMODO_PASSPORT_INITDONE; +extern uint64_t ASSETCHAINS_COMMISSION, ASSETCHAINS_STAKED; +extern bool VERUS_MINTBLOCKS; +extern uint64_t ASSETCHAINS_REWARD[ASSETCHAINS_MAX_ERAS], ASSETCHAINS_TIMELOCKGTE, ASSETCHAINS_NONCEMASK[]; +extern const char *ASSETCHAINS_ALGORITHMS[]; +extern int32_t VERUS_MIN_STAKEAGE, ASSETCHAINS_ALGO, ASSETCHAINS_EQUIHASH; +extern uint32_t ASSETCHAINS_VERUSHASH, ASSETCHAINS_LASTERA, ASSETCHAINS_LWMAPOS, ASSETCHAINS_NONCESHIFT[], ASSETCHAINS_HASHESPERROUND[]; +extern char ASSETCHAINS_SYMBOL[KOMODO_ASSETCHAIN_MAXLEN]; +extern std::string NOTARY_PUBKEY,ASSETCHAINS_OVERRIDE_PUBKEY,ASSETCHAINS_SCRIPTPUB; +extern uint8_t NOTARY_PUBKEY33[33],ASSETCHAINS_OVERRIDE_PUBKEY33[33],ASSETCHAINS_MARMARA; + +extern uint32_t ASSETCHAINS_ALGO, ASSETCHAINS_EQUIHASH, ASSETCHAINS_STAKED; +extern char ASSETCHAINS_SYMBOL[65]; +extern int32_t ASSETCHAINS_LWMAPOS,VERUS_BLOCK_POSUNITS, VERUS_CONSECUTIVE_POS_THRESHOLD, VERUS_NOPOS_THRESHHOLD; + +extern int32_t ASSETCHAINS_EQUIHASH, ASSETCHAINS_LWMAPOS; + +extern int32_t KOMODO_CONNECTING,KOMODO_CCACTIVATE,KOMODO_DEALERNODE; +extern uint32_t ASSETCHAINS_CC; +extern char ASSETCHAINS_SYMBOL[]; +extern std::string CCerror,ASSETCHAINS_CCLIB; +extern uint8_t ASSETCHAINS_CCDISABLES[256]; + +extern int32_t USE_EXTERNAL_PUBKEY; +extern std::string NOTARY_PUBKEY; +extern int32_t KOMODO_EXCHANGEWALLET; +extern char ASSETCHAINS_SYMBOL[KOMODO_ASSETCHAIN_MAXLEN]; +extern int32_t VERUS_MIN_STAKEAGE; +extern std::string DONATION_PUBKEY; +extern uint8_t ASSETCHAINS_PRIVATE; +extern int32_t USE_EXTERNAL_PUBKEY; #endif diff --git a/src/metrics.cpp b/src/metrics.cpp index a01d381a1..6b387f7dc 100644 --- a/src/metrics.cpp +++ b/src/metrics.cpp @@ -39,8 +39,7 @@ #endif #include -extern uint64_t ASSETCHAINS_TIMELOCKGTE; -extern uint32_t ASSETCHAINS_ALGO, ASSETCHAINS_VERUSHASH; +#include "komodo_defs.h" int64_t komodo_block_unlocktime(uint32_t nHeight); void AtomicTimer::start() diff --git a/src/miner.cpp b/src/miner.cpp index f8fb8ba5f..78eb84e7b 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -132,17 +132,8 @@ void UpdateTime(CBlockHeader* pblock, const Consensus::Params& consensusParams, #include "komodo_defs.h" extern CCriticalSection cs_metrics; -extern int32_t KOMODO_MININGTHREADS,KOMODO_LONGESTCHAIN,ASSETCHAINS_SEED,IS_KOMODO_NOTARY,USE_EXTERNAL_PUBKEY,KOMODO_CHOSEN_ONE,ASSETCHAIN_INIT,KOMODO_INITDONE,KOMODO_ON_DEMAND,KOMODO_INITDONE,KOMODO_PASSPORT_INITDONE; -extern uint64_t ASSETCHAINS_COMMISSION, ASSETCHAINS_STAKED; -extern bool VERUS_MINTBLOCKS; -extern uint64_t ASSETCHAINS_REWARD[ASSETCHAINS_MAX_ERAS], ASSETCHAINS_TIMELOCKGTE, ASSETCHAINS_NONCEMASK[]; -extern const char *ASSETCHAINS_ALGORITHMS[]; -extern int32_t VERUS_MIN_STAKEAGE, ASSETCHAINS_ALGO, ASSETCHAINS_EQUIHASH, ASSETCHAINS_VERUSHASH, ASSETCHAINS_LASTERA, ASSETCHAINS_LWMAPOS, ASSETCHAINS_NONCESHIFT[], ASSETCHAINS_HASHESPERROUND[]; -extern char ASSETCHAINS_SYMBOL[KOMODO_ASSETCHAIN_MAXLEN]; -extern std::string NOTARY_PUBKEY,ASSETCHAINS_OVERRIDE_PUBKEY,ASSETCHAINS_SCRIPTPUB; void vcalc_sha256(char deprecated[(256 >> 3) * 2 + 1],uint8_t hash[256 >> 3],uint8_t *src,int32_t len); -extern uint8_t NOTARY_PUBKEY33[33],ASSETCHAINS_OVERRIDE_PUBKEY33[33],ASSETCHAINS_MARMARA; uint32_t Mining_start,Mining_height; int32_t My_notaryid = -1; int32_t komodo_chosennotary(int32_t *notaryidp,int32_t height,uint8_t *pubkey33,uint32_t timestamp); diff --git a/src/pow.cpp b/src/pow.cpp index b69c4fce6..cc2b0b7c2 100644 --- a/src/pow.cpp +++ b/src/pow.cpp @@ -37,9 +37,8 @@ #endif // ENABLE_RUST uint32_t komodo_chainactive_timestamp(); -extern uint32_t ASSETCHAINS_ALGO, ASSETCHAINS_EQUIHASH, ASSETCHAINS_STAKED; -extern char ASSETCHAINS_SYMBOL[65]; -extern int32_t ASSETCHAINS_LWMAPOS,VERUS_BLOCK_POSUNITS, VERUS_CONSECUTIVE_POS_THRESHOLD, VERUS_NOPOS_THRESHHOLD; +#include "komodo_defs.h" + unsigned int lwmaGetNextWorkRequired(const CBlockIndex* pindexLast, const CBlockHeader *pblock, const Consensus::Params& params); unsigned int lwmaCalculateNextWorkRequired(const CBlockIndex* pindexLast, const Consensus::Params& params); diff --git a/src/primitives/block.cpp b/src/primitives/block.cpp index 00fc8cee9..bb3314760 100644 --- a/src/primitives/block.cpp +++ b/src/primitives/block.cpp @@ -24,8 +24,8 @@ #include "tinyformat.h" #include "utilstrencodings.h" #include "crypto/common.h" +#include "komodo_defs.h" -extern uint32_t ASSETCHAINS_ALGO, ASSETCHAINS_VERUSHASH; // default hash algorithm for block uint256 (CBlockHeader::*CBlockHeader::hashFunction)() const = &CBlockHeader::GetSHA256DHash; diff --git a/src/rpc/mining.cpp b/src/rpc/mining.cpp index a0643528d..ff9b1b4c4 100644 --- a/src/rpc/mining.cpp +++ b/src/rpc/mining.cpp @@ -48,10 +48,8 @@ using namespace std; -extern int32_t ASSETCHAINS_ALGO, ASSETCHAINS_EQUIHASH, ASSETCHAINS_LWMAPOS; -extern uint64_t ASSETCHAINS_STAKED; -extern int32_t KOMODO_MININGTHREADS; -extern bool VERUS_MINTBLOCKS; +#include "komodo_defs.h" + arith_uint256 komodo_PoWtarget(int32_t *percPoSp,arith_uint256 target,int32_t height,int32_t goalperc); /** diff --git a/src/rpc/misc.cpp b/src/rpc/misc.cpp index 0ebfa7b25..2491055d1 100644 --- a/src/rpc/misc.cpp +++ b/src/rpc/misc.cpp @@ -77,7 +77,8 @@ int32_t notarizedtxid_height(char *dest,char *txidstr,int32_t *kmdnotarized_heig extern uint16_t ASSETCHAINS_P2PPORT,ASSETCHAINS_RPCPORT; extern uint32_t ASSETCHAINS_CC; extern uint32_t ASSETCHAINS_MAGIC; -extern uint64_t ASSETCHAINS_COMMISSION,ASSETCHAINS_STAKED,ASSETCHAINS_SUPPLY,ASSETCHAINS_LASTERA; +extern uint64_t ASSETCHAINS_COMMISSION,ASSETCHAINS_STAKED,ASSETCHAINS_SUPPLY; +extern uint32_t ASSETCHAINS_LASTERA; extern int32_t ASSETCHAINS_LWMAPOS,ASSETCHAINS_SAPLING; extern uint64_t ASSETCHAINS_ENDSUBSIDY[],ASSETCHAINS_REWARD[],ASSETCHAINS_HALVING[],ASSETCHAINS_DECAY[]; extern std::string NOTARY_PUBKEY; extern uint8_t NOTARY_PUBKEY33[]; diff --git a/src/wallet/rpcwallet.cpp b/src/wallet/rpcwallet.cpp index 174f447f0..3acee9c1f 100644 --- a/src/wallet/rpcwallet.cpp +++ b/src/wallet/rpcwallet.cpp @@ -57,6 +57,7 @@ #include +#include "komodo_defs.h" using namespace std; @@ -67,8 +68,6 @@ const std::string ADDR_TYPE_SPROUT = "sprout"; const std::string ADDR_TYPE_SAPLING = "sapling"; extern UniValue TxJoinSplitToJSON(const CTransaction& tx); -extern uint8_t ASSETCHAINS_PRIVATE; -extern int32_t USE_EXTERNAL_PUBKEY; uint32_t komodo_segid32(char *coinaddr); int32_t komodo_dpowconfs(int32_t height,int32_t numconfs); int32_t komodo_isnotaryvout(char *coinaddr); // from ac_private chains only diff --git a/src/wallet/wallet.cpp b/src/wallet/wallet.cpp index 0000f8d42..d171812c4 100644 --- a/src/wallet/wallet.cpp +++ b/src/wallet/wallet.cpp @@ -59,13 +59,7 @@ bool fSendFreeTransactions = false; bool fPayAtLeastCustomFee = true; #include "komodo_defs.h" -extern int32_t USE_EXTERNAL_PUBKEY; -extern std::string NOTARY_PUBKEY; -extern int32_t KOMODO_EXCHANGEWALLET; -extern char ASSETCHAINS_SYMBOL[KOMODO_ASSETCHAIN_MAXLEN]; -extern int32_t VERUS_MIN_STAKEAGE; CBlockIndex *komodo_chainactive(int32_t height); -extern std::string DONATION_PUBKEY; /** * Fees smaller than this (in satoshi) are considered zero fee (for transaction creation) From 2cb2b335d7d7826f508ab09991cfc97d0ceeaf60 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 21 Jan 2019 00:34:19 -1100 Subject: [PATCH 24/41] Prune inconsistent refs --- src/komodo_defs.h | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/komodo_defs.h b/src/komodo_defs.h index 47916d5c4..bfb49a973 100644 --- a/src/komodo_defs.h +++ b/src/komodo_defs.h @@ -45,22 +45,21 @@ extern uint64_t ASSETCHAINS_SUPPLY; extern uint64_t ASSETCHAINS_TIMELOCKGTE; extern uint32_t ASSETCHAINS_ALGO, ASSETCHAINS_VERUSHASH,ASSETCHAINS_EQUIHASH; -extern int32_t KOMODO_MININGTHREADS,KOMODO_LONGESTCHAIN,ASSETCHAINS_SEED,IS_KOMODO_NOTARY,USE_EXTERNAL_PUBKEY,KOMODO_CHOSEN_ONE,ASSETCHAIN_INIT,KOMODO_INITDONE,KOMODO_ON_DEMAND,KOMODO_INITDONE,KOMODO_PASSPORT_INITDONE; +extern int32_t KOMODO_MININGTHREADS,KOMODO_LONGESTCHAIN,ASSETCHAINS_SEED,IS_KOMODO_NOTARY,USE_EXTERNAL_PUBKEY,KOMODO_CHOSEN_ONE,KOMODO_INITDONE,KOMODO_ON_DEMAND,KOMODO_INITDONE,KOMODO_PASSPORT_INITDONE; extern uint64_t ASSETCHAINS_COMMISSION, ASSETCHAINS_STAKED; extern bool VERUS_MINTBLOCKS; extern uint64_t ASSETCHAINS_REWARD[ASSETCHAINS_MAX_ERAS], ASSETCHAINS_TIMELOCKGTE, ASSETCHAINS_NONCEMASK[]; extern const char *ASSETCHAINS_ALGORITHMS[]; -extern int32_t VERUS_MIN_STAKEAGE, ASSETCHAINS_ALGO, ASSETCHAINS_EQUIHASH; -extern uint32_t ASSETCHAINS_VERUSHASH, ASSETCHAINS_LASTERA, ASSETCHAINS_LWMAPOS, ASSETCHAINS_NONCESHIFT[], ASSETCHAINS_HASHESPERROUND[]; +extern int32_t VERUS_MIN_STAKEAGE, ASSETCHAINS_ALGO; +extern uint32_t ASSETCHAINS_VERUSHASH, ASSETCHAINS_LASTERA, ASSETCHAINS_NONCESHIFT[], ASSETCHAINS_HASHESPERROUND[]; extern char ASSETCHAINS_SYMBOL[KOMODO_ASSETCHAIN_MAXLEN]; extern std::string NOTARY_PUBKEY,ASSETCHAINS_OVERRIDE_PUBKEY,ASSETCHAINS_SCRIPTPUB; extern uint8_t NOTARY_PUBKEY33[33],ASSETCHAINS_OVERRIDE_PUBKEY33[33],ASSETCHAINS_MARMARA; -extern uint32_t ASSETCHAINS_ALGO, ASSETCHAINS_EQUIHASH, ASSETCHAINS_STAKED; +extern uint32_t ASSETCHAINS_ALGO; extern char ASSETCHAINS_SYMBOL[65]; -extern int32_t ASSETCHAINS_LWMAPOS,VERUS_BLOCK_POSUNITS, VERUS_CONSECUTIVE_POS_THRESHOLD, VERUS_NOPOS_THRESHHOLD; +extern int32_t VERUS_BLOCK_POSUNITS, VERUS_CONSECUTIVE_POS_THRESHOLD, VERUS_NOPOS_THRESHHOLD; -extern int32_t ASSETCHAINS_EQUIHASH, ASSETCHAINS_LWMAPOS; extern int32_t KOMODO_CONNECTING,KOMODO_CCACTIVATE,KOMODO_DEALERNODE; extern uint32_t ASSETCHAINS_CC; From f22c02d1fddb9fed236c9750379724acc1b482a5 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 21 Jan 2019 00:36:06 -1100 Subject: [PATCH 25/41] Test --- src/bitcoind.cpp | 3 ++- src/komodo_defs.h | 3 +-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/bitcoind.cpp b/src/bitcoind.cpp index 86d3165cf..b2fa534a1 100644 --- a/src/bitcoind.cpp +++ b/src/bitcoind.cpp @@ -94,7 +94,8 @@ void WaitForShutdown(boost::thread_group* threadGroup) // // Start // -extern int32_t IS_KOMODO_NOTARY,USE_EXTERNAL_PUBKEY,ASSETCHAIN_INIT; +extern int32_t IS_KOMODO_NOTARY,USE_EXTERNAL_PUBKEY; +extern uint32_t ASSETCHAIN_INIT; extern std::string NOTARY_PUBKEY; int32_t komodo_is_issuer(); void komodo_passport_iteration(); diff --git a/src/komodo_defs.h b/src/komodo_defs.h index bfb49a973..b22b6279e 100644 --- a/src/komodo_defs.h +++ b/src/komodo_defs.h @@ -50,13 +50,12 @@ extern uint64_t ASSETCHAINS_COMMISSION, ASSETCHAINS_STAKED; extern bool VERUS_MINTBLOCKS; extern uint64_t ASSETCHAINS_REWARD[ASSETCHAINS_MAX_ERAS], ASSETCHAINS_TIMELOCKGTE, ASSETCHAINS_NONCEMASK[]; extern const char *ASSETCHAINS_ALGORITHMS[]; -extern int32_t VERUS_MIN_STAKEAGE, ASSETCHAINS_ALGO; +extern int32_t VERUS_MIN_STAKEAGE; extern uint32_t ASSETCHAINS_VERUSHASH, ASSETCHAINS_LASTERA, ASSETCHAINS_NONCESHIFT[], ASSETCHAINS_HASHESPERROUND[]; extern char ASSETCHAINS_SYMBOL[KOMODO_ASSETCHAIN_MAXLEN]; extern std::string NOTARY_PUBKEY,ASSETCHAINS_OVERRIDE_PUBKEY,ASSETCHAINS_SCRIPTPUB; extern uint8_t NOTARY_PUBKEY33[33],ASSETCHAINS_OVERRIDE_PUBKEY33[33],ASSETCHAINS_MARMARA; -extern uint32_t ASSETCHAINS_ALGO; extern char ASSETCHAINS_SYMBOL[65]; extern int32_t VERUS_BLOCK_POSUNITS, VERUS_CONSECUTIVE_POS_THRESHOLD, VERUS_NOPOS_THRESHHOLD; From 51a6360f57b8a33e58284d319f6e24ef1c8c4df8 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 21 Jan 2019 00:41:59 -1100 Subject: [PATCH 26/41] Fix --- src/komodo_bitcoind.h | 6 +++--- src/komodo_defs.h | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/komodo_bitcoind.h b/src/komodo_bitcoind.h index 9d0ea3228..cd12bb255 100644 --- a/src/komodo_bitcoind.h +++ b/src/komodo_bitcoind.h @@ -644,7 +644,7 @@ int32_t komodo_isPoS(CBlock *pblock,int32_t height) if ( ASSETCHAINS_STAKED != 0 ) { n = pblock->vtx.size(); - fprintf(stderr,"ht.%d check for PoS numtx.%d numvins.%d numvouts.%d\n",height,n,pblock->vtx[n-1].vin.size(),pblock->vtx[n-1].vout.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; @@ -1470,7 +1470,7 @@ int32_t komodo_is_PoSblock(int32_t slowflag,int32_t height,CBlock *pblock,arith_ else return(1); } txn_count = pblock->vtx.size(); - fprintf(stderr,"checkblock n.%d vins.%d vouts.%d %.8f %.8f\n",txn_count,pblock->vtx[txn_count-1].vin.size(),pblock->vtx[txn_count-1].vout.size(),(double)pblock->vtx[txn_count-1].vout[0].nValue/COIN,(doube)pblock->vtx[txn_count-1].vout[1].nValue/COIN); + fprintf(stderr,"checkblock n.%d vins.%d vouts.%d %.8f %.8f\n",txn_count,pblock->vtx[txn_count-1].vin.size(),pblock->vtx[txn_count-1].vout.size(),(double)pblock->vtx[txn_count-1].vout[0].nValue/COIN,(double)pblock->vtx[txn_count-1].vout[1].nValue/COIN); if ( txn_count > 1 && pblock->vtx[txn_count-1].vin.size() == 1 && pblock->vtx[txn_count-1].vout.size() == 1 + (ASSETCHAINS_MARMARA!=0) ) { it = mapBlockIndex.find(pblock->hashPrevBlock); @@ -1831,7 +1831,7 @@ fprintf(stderr,"checkPoW ht.%d\n",height); return(-1); } } - fprintf(stderr,"ASSETCHAINS_STAKED.%d ht.%d\n",ASSETCHAINS_STAKED,height); + fprintf(stderr,"ASSETCHAINS_STAKED.%d ht.%d\n",(int32_t)ASSETCHAINS_STAKED,height); if ( ASSETCHAINS_STAKED != 0 && height >= 2 ) // must PoS or have at least 16x better PoW { if ( (is_PoSblock= komodo_is_PoSblock(slowflag,height,pblock,bnTarget,bhash)) == 0 ) diff --git a/src/komodo_defs.h b/src/komodo_defs.h index b22b6279e..0ea97d6db 100644 --- a/src/komodo_defs.h +++ b/src/komodo_defs.h @@ -43,9 +43,9 @@ extern int32_t VERUS_BLOCK_POSUNITS, ASSETCHAINS_LWMAPOS, ASSETCHAINS_SAPLING, A extern uint64_t ASSETCHAINS_SUPPLY; extern uint64_t ASSETCHAINS_TIMELOCKGTE; -extern uint32_t ASSETCHAINS_ALGO, ASSETCHAINS_VERUSHASH,ASSETCHAINS_EQUIHASH; +extern uint32_t ASSETCHAINS_ALGO, ASSETCHAINS_VERUSHASH,ASSETCHAINS_EQUIHASH,KOMODO_INITDONE; -extern int32_t KOMODO_MININGTHREADS,KOMODO_LONGESTCHAIN,ASSETCHAINS_SEED,IS_KOMODO_NOTARY,USE_EXTERNAL_PUBKEY,KOMODO_CHOSEN_ONE,KOMODO_INITDONE,KOMODO_ON_DEMAND,KOMODO_INITDONE,KOMODO_PASSPORT_INITDONE; +extern int32_t KOMODO_MININGTHREADS,KOMODO_LONGESTCHAIN,ASSETCHAINS_SEED,IS_KOMODO_NOTARY,USE_EXTERNAL_PUBKEY,KOMODO_CHOSEN_ONE,KOMODO_ON_DEMAND,KOMODO_PASSPORT_INITDONE; extern uint64_t ASSETCHAINS_COMMISSION, ASSETCHAINS_STAKED; extern bool VERUS_MINTBLOCKS; extern uint64_t ASSETCHAINS_REWARD[ASSETCHAINS_MAX_ERAS], ASSETCHAINS_TIMELOCKGTE, ASSETCHAINS_NONCEMASK[]; From 92cf6d266736a5f37af3550167fd3f84cb891d4d Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 21 Jan 2019 00:47:55 -1100 Subject: [PATCH 27/41] Fixes --- src/komodo_bitcoind.h | 2 +- src/rpc/misc.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/komodo_bitcoind.h b/src/komodo_bitcoind.h index cd12bb255..eb033f96a 100644 --- a/src/komodo_bitcoind.h +++ b/src/komodo_bitcoind.h @@ -1470,7 +1470,7 @@ int32_t komodo_is_PoSblock(int32_t slowflag,int32_t height,CBlock *pblock,arith_ else return(1); } txn_count = pblock->vtx.size(); - fprintf(stderr,"checkblock n.%d vins.%d vouts.%d %.8f %.8f\n",txn_count,pblock->vtx[txn_count-1].vin.size(),pblock->vtx[txn_count-1].vout.size(),(double)pblock->vtx[txn_count-1].vout[0].nValue/COIN,(double)pblock->vtx[txn_count-1].vout[1].nValue/COIN); + fprintf(stderr,"checkblock n.%d vins.%d vouts.%d %.8f %.8f\n",txn_count,(int32_t)pblock->vtx[txn_count-1].vin.size(),(int32_t)pblock->vtx[txn_count-1].vout.size(),(double)pblock->vtx[txn_count-1].vout[0].nValue/COIN,(double)pblock->vtx[txn_count-1].vout[1].nValue/COIN); if ( txn_count > 1 && pblock->vtx[txn_count-1].vin.size() == 1 && pblock->vtx[txn_count-1].vout.size() == 1 + (ASSETCHAINS_MARMARA!=0) ) { it = mapBlockIndex.find(pblock->hashPrevBlock); diff --git a/src/rpc/misc.cpp b/src/rpc/misc.cpp index 2491055d1..e6d8025b1 100644 --- a/src/rpc/misc.cpp +++ b/src/rpc/misc.cpp @@ -225,7 +225,7 @@ UniValue getinfo(const UniValue& params, bool fHelp) } } if (ASSETCHAINS_LASTERA > 0) - obj.push_back(Pair("eras", ASSETCHAINS_LASTERA + 1)); + obj.push_back(Pair("eras", (int64_t)(ASSETCHAINS_LASTERA + 1))); obj.push_back(Pair("reward", acReward)); obj.push_back(Pair("halving", acHalving)); obj.push_back(Pair("decay", acDecay)); From 8caf315c91473a627e614b863dce2f9f0d201b1b Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 21 Jan 2019 00:51:31 -1100 Subject: [PATCH 28/41] Test --- src/wallet/rpcwallet.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/wallet/rpcwallet.cpp b/src/wallet/rpcwallet.cpp index 3acee9c1f..a47c18356 100644 --- a/src/wallet/rpcwallet.cpp +++ b/src/wallet/rpcwallet.cpp @@ -5171,7 +5171,6 @@ int32_t verus_staked(CBlock *pBlock, CMutableTransaction &txNew, uint32_t &nBits int32_t ensure_CCrequirements() { - extern uint8_t NOTARY_PUBKEY33[]; CCerror = ""; if ( NOTARY_PUBKEY33[0] == 0 ) return(-1); From e02762dfaad6847918991238b83f6b532b683957 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 21 Jan 2019 00:52:36 -1100 Subject: [PATCH 29/41] Test --- src/wallet/rpcwallet.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/wallet/rpcwallet.cpp b/src/wallet/rpcwallet.cpp index a47c18356..8180c9239 100644 --- a/src/wallet/rpcwallet.cpp +++ b/src/wallet/rpcwallet.cpp @@ -5260,8 +5260,6 @@ UniValue setpubkey(const UniValue& params, bool fHelp) char Raddress[18]; uint8_t pubkey33[33]; - extern uint8_t NOTARY_PUBKEY33[]; - extern std::string NOTARY_PUBKEY; if ( NOTARY_PUBKEY33[0] == 0 ) { if (strlen(params[0].get_str().c_str()) == 66) { decode_hex(pubkey33,33,(char *)params[0].get_str().c_str()); From 089d2114466eb8543235c033688f7a661615ed01 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 21 Jan 2019 01:03:54 -1100 Subject: [PATCH 30/41] Test --- src/cc/marmara.cpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/cc/marmara.cpp b/src/cc/marmara.cpp index 7fefb9eb6..def21763a 100644 --- a/src/cc/marmara.cpp +++ b/src/cc/marmara.cpp @@ -509,9 +509,6 @@ int32_t MarmaraSignature(uint8_t *utxosig,CMutableTransaction &mtx) { cp = CCinit(&C,EVAL_MARMARA); mypk = pubkey2pk(Mypubkey()); - mtx.vout.resize(2); - mtx.vout[1].scriptPubKey = tx.vout[numvouts - 1].scriptPubKey; - mtx.vout[1].nValue = 0; pubkeys.push_back(mypk); rawtx = FinalizeCCTx(0,cp,mtx,mypk,txfee,tx.vout[numvouts - 1].scriptPubKey,pubkeys); if ( rawtx.size() > 0 ) From b516423fed2daea7f9ccd9166deffe274f6c5c9e Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 21 Jan 2019 01:07:50 -1100 Subject: [PATCH 31/41] -print --- src/cc/marmara.cpp | 2 +- src/komodo_bitcoind.h | 11 +++++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/cc/marmara.cpp b/src/cc/marmara.cpp index def21763a..db794c33b 100644 --- a/src/cc/marmara.cpp +++ b/src/cc/marmara.cpp @@ -265,7 +265,7 @@ bool MarmaraPoScheck(char *destaddr,CScript opret,CScript scriptPubKey) Marmarapk = GetUnspendable(cp,0); GetCCaddress1of2(cp,coinaddr,Marmarapk,pk); fprintf(stderr,"matched opret! funcid.%c ht.%d unlock.%d %s\n",funcid,height,unlockht,coinaddr); - return(strcmp(destaddr,coinaddr)); + return(strcmp(destaddr,coinaddr) == 0); } return(0); } diff --git a/src/komodo_bitcoind.h b/src/komodo_bitcoind.h index eb033f96a..c2d2716c1 100644 --- a/src/komodo_bitcoind.h +++ b/src/komodo_bitcoind.h @@ -644,7 +644,7 @@ int32_t komodo_isPoS(CBlock *pblock,int32_t height) if ( ASSETCHAINS_STAKED != 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()); + //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; @@ -662,7 +662,7 @@ int32_t komodo_isPoS(CBlock *pblock,int32_t height) { if ( pblock->vtx[n-1].vout[0].scriptPubKey.IsPayToCryptoCondition() != 0 && (numvouts= pblock->vtx[n-1].vout.size()) > 1 ) { -fprintf(stderr,"validate proper %s %s signature and unlockht preservation\n",voutaddr,destaddr); +//fprintf(stderr,"validate proper %s %s signature and unlockht preservation\n",voutaddr,destaddr); return(MarmaraPoScheck(destaddr,opret,pblock->vtx[n-1].vout[numvouts-1].scriptPubKey)); } else @@ -1464,13 +1464,13 @@ int32_t komodo_is_PoSblock(int32_t slowflag,int32_t height,CBlock *pblock,arith_ pindex = it != mapBlockIndex.end() ? it->second : NULL; if ( pindex != 0 && pindex->segid >= -1 ) { - fprintf(stderr,"isPoSblock segid.%d\n",pindex->segid); + //fprintf(stderr,"isPoSblock segid.%d\n",pindex->segid); if ( pindex->segid == -1 ) return(0); else return(1); } txn_count = pblock->vtx.size(); - fprintf(stderr,"checkblock n.%d vins.%d vouts.%d %.8f %.8f\n",txn_count,(int32_t)pblock->vtx[txn_count-1].vin.size(),(int32_t)pblock->vtx[txn_count-1].vout.size(),(double)pblock->vtx[txn_count-1].vout[0].nValue/COIN,(double)pblock->vtx[txn_count-1].vout[1].nValue/COIN); + //fprintf(stderr,"checkblock n.%d vins.%d vouts.%d %.8f %.8f\n",txn_count,(int32_t)pblock->vtx[txn_count-1].vin.size(),(int32_t)pblock->vtx[txn_count-1].vout.size(),(double)pblock->vtx[txn_count-1].vout[0].nValue/COIN,(double)pblock->vtx[txn_count-1].vout[1].nValue/COIN); if ( txn_count > 1 && pblock->vtx[txn_count-1].vin.size() == 1 && pblock->vtx[txn_count-1].vout.size() == 1 + (ASSETCHAINS_MARMARA!=0) ) { it = mapBlockIndex.find(pblock->hashPrevBlock); @@ -1786,7 +1786,6 @@ int32_t komodo_checkPOW(int32_t slowflag,CBlock *pblock,int32_t height) bnTarget.SetCompact(pblock->nBits,&fNegative,&fOverflow); bhash = UintToArith256(hash); possible = komodo_block2pubkey33(pubkey33,pblock); -fprintf(stderr,"checkPoW ht.%d\n",height); if ( height == 0 ) { if ( slowflag != 0 ) @@ -1831,7 +1830,7 @@ fprintf(stderr,"checkPoW ht.%d\n",height); return(-1); } } - fprintf(stderr,"ASSETCHAINS_STAKED.%d ht.%d\n",(int32_t)ASSETCHAINS_STAKED,height); + //fprintf(stderr,"ASSETCHAINS_STAKED.%d ht.%d\n",(int32_t)ASSETCHAINS_STAKED,height); if ( ASSETCHAINS_STAKED != 0 && height >= 2 ) // must PoS or have at least 16x better PoW { if ( (is_PoSblock= komodo_is_PoSblock(slowflag,height,pblock,bnTarget,bhash)) == 0 ) From 7422ae2038221259712d378b976d979bbad0f788 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 21 Jan 2019 01:24:16 -1100 Subject: [PATCH 32/41] +print --- src/cc/marmara.cpp | 7 +++++-- src/komodo_bitcoind.h | 8 ++++---- src/miner.cpp | 2 +- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/cc/marmara.cpp b/src/cc/marmara.cpp index db794c33b..3ddbac581 100644 --- a/src/cc/marmara.cpp +++ b/src/cc/marmara.cpp @@ -255,10 +255,13 @@ int32_t MarmaraValidateCoinbase(int32_t height,CTransaction tx) return(-1); } -bool MarmaraPoScheck(char *destaddr,CScript opret,CScript scriptPubKey) +bool MarmaraPoScheck(char *destaddr,CScript opret,CTransaction staketx) { CPubKey Marmarapk,pk; int32_t height,unlockht; uint8_t funcid; char coinaddr[64]; struct CCcontract_info *cp,C; - if ( opret == scriptPubKey ) + UniValue result(UniValue::VOBJ); + TxToJSON(tx, uint256(), result); + fprintf(stderr,"%s\n",result.ToString()); + if ( staketx.vout.size() == 2 && opret == staketx.vout[1].scriptPubKey ) { cp = CCinit(&C,EVAL_MARMARA); funcid = DecodeMaramaraCoinbaseOpRet(opret,pk,height,unlockht); diff --git a/src/komodo_bitcoind.h b/src/komodo_bitcoind.h index c2d2716c1..bdcad8d7b 100644 --- a/src/komodo_bitcoind.h +++ b/src/komodo_bitcoind.h @@ -636,7 +636,7 @@ int32_t komodo_WhoStaked(CBlock *pblock, CTxDestination &addressout) return(0); } -bool MarmaraPoScheck(char *destaddr,CScript opret,CScript scriptPubKey); +bool MarmaraPoScheck(char *destaddr,CScript opret,CTransaction staketx); int32_t komodo_isPoS(CBlock *pblock,int32_t height) { @@ -653,17 +653,17 @@ int32_t komodo_isPoS(CBlock *pblock,int32_t height) 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); + //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()) > 1 ) + 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].vout[numvouts-1].scriptPubKey)); + return(MarmaraPoScheck(destaddr,opret,pblock->vtx[n-1])); } else { diff --git a/src/miner.cpp b/src/miner.cpp index 78eb84e7b..01ff9da0c 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -512,7 +512,7 @@ CBlockTemplate* CreateNewBlock(CPubKey _pk,const CScript& _scriptPubKeyIn, int32 pblocktemplate->vTxSigOps.push_back(GetLegacySigOpCount(txStaked)); nFees += txfees; pblock->nTime = blocktime; - //printf("staking PoS ht.%d t%u lag.%u\n",(int32_t)chainActive.LastTip()->GetHeight()+1,blocktime,(uint32_t)(GetAdjustedTime() - (blocktime-13))); +printf("staking PoS ht.%d t%u lag.%u\n",(int32_t)chainActive.LastTip()->GetHeight()+1,blocktime,(uint32_t)(GetAdjustedTime() - (blocktime-13))); } else return(0); //fprintf(stderr,"no utxos eligible for staking\n"); } // Create coinbase tx From dbb103571e4c4a463dbf9abb74a16a42d23e51fd Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 21 Jan 2019 01:26:37 -1100 Subject: [PATCH 33/41] Test --- src/cc/marmara.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/cc/marmara.cpp b/src/cc/marmara.cpp index 3ddbac581..40d8b1efb 100644 --- a/src/cc/marmara.cpp +++ b/src/cc/marmara.cpp @@ -258,9 +258,7 @@ int32_t MarmaraValidateCoinbase(int32_t height,CTransaction tx) bool MarmaraPoScheck(char *destaddr,CScript opret,CTransaction staketx) { CPubKey Marmarapk,pk; int32_t height,unlockht; uint8_t funcid; char coinaddr[64]; struct CCcontract_info *cp,C; - UniValue result(UniValue::VOBJ); - TxToJSON(tx, uint256(), result); - fprintf(stderr,"%s\n",result.ToString()); + fprintf(stderr,"numvins.%d numvouts.%d\n",(int32_t)statketx.vin.size(),(int32_t)statketx.vout.size(),(double),(int32_t)statketx.vout[0].nValue/COIN); if ( staketx.vout.size() == 2 && opret == staketx.vout[1].scriptPubKey ) { cp = CCinit(&C,EVAL_MARMARA); From aa2ebd7fc41e9b1334bc9d14a0840c608f22910e Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 21 Jan 2019 01:27:19 -1100 Subject: [PATCH 34/41] staketx --- src/cc/marmara.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cc/marmara.cpp b/src/cc/marmara.cpp index 40d8b1efb..c739a9203 100644 --- a/src/cc/marmara.cpp +++ b/src/cc/marmara.cpp @@ -258,7 +258,7 @@ int32_t MarmaraValidateCoinbase(int32_t height,CTransaction tx) bool MarmaraPoScheck(char *destaddr,CScript opret,CTransaction staketx) { CPubKey Marmarapk,pk; int32_t height,unlockht; uint8_t funcid; char coinaddr[64]; struct CCcontract_info *cp,C; - fprintf(stderr,"numvins.%d numvouts.%d\n",(int32_t)statketx.vin.size(),(int32_t)statketx.vout.size(),(double),(int32_t)statketx.vout[0].nValue/COIN); + fprintf(stderr,"numvins.%d numvouts.%d\n",(int32_t)staketx.vin.size(),(int32_t)staketx.vout.size(),(double),(int32_t)staketx.vout[0].nValue/COIN); if ( staketx.vout.size() == 2 && opret == staketx.vout[1].scriptPubKey ) { cp = CCinit(&C,EVAL_MARMARA); From ee69d8f4f8d5a8f374899e0cf48470bde734fccb Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 21 Jan 2019 01:28:31 -1100 Subject: [PATCH 35/41] Test --- src/cc/marmara.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cc/marmara.cpp b/src/cc/marmara.cpp index c739a9203..8a5ead91b 100644 --- a/src/cc/marmara.cpp +++ b/src/cc/marmara.cpp @@ -258,7 +258,7 @@ int32_t MarmaraValidateCoinbase(int32_t height,CTransaction tx) bool MarmaraPoScheck(char *destaddr,CScript opret,CTransaction staketx) { CPubKey Marmarapk,pk; int32_t height,unlockht; uint8_t funcid; char coinaddr[64]; struct CCcontract_info *cp,C; - fprintf(stderr,"numvins.%d numvouts.%d\n",(int32_t)staketx.vin.size(),(int32_t)staketx.vout.size(),(double),(int32_t)staketx.vout[0].nValue/COIN); + fprintf(stderr,"numvins.%d numvouts.%d\n",(int32_t)staketx.vin.size(),(int32_t)staketx.vout.size(),(double)staketx.vout[0].nValue/COIN); if ( staketx.vout.size() == 2 && opret == staketx.vout[1].scriptPubKey ) { cp = CCinit(&C,EVAL_MARMARA); From 3c5385e0402551eb0c6732063a120ca4f8b322b3 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 21 Jan 2019 01:29:19 -1100 Subject: [PATCH 36/41] Test --- src/cc/marmara.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cc/marmara.cpp b/src/cc/marmara.cpp index 8a5ead91b..de6018972 100644 --- a/src/cc/marmara.cpp +++ b/src/cc/marmara.cpp @@ -258,7 +258,7 @@ int32_t MarmaraValidateCoinbase(int32_t height,CTransaction tx) bool MarmaraPoScheck(char *destaddr,CScript opret,CTransaction staketx) { CPubKey Marmarapk,pk; int32_t height,unlockht; uint8_t funcid; char coinaddr[64]; struct CCcontract_info *cp,C; - fprintf(stderr,"numvins.%d numvouts.%d\n",(int32_t)staketx.vin.size(),(int32_t)staketx.vout.size(),(double)staketx.vout[0].nValue/COIN); + fprintf(stderr,"numvins.%d numvouts.%d %.8f\n",(int32_t)staketx.vin.size(),(int32_t)staketx.vout.size(),(double)staketx.vout[0].nValue/COIN); if ( staketx.vout.size() == 2 && opret == staketx.vout[1].scriptPubKey ) { cp = CCinit(&C,EVAL_MARMARA); From cae100974056d84a1c9845fc6fcc293d15b049b5 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 21 Jan 2019 01:33:27 -1100 Subject: [PATCH 37/41] Test --- src/cc/marmara.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cc/marmara.cpp b/src/cc/marmara.cpp index de6018972..5adc12d43 100644 --- a/src/cc/marmara.cpp +++ b/src/cc/marmara.cpp @@ -258,7 +258,7 @@ int32_t MarmaraValidateCoinbase(int32_t height,CTransaction tx) bool MarmaraPoScheck(char *destaddr,CScript opret,CTransaction staketx) { CPubKey Marmarapk,pk; int32_t height,unlockht; uint8_t funcid; char coinaddr[64]; struct CCcontract_info *cp,C; - fprintf(stderr,"numvins.%d numvouts.%d %.8f\n",(int32_t)staketx.vin.size(),(int32_t)staketx.vout.size(),(double)staketx.vout[0].nValue/COIN); + fprintf(stderr,"%s numvins.%d numvouts.%d %.8f opret[%d]\n",staketx.GetHash().ToString().c_str(),(int32_t)staketx.vin.size(),(int32_t)staketx.vout.size(),(double)staketx.vout[0].nValue/COIN,(int32_t)opret.size()); if ( staketx.vout.size() == 2 && opret == staketx.vout[1].scriptPubKey ) { cp = CCinit(&C,EVAL_MARMARA); From d4520254969223ecc78cb02599f5d4b5d5c77902 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 21 Jan 2019 01:39:45 -1100 Subject: [PATCH 38/41] Filter staking utxo --- src/komodo_bitcoind.h | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/komodo_bitcoind.h b/src/komodo_bitcoind.h index bdcad8d7b..39b905e86 100644 --- a/src/komodo_bitcoind.h +++ b/src/komodo_bitcoind.h @@ -2170,7 +2170,7 @@ int32_t komodo_staked(CMutableTransaction &txNew,uint32_t nBits,uint32_t *blockt } else { - struct CCcontract_info *cp,C; uint256 txid; int32_t vout; CAmount nValue; char coinaddr[64]; CPubKey mypk,Marmarapk; + struct CCcontract_info *cp,C; uint256 txid; int32_t vout,ht,unlockht; CAmount nValue; char coinaddr[64]; CPubKey mypk,Marmarapk,pk; std::vector > unspentOutputs; cp = CCinit(&C,EVAL_MARMARA); mypk = pubkey2pk(Mypubkey()); @@ -2186,8 +2186,12 @@ int32_t komodo_staked(CMutableTransaction &txNew,uint32_t nBits,uint32_t *blockt if ( GetTransaction(txid,tx,hashBlock,true) != 0 && (pindex= komodo_getblockindex(hashBlock)) != 0 && myIsutxo_spentinmempool(txid,vout) == 0 ) { const CScript &scriptPubKey = tx.vout[vout].scriptPubKey; - array = komodo_addutxo(array,&numkp,&maxkp,(uint32_t)pindex->nTime,(uint64_t)nValue,txid,vout,coinaddr,hashbuf,(CScript)scriptPubKey); - //fprintf(stderr,"addutxo %.8f numkp.%d vs max.%d\n",(double)nValue/COIN,numkp,maxkp); + if ( DecodeMaramaraCoinbaseOpRet(tx.vout[tx.vout.size()-1].scriptPubKey,pk,ht,unlockht) != 0 && pk == mypk ) + { + array = komodo_addutxo(array,&numkp,&maxkp,(uint32_t)pindex->nTime,(uint64_t)nValue,txid,vout,coinaddr,hashbuf,(CScript)scriptPubKey); + } + else + fprintf(stderr,"SKIP addutxo %.8f numkp.%d vs max.%d\n",(double)nValue/COIN,numkp,maxkp); } } } From 3dcea8bd51c323806123600f81af07bff993f654 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 21 Jan 2019 01:40:51 -1100 Subject: [PATCH 39/41] Test --- src/komodo_bitcoind.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/komodo_bitcoind.h b/src/komodo_bitcoind.h index 39b905e86..09bc4b9fa 100644 --- a/src/komodo_bitcoind.h +++ b/src/komodo_bitcoind.h @@ -2088,6 +2088,7 @@ uint32_t komodo_eligible(arith_uint256 bnTarget,arith_uint256 ratio,struct komod } int32_t MarmaraSignature(uint8_t *utxosig,CMutableTransaction &txNew); +uint8_t DecodeMaramaraCoinbaseOpRet(const CScript scriptPubKey,CPubKey &pk,int32_t &height,int32_t &unlockht); int32_t komodo_staked(CMutableTransaction &txNew,uint32_t nBits,uint32_t *blocktimep,uint32_t *txtimep,uint256 *utxotxidp,int32_t *utxovoutp,uint64_t *utxovaluep,uint8_t *utxosig) { From c2e1da32786660f780c9f905ec36d7cb81e1a0e5 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 21 Jan 2019 01:44:31 -1100 Subject: [PATCH 40/41] Allow coinbase spending --- src/cc/marmara.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/cc/marmara.cpp b/src/cc/marmara.cpp index 5adc12d43..9062ab2b8 100644 --- a/src/cc/marmara.cpp +++ b/src/cc/marmara.cpp @@ -334,6 +334,10 @@ bool MarmaraValidate(struct CCcontract_info *cp,Eval* eval,const CTransaction &t { return(true); } + else if ( funcid == 'C' ) // coinbase + { + return(true); + } // staking only for locked utxo } return eval->Invalid("fall through error"); From b9f15395d7fafeaf690672ad1445d14e86f134fd Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 21 Jan 2019 01:46:48 -1100 Subject: [PATCH 41/41] -print --- src/cc/marmara.cpp | 8 ++++---- src/komodo_bitcoind.h | 3 +-- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/cc/marmara.cpp b/src/cc/marmara.cpp index 9062ab2b8..8f8de12e2 100644 --- a/src/cc/marmara.cpp +++ b/src/cc/marmara.cpp @@ -94,7 +94,7 @@ uint8_t DecodeMaramaraCoinbaseOpRet(const CScript scriptPubKey,CPubKey &pk,int32 { return(script[1]); } else fprintf(stderr,"DecodeMaramaraCoinbaseOpRet unmarshal error for %c\n",script[1]); - } else fprintf(stderr,"script[1] is %d != 'C' %d or 'P' %d or 'L' %d\n",script[1],'C','P','L'); + } //else fprintf(stderr,"script[1] is %d != 'C' %d or 'P' %d or 'L' %d\n",script[1],'C','P','L'); } else fprintf(stderr,"vopret.size() is %d\n",(int32_t)vopret.size()); return(0); } @@ -258,14 +258,14 @@ int32_t MarmaraValidateCoinbase(int32_t height,CTransaction tx) bool MarmaraPoScheck(char *destaddr,CScript opret,CTransaction staketx) { CPubKey Marmarapk,pk; int32_t height,unlockht; uint8_t funcid; char coinaddr[64]; struct CCcontract_info *cp,C; - fprintf(stderr,"%s numvins.%d numvouts.%d %.8f opret[%d]\n",staketx.GetHash().ToString().c_str(),(int32_t)staketx.vin.size(),(int32_t)staketx.vout.size(),(double)staketx.vout[0].nValue/COIN,(int32_t)opret.size()); + //fprintf(stderr,"%s numvins.%d numvouts.%d %.8f opret[%d]\n",staketx.GetHash().ToString().c_str(),(int32_t)staketx.vin.size(),(int32_t)staketx.vout.size(),(double)staketx.vout[0].nValue/COIN,(int32_t)opret.size()); if ( staketx.vout.size() == 2 && opret == staketx.vout[1].scriptPubKey ) { cp = CCinit(&C,EVAL_MARMARA); funcid = DecodeMaramaraCoinbaseOpRet(opret,pk,height,unlockht); Marmarapk = GetUnspendable(cp,0); GetCCaddress1of2(cp,coinaddr,Marmarapk,pk); - fprintf(stderr,"matched opret! funcid.%c ht.%d unlock.%d %s\n",funcid,height,unlockht,coinaddr); + //fprintf(stderr,"matched opret! funcid.%c ht.%d unlock.%d %s\n",funcid,height,unlockht,coinaddr); return(strcmp(destaddr,coinaddr) == 0); } return(0); @@ -525,7 +525,7 @@ int32_t MarmaraSignature(uint8_t *utxosig,CMutableTransaction &mtx) utxosig[i] = ptr[i]; //fprintf(stderr,"%02x",ptr[i]); } - fprintf(stderr," got signed rawtx.%s siglen.%d\n",rawtx.c_str(),siglen); + //fprintf(stderr," got signed rawtx.%s siglen.%d\n",rawtx.c_str(),siglen); return(siglen); } } diff --git a/src/komodo_bitcoind.h b/src/komodo_bitcoind.h index 09bc4b9fa..19ec0546b 100644 --- a/src/komodo_bitcoind.h +++ b/src/komodo_bitcoind.h @@ -2191,8 +2191,7 @@ int32_t komodo_staked(CMutableTransaction &txNew,uint32_t nBits,uint32_t *blockt { array = komodo_addutxo(array,&numkp,&maxkp,(uint32_t)pindex->nTime,(uint64_t)nValue,txid,vout,coinaddr,hashbuf,(CScript)scriptPubKey); } - else - fprintf(stderr,"SKIP addutxo %.8f numkp.%d vs max.%d\n",(double)nValue/COIN,numkp,maxkp); + // else fprintf(stderr,"SKIP addutxo %.8f numkp.%d vs max.%d\n",(double)nValue/COIN,numkp,maxkp); } } }