From add7f889fd862c0825afde268778e401f6ff53ca Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 9 Apr 2018 18:38:38 +0300 Subject: [PATCH] Test --- src/komodo_gateway.h | 2 ++ src/wallet/rpcwallet.cpp | 27 ++++++++++++--------------- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/src/komodo_gateway.h b/src/komodo_gateway.h index 232a78eb1..e1c8ec4fd 100644 --- a/src/komodo_gateway.h +++ b/src/komodo_gateway.h @@ -675,6 +675,8 @@ uint32_t komodo_stake(int32_t nHeight,uint256 hash,int32_t n,uint32_t blocktime, uint32_t txtime,minutes; uint64_t value,coinage; txtime = komodo_txtime(&value,hash,n); minutes = (blocktime - txtime) / 60; + if ( txtime == 0 ) + txtime = prevtime; coinage = value * (blocktime - txtime); fprintf(stderr,"coinage.%llu ht.%d txtime.%u blocktime.%u prev.%u gap.%d minutes.%d %.8f\n",(long long)coinage,nHeight,txtime,blocktime,prevtime,(int32_t)(blocktime - prevtime),minutes,dstr(value)); if ( nHeight < 200 ) diff --git a/src/wallet/rpcwallet.cpp b/src/wallet/rpcwallet.cpp index f208635ff..9954456fd 100644 --- a/src/wallet/rpcwallet.cpp +++ b/src/wallet/rpcwallet.cpp @@ -4485,23 +4485,20 @@ int32_t komodo_staked(uint32_t *blocktimep,uint32_t *txtimep,uint256 *utxotxidp, } } entry.push_back(Pair("amount",ValueFromAmount(nValue)));*/ - if ( out.tx->nLockTime != 0 ) + BlockMap::iterator it = mapBlockIndex.find(pcoinsTip->GetBestBlock()); + CBlockIndex *tipindex,*pindex = it->second; + uint64_t interest; uint32_t locktime; int32_t txheight; + if ( pindex != 0 && (tipindex= chainActive.Tip()) != 0 ) { - BlockMap::iterator it = mapBlockIndex.find(pcoinsTip->GetBestBlock()); - CBlockIndex *tipindex,*pindex = it->second; - uint64_t interest; uint32_t locktime; int32_t txheight; - if ( pindex != 0 && (tipindex= chainActive.Tip()) != 0 ) + eligible = komodo_stake((uint32_t)tipindex->nHeight+1,out.tx->GetHash(),out.i,*blocktimep,(uint32_t)tipindex->nTime); + if ( eligible > 0 && eligible < earliest ) { - eligible = komodo_stake((uint32_t)tipindex->nHeight+1,out.tx->GetHash(),out.i,*blocktimep,(uint32_t)tipindex->nTime); - if ( eligible > 0 && eligible < earliest ) - { - earliest = eligible; - best_scriptPubKey = out.tx->vout[out.i].scriptPubKey; - *utxovaluep = (uint64_t)nValue; - decode_hex((uint8_t *)utxotxidp,32,(char *)out.tx->GetHash().GetHex().c_str()); - *utxovoutp = out.i; - *txtimep = (uint32_t)out.tx->nLockTime; - } + earliest = eligible; + best_scriptPubKey = out.tx->vout[out.i].scriptPubKey; + *utxovaluep = (uint64_t)nValue; + decode_hex((uint8_t *)utxotxidp,32,(char *)out.tx->GetHash().GetHex().c_str()); + *utxovoutp = out.i; + *txtimep = (uint32_t)out.tx->nLockTime; } //fprintf(stderr,"(%s) %s/v%d nValue %.8f locktime.%u txheight.%d pindexht.%d\n",CBitcoinAddress(address).ToString().c_str(),out.tx->GetHash().GetHex().c_str(),out.i,(double)nValue/COIN,locktime,txheight,pindex->nHeight); }