From a2409de6b016fd7f8b3a6b437402cb8dccd75856 Mon Sep 17 00:00:00 2001 From: phm87 <31578435+phm87@users.noreply.github.com> Date: Tue, 6 Aug 2019 22:54:40 +0200 Subject: [PATCH] Take coin->active into account As https://github.com/jl777/SuperNET/pull/1113 was done into blackjok3r branch, I think that I should perform the same change into beta_season3 branch. Warning: I didn't test this change on this branch. --- iguana/dpow/dpow_rpc.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/iguana/dpow/dpow_rpc.c b/iguana/dpow/dpow_rpc.c index c19264855..02583d4dd 100755 --- a/iguana/dpow/dpow_rpc.c +++ b/iguana/dpow/dpow_rpc.c @@ -60,6 +60,7 @@ char *bitcoind_getinfo(char *symbol,char *serverport,char *userpass,char *getinf cJSON *dpow_getinfo(struct supernet_info *myinfo,struct iguana_info *coin) { char buf[128],*retstr=0; cJSON *json = 0; + if ( coin->active == 0 ) return (0); if ( coin->FULLNODE < 0 ) { buf[0] = 0; @@ -95,6 +96,7 @@ cJSON *dpow_getinfo(struct supernet_info *myinfo,struct iguana_info *coin) uint32_t dpow_CCid(struct supernet_info *myinfo,struct iguana_info *coin) { uint32_t CCid = 0; cJSON *retjson; + if ( coin->active == 0 ) return (CCid); if ( (retjson= dpow_getinfo(myinfo,coin)) != 0 ) { CCid = juint(retjson,"CCid"); @@ -230,6 +232,7 @@ int32_t komodo_notaries(char *symbol,uint8_t pubkeys[64][33],int32_t height) bits256 dpow_getbestblockhash(struct supernet_info *myinfo,struct iguana_info *coin) { char *retstr; bits256 blockhash; + if ( coin->active == 0 ) return (blockhash); memset(blockhash.bytes,0,sizeof(blockhash)); if ( coin->FULLNODE < 0 ) { @@ -263,6 +266,7 @@ bits256 dpow_getbestblockhash(struct supernet_info *myinfo,struct iguana_info *c cJSON *issue_calcMoM(struct iguana_info *coin,int32_t height,int32_t MoMdepth) { char buf[128],*retstr=0; cJSON *retjson = 0; + if ( coin->active == 0 ) return (retjson); if ( coin->FULLNODE < 0 ) { sprintf(buf,"[\"%d\", \"%d\"]",height,MoMdepth); @@ -279,6 +283,7 @@ cJSON *issue_calcMoM(struct iguana_info *coin,int32_t height,int32_t MoMdepth) cJSON *dpow_MoMoMdata(struct iguana_info *coin,char *symbol,int32_t kmdheight,uint16_t CCid) { char buf[128],*retstr=0; cJSON *retjson = 0; struct iguana_info *src; + if ( coin->active == 0 ) return (retjson); if ( coin->FULLNODE < 0 && strcmp(coin->symbol,"KMD") == 0 && (src= iguana_coinfind(symbol)) != 0 ) { sprintf(buf,"[\"%s\", \"%d\", \"%d\"]",symbol,kmdheight,CCid); @@ -359,6 +364,7 @@ int32_t dpow_paxpending(struct supernet_info *myinfo,uint8_t *hex,int32_t hexsiz bits256 dpow_getblockhash(struct supernet_info *myinfo,struct iguana_info *coin,int32_t height) { char buf[128],*retstr=0; bits256 blockhash; + if ( coin->active == 0 ) return blockhash; memset(blockhash.bytes,0,sizeof(blockhash)); if ( coin->FULLNODE < 0 ) { @@ -388,6 +394,7 @@ bits256 dpow_getblockhash(struct supernet_info *myinfo,struct iguana_info *coin, int dpow_lockunspent(struct supernet_info *myinfo,struct iguana_info *coin,char *coinaddr,char *txid,int32_t vout) { char buf[128],*retstr; + if ( coin->active == 0 ) return (0); if ( coin->FULLNODE < 0 ) { sprintf(buf,"false, [{\"txid\":\"%s\",\"vout\":%d}]", txid, vout); @@ -404,6 +411,7 @@ int dpow_lockunspent(struct supernet_info *myinfo,struct iguana_info *coin,char int dpow_unlockunspent(struct supernet_info *myinfo,struct iguana_info *coin,char *coinaddr,char *txid,int32_t vout) { char buf[128],*retstr; + if ( coin->active == 0 ) return (0); if ( coin->FULLNODE < 0 ) { sprintf(buf,"true, [{\"txid\":\"%s\",\"vout\":%d}]", txid, vout); @@ -421,6 +429,7 @@ int dpow_unlockunspent(struct supernet_info *myinfo,struct iguana_info *coin,cha cJSON *dpow_getblock(struct supernet_info *myinfo,struct iguana_info *coin,bits256 blockhash) { char buf[128],str[65],*retstr=0; cJSON *json = 0; + if ( coin->active == 0 ) return (0); if ( coin->FULLNODE < 0 ) { sprintf(buf,"\"%s\"",bits256_str(str,blockhash)); @@ -448,6 +457,7 @@ cJSON *dpow_getblock(struct supernet_info *myinfo,struct iguana_info *coin,bits2 char *dpow_validateaddress(struct supernet_info *myinfo,struct iguana_info *coin,char *address) { char buf[128],*retstr=0; cJSON *retjson; + if ( coin->active == 0 ) return (retstr); if ( coin->FULLNODE < 0 ) { sprintf(buf,"\"%s\"",address); @@ -482,6 +492,7 @@ char *dpow_validateaddress(struct supernet_info *myinfo,struct iguana_info *coin cJSON *dpow_gettxout(struct supernet_info *myinfo,struct iguana_info *coin,bits256 txid,int32_t vout) { char buf[128],str[65],*retstr=0; cJSON *json = 0; + if ( coin->active == 0 ) return (json); sprintf(buf,"\"%s\", %d",bits256_str(str,txid),vout); if ( coin->FULLNODE < 0 ) { @@ -509,6 +520,7 @@ cJSON *dpow_gettxout(struct supernet_info *myinfo,struct iguana_info *coin,bits2 char *dpow_decoderawtransaction(struct supernet_info *myinfo,struct iguana_info *coin,char *rawtx) { char *retstr,*paramstr; cJSON *array; + if ( coin->active == 0 ) return (0); if ( coin->FULLNODE < 0 ) { array = cJSON_CreateArray(); @@ -533,6 +545,7 @@ char *dpow_decoderawtransaction(struct supernet_info *myinfo,struct iguana_info cJSON *dpow_gettransaction(struct supernet_info *myinfo,struct iguana_info *coin,bits256 txid) { char buf[128],str[65],*retstr=0; cJSON *json = 0; + if ( coin->active == 0 ) return (0); if ( coin->FULLNODE < 0 ) { sprintf(buf,"[\"%s\", 1]",bits256_str(str,txid)); @@ -560,6 +573,7 @@ cJSON *dpow_gettransaction(struct supernet_info *myinfo,struct iguana_info *coin cJSON *dpow_listunspent(struct supernet_info *myinfo,struct iguana_info *coin,char *coinaddr) { char buf[128],*retstr; cJSON *array,*json = 0; + if ( coin->active == 0 ) return (0); if ( coin->FULLNODE < 0 ) { sprintf(buf,"1, 99999999, [\"%s\"]",coinaddr); @@ -586,6 +600,7 @@ cJSON *dpow_listunspent(struct supernet_info *myinfo,struct iguana_info *coin,ch cJSON *dpow_listspent(struct supernet_info *myinfo,struct iguana_info *coin,char *coinaddr) { + if ( coin->active == 0 ) return (0); if ( myinfo->DEXEXPLORER != 0 ) return(kmd_listspent(myinfo,coin,coinaddr)); else @@ -596,6 +611,7 @@ cJSON *dpow_listspent(struct supernet_info *myinfo,struct iguana_info *coin,char cJSON *dpow_getbalance(struct supernet_info *myinfo,struct iguana_info *coin,char *coinaddr) { + if ( coin->active == 0 ) return (0); if ( myinfo->DEXEXPLORER != 0 ) return(kmd_getbalance(myinfo,coin,coinaddr)); else @@ -606,6 +622,7 @@ cJSON *dpow_getbalance(struct supernet_info *myinfo,struct iguana_info *coin,cha cJSON *dpow_gettxin(struct supernet_info *myinfo,struct iguana_info *coin,bits256 txid,int32_t vout) { + if ( coin->active == 0 ) return (0); if ( myinfo->DEXEXPLORER != 0 ) return(kmd_gettxin(coin,txid,vout)); else @@ -617,6 +634,7 @@ cJSON *dpow_gettxin(struct supernet_info *myinfo,struct iguana_info *coin,bits25 cJSON *dpow_listtransactions(struct supernet_info *myinfo,struct iguana_info *coin,char *coinaddr,int32_t count,int32_t skip) { char buf[128],*retstr; cJSON *json = 0; + if ( coin->active == 0 ) return (0); if ( coin->FULLNODE < 0 ) { if ( count == 0 ) @@ -636,6 +654,7 @@ cJSON *dpow_listtransactions(struct supernet_info *myinfo,struct iguana_info *co char *dpow_signrawtransaction(struct supernet_info *myinfo,struct iguana_info *coin,char *rawtx,cJSON *vins) { cJSON *array,*privkeys,*item,*retjson; char *wifstr,*str,*paramstr,*retstr; uint8_t script[256]; int32_t i,n,len,hashtype; struct vin_info V; struct iguana_waddress *waddr; struct iguana_waccount *wacct; + if ( coin->active == 0 ) return (0); if ( coin->FULLNODE < 0 ) { array = cJSON_CreateArray(); @@ -708,6 +727,7 @@ char *dpow_signrawtransaction(struct supernet_info *myinfo,struct iguana_info *c cJSON *dpow_kvupdate(struct supernet_info *myinfo,struct iguana_info *coin,char *key,char *value,int32_t flags) { char params[IGUANA_MAXSCRIPTSIZE+256],*retstr; cJSON *retjson; + if ( coin->active == 0 ) return (0); if ( coin->FULLNODE < 0 ) { sprintf(params,"[\"%s\", \"%s\", \"%d\"]",key,value,flags); @@ -726,6 +746,7 @@ cJSON *dpow_kvupdate(struct supernet_info *myinfo,struct iguana_info *coin,char cJSON *dpow_kvsearch(struct supernet_info *myinfo,struct iguana_info *coin,char *key) { char params[IGUANA_MAXSCRIPTSIZE+256],*retstr; cJSON *retjson; + if ( coin->active == 0 ) return (0); if ( coin->FULLNODE < 0 ) { sprintf(params,"[\"%s\"]",key); @@ -744,6 +765,7 @@ cJSON *dpow_kvsearch(struct supernet_info *myinfo,struct iguana_info *coin,char char *dpow_sendrawtransaction(struct supernet_info *myinfo,struct iguana_info *coin,char *signedtx) { bits256 txid; cJSON *json,*array; char *paramstr,*retstr; + if ( coin->active == 0 ) return (0); if ( coin->FULLNODE < 0 ) { array = cJSON_CreateArray(); @@ -770,6 +792,7 @@ char *dpow_sendrawtransaction(struct supernet_info *myinfo,struct iguana_info *c char *dpow_alladdresses(struct supernet_info *myinfo,struct iguana_info *coin) { char *retstr,fname[1024]; long filesize; + if ( coin->active == 0 ) return (0); sprintf(fname,"%s/alladdresses.%s",GLOBAL_CONFSDIR,coin->symbol), OS_compatible_path(fname); retstr = OS_filestr(&filesize,fname); return(retstr); @@ -778,6 +801,7 @@ char *dpow_alladdresses(struct supernet_info *myinfo,struct iguana_info *coin) void update_alladdresses(struct supernet_info *myinfo,struct iguana_info *coin,char *address) { struct hashstr_item *hashstr,*tmp; cJSON *alljson; char *outstr,*instr,fname[1024]; int32_t i,n,saveflag = 0; + if ( coin->active == 0 ) return; HASH_FIND(hh,coin->alladdresses,address,strlen(address),hashstr); if ( hashstr == 0 ) { @@ -829,6 +853,7 @@ void update_alladdresses(struct supernet_info *myinfo,struct iguana_info *coin,c cJSON *dpow_checkaddress(struct supernet_info *myinfo,struct iguana_info *coin,char *address) { int32_t isvalid=0,doneflag=0; char *retstr; cJSON *validatejson,*retjson = cJSON_CreateObject(); + if ( coin->active == 0 ) return (retjson); if ( (retstr= dpow_validateaddress(myinfo,coin,address)) != 0 ) { if ( (validatejson= cJSON_Parse(retstr)) != 0 ) @@ -856,6 +881,7 @@ cJSON *dpow_checkaddress(struct supernet_info *myinfo,struct iguana_info *coin,c char *dpow_importaddress(struct supernet_info *myinfo,struct iguana_info *coin,char *address) { char buf[1024],*retstr; cJSON *validatejson; int32_t isvalid=0,doneflag = 0; + if ( coin->active == 0 ) return ""; if ( (retstr= dpow_validateaddress(myinfo,coin,address)) != 0 ) { if ( (validatejson= cJSON_Parse(retstr)) != 0 ) @@ -888,6 +914,7 @@ char *dpow_importaddress(struct supernet_info *myinfo,struct iguana_info *coin,c void init_alladdresses(struct supernet_info *myinfo,struct iguana_info *coin) { char *alladdresses,*retstr; cJSON *alljson; int32_t i,n; + if ( coin->active == 0 ) return; if ( (alladdresses= dpow_alladdresses(myinfo,coin)) != 0 ) { printf("(%s) ALL.(%s)\n",coin->symbol,alladdresses); @@ -908,6 +935,7 @@ void init_alladdresses(struct supernet_info *myinfo,struct iguana_info *coin) int32_t dpow_getchaintip(struct supernet_info *myinfo,bits256 *merklerootp,bits256 *blockhashp,uint32_t *blocktimep,bits256 *txs,uint32_t *numtxp,struct iguana_info *coin) { int32_t n,i,height = -1,maxtx = *numtxp; bits256 besthash,oldhash; cJSON *array,*json; + if ( coin->active == 0 ) return (0); *numtxp = *blocktimep = 0; oldhash = coin->lastbesthash; *blockhashp = besthash = dpow_getbestblockhash(myinfo,coin); @@ -957,6 +985,7 @@ int32_t dpow_vini_ismine(struct supernet_info *myinfo,struct dpow_info *dp,cJSON int32_t dpow_haveutxo(struct supernet_info *myinfo,struct iguana_info *coin,bits256 *txidp,int32_t *voutp,char *coinaddr,char *srccoin) { int32_t vout,haveutxo = 0; uint32_t i,j,n,r; bits256 txid; cJSON *unspents,*item; uint64_t satoshis; char *str,*address; uint8_t script[35]; + if ( coin->active == 0 ) return (0); memset(txidp,0,sizeof(*txidp)); *voutp = -1; if ( (unspents= dpow_listunspent(myinfo,coin,coinaddr)) != 0 )