diff --git a/src/komodo_bitcoind.h b/src/komodo_bitcoind.h index 84bf54dd3..3513a3adf 100644 --- a/src/komodo_bitcoind.h +++ b/src/komodo_bitcoind.h @@ -346,6 +346,39 @@ char *komodo_issuemethod(char *userpass,char *method,char *params,uint16_t port) return(retstr2); } +int32_t notarizedtxid_height(char *txidstr,int32_t *kmdnotarized_heightp) +{ + char *jsonstr,params[256]; int32_t height = 0,txid_height = 0,confirmations = 0; + params[0] = 0; + *kmdnotarized_heightp = 0; + if ( KMDUSERPASS[0] != 0 ) + { + if ( (jsonstr= komodo_issuemethod(KMDUSERPASS,(char *)"getinfo",params,7771)) != 0 ) + { + if ( (json= cJSON_Parse(jsonstr)) != 0 ) + { + *kmdnotarized_heightp = jint(json,"notarized"); + height = jint(json,"blocks"); + free_json(json); + } + free(jsonstr); + } + sprintf(params,"[\"%s\", 1]",txidstr); + if ( (jsonstr= komodo_issuemethod(KMDUSERPASS,(char *)"getrawtransaction",params,7771)) != 0 ) + { + if ( (json= cJSON_Parse(jsonstr)) != 0 ) + { + confirmations = jint(json,"confirmations"); + if ( confirmations > 0 && height > confirmations ) + txid_height = height - txid_confirmations; + free_json(json); + } + free(jsonstr); + } + } + return(txid_height); +} + int32_t komodo_verifynotarizedscript(int32_t height,uint8_t *script,int32_t len,uint256 NOTARIZED_HASH) { int32_t i; uint256 hash; char params[256]; diff --git a/src/miner.cpp b/src/miner.cpp index 07d29cd6c..7f7bb5a74 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -703,11 +703,11 @@ void static BitcoinMiner(CWallet *pwallet) if ( mids[j] == -1 ) gpucount++; } - if ( gpucount > j/3 ) + if ( gpucount > j/2 ) { double delta; i = ((Mining_height + notaryid) % 64); - delta = sqrt((double)gpucount - j/3) / 2.; + delta = sqrt((double)gpucount - j/2) / 2.; roundrobin_delay += ((delta * i) / 64) - delta; //fprintf(stderr,"delta.%f %f %f\n",delta,(double)(gpucount - j/3) / 2,(delta * i) / 64); } diff --git a/src/rpcmisc.cpp b/src/rpcmisc.cpp index 841a5fb4f..1e2e1c704 100644 --- a/src/rpcmisc.cpp +++ b/src/rpcmisc.cpp @@ -46,6 +46,9 @@ int32_t komodo_longestchain(); int32_t komodo_notarized_height(uint256 *hashp,uint256 *txidp); int32_t komodo_whoami(char *pubkeystr,int32_t height); extern int32_t KOMODO_LASTMINED; +extern char ASSETCHAINS_SYMBOL[]; +int32_t notarizedtxid_height(char *txidstr,int32_t *kmdnotarized_heightp); +#define KOMODO_VERSION "0.1.0" Value getinfo(const Array& params, bool fHelp) { @@ -92,14 +95,24 @@ Value getinfo(const Array& params, bool fHelp) Object obj; obj.push_back(Pair("version", CLIENT_VERSION)); obj.push_back(Pair("protocolversion", PROTOCOL_VERSION)); + obj.push_back(Pair("KMDversion", KOMODO_VERSION)); obj.push_back(Pair("notarized", notarized_height)); obj.push_back(Pair("notarizedhash", notarized_hash.ToString())); obj.push_back(Pair("notarizedtxid", notarized_desttxid.ToString())); + if ( ASSETCHAINS_SYMBOL[0] != 0 ) + { + int32_t kmdnotarized_height,txid_height; + txid_height = notarizedtxid_height(notarized_desttxid.ToString().c_str(),&kmdnotarized_height); + obj.push_back(Pair("notarizedtxid_height", txid_height)); + obj.push_back(Pair("kmdnotarized_height", kmdnotarized_height)); + obj.push_back(Pair("notarized_confirms", kmdnotarized_height)); + } #ifdef ENABLE_WALLET if (pwalletMain) { obj.push_back(Pair("walletversion", pwalletMain->GetVersion())); obj.push_back(Pair("balance", ValueFromAmount(pwalletMain->GetBalance()))); - obj.push_back(Pair("interest", ValueFromAmount(komodo_interestsum()))); + if ( ASSETCHAINS_SYMBOL[0] != 0 ) + obj.push_back(Pair("interest", ValueFromAmount(komodo_interestsum()))); } #endif obj.push_back(Pair("blocks", (int)chainActive.Height()));