Browse Source

Merge pull request #1114 from phm87/patch-6

Take coin->active into account
patch-14
jl777 6 years ago
committed by GitHub
parent
commit
c9ad99c3ac
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 29
      iguana/dpow/dpow_rpc.c

29
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) cJSON *dpow_getinfo(struct supernet_info *myinfo,struct iguana_info *coin)
{ {
char buf[128],*retstr=0; cJSON *json = 0; char buf[128],*retstr=0; cJSON *json = 0;
if ( coin->active == 0 ) return (0);
if ( coin->FULLNODE < 0 ) if ( coin->FULLNODE < 0 )
{ {
buf[0] = 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 dpow_CCid(struct supernet_info *myinfo,struct iguana_info *coin)
{ {
uint32_t CCid = 0; cJSON *retjson; uint32_t CCid = 0; cJSON *retjson;
if ( coin->active == 0 ) return (CCid);
if ( (retjson= dpow_getinfo(myinfo,coin)) != 0 ) if ( (retjson= dpow_getinfo(myinfo,coin)) != 0 )
{ {
CCid = juint(retjson,"CCid"); 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) bits256 dpow_getbestblockhash(struct supernet_info *myinfo,struct iguana_info *coin)
{ {
char *retstr; bits256 blockhash; char *retstr; bits256 blockhash;
if ( coin->active == 0 ) return (blockhash);
memset(blockhash.bytes,0,sizeof(blockhash)); memset(blockhash.bytes,0,sizeof(blockhash));
if ( coin->FULLNODE < 0 ) 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) cJSON *issue_calcMoM(struct iguana_info *coin,int32_t height,int32_t MoMdepth)
{ {
char buf[128],*retstr=0; cJSON *retjson = 0; char buf[128],*retstr=0; cJSON *retjson = 0;
if ( coin->active == 0 ) return (retjson);
if ( coin->FULLNODE < 0 ) if ( coin->FULLNODE < 0 )
{ {
sprintf(buf,"[\"%d\", \"%d\"]",height,MoMdepth); 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) 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; 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 ) if ( coin->FULLNODE < 0 && strcmp(coin->symbol,"KMD") == 0 && (src= iguana_coinfind(symbol)) != 0 )
{ {
sprintf(buf,"[\"%s\", \"%d\", \"%d\"]",symbol,kmdheight,CCid); 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) bits256 dpow_getblockhash(struct supernet_info *myinfo,struct iguana_info *coin,int32_t height)
{ {
char buf[128],*retstr=0; bits256 blockhash; char buf[128],*retstr=0; bits256 blockhash;
if ( coin->active == 0 ) return blockhash;
memset(blockhash.bytes,0,sizeof(blockhash)); memset(blockhash.bytes,0,sizeof(blockhash));
if ( coin->FULLNODE < 0 ) 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) int dpow_lockunspent(struct supernet_info *myinfo,struct iguana_info *coin,char *coinaddr,char *txid,int32_t vout)
{ {
char buf[128],*retstr; char buf[128],*retstr;
if ( coin->active == 0 ) return (0);
if ( coin->FULLNODE < 0 ) if ( coin->FULLNODE < 0 )
{ {
sprintf(buf,"false, [{\"txid\":\"%s\",\"vout\":%d}]", txid, vout); 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) int dpow_unlockunspent(struct supernet_info *myinfo,struct iguana_info *coin,char *coinaddr,char *txid,int32_t vout)
{ {
char buf[128],*retstr; char buf[128],*retstr;
if ( coin->active == 0 ) return (0);
if ( coin->FULLNODE < 0 ) if ( coin->FULLNODE < 0 )
{ {
sprintf(buf,"true, [{\"txid\":\"%s\",\"vout\":%d}]", txid, vout); 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) cJSON *dpow_getblock(struct supernet_info *myinfo,struct iguana_info *coin,bits256 blockhash)
{ {
char buf[128],str[65],*retstr=0; cJSON *json = 0; char buf[128],str[65],*retstr=0; cJSON *json = 0;
if ( coin->active == 0 ) return (0);
if ( coin->FULLNODE < 0 ) if ( coin->FULLNODE < 0 )
{ {
sprintf(buf,"\"%s\"",bits256_str(str,blockhash)); 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 *dpow_validateaddress(struct supernet_info *myinfo,struct iguana_info *coin,char *address)
{ {
char buf[128],*retstr=0; cJSON *retjson; char buf[128],*retstr=0; cJSON *retjson;
if ( coin->active == 0 ) return (retstr);
if ( coin->FULLNODE < 0 ) if ( coin->FULLNODE < 0 )
{ {
sprintf(buf,"\"%s\"",address); 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) 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; 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); sprintf(buf,"\"%s\", %d",bits256_str(str,txid),vout);
if ( coin->FULLNODE < 0 ) 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 *dpow_decoderawtransaction(struct supernet_info *myinfo,struct iguana_info *coin,char *rawtx)
{ {
char *retstr,*paramstr; cJSON *array; char *retstr,*paramstr; cJSON *array;
if ( coin->active == 0 ) return (0);
if ( coin->FULLNODE < 0 ) if ( coin->FULLNODE < 0 )
{ {
array = cJSON_CreateArray(); 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) cJSON *dpow_gettransaction(struct supernet_info *myinfo,struct iguana_info *coin,bits256 txid)
{ {
char buf[128],str[65],*retstr=0; cJSON *json = 0; char buf[128],str[65],*retstr=0; cJSON *json = 0;
if ( coin->active == 0 ) return (0);
if ( coin->FULLNODE < 0 ) if ( coin->FULLNODE < 0 )
{ {
sprintf(buf,"[\"%s\", 1]",bits256_str(str,txid)); 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) cJSON *dpow_listunspent(struct supernet_info *myinfo,struct iguana_info *coin,char *coinaddr)
{ {
char buf[128],*retstr; cJSON *array,*json = 0; char buf[128],*retstr; cJSON *array,*json = 0;
if ( coin->active == 0 ) return (0);
if ( coin->FULLNODE < 0 ) if ( coin->FULLNODE < 0 )
{ {
sprintf(buf,"1, 99999999, [\"%s\"]",coinaddr); 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) cJSON *dpow_listspent(struct supernet_info *myinfo,struct iguana_info *coin,char *coinaddr)
{ {
if ( coin->active == 0 ) return (0);
if ( myinfo->DEXEXPLORER != 0 ) if ( myinfo->DEXEXPLORER != 0 )
return(kmd_listspent(myinfo,coin,coinaddr)); return(kmd_listspent(myinfo,coin,coinaddr));
else 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) cJSON *dpow_getbalance(struct supernet_info *myinfo,struct iguana_info *coin,char *coinaddr)
{ {
if ( coin->active == 0 ) return (0);
if ( myinfo->DEXEXPLORER != 0 ) if ( myinfo->DEXEXPLORER != 0 )
return(kmd_getbalance(myinfo,coin,coinaddr)); return(kmd_getbalance(myinfo,coin,coinaddr));
else 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) 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 ) if ( myinfo->DEXEXPLORER != 0 )
return(kmd_gettxin(coin,txid,vout)); return(kmd_gettxin(coin,txid,vout));
else 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) 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; char buf[128],*retstr; cJSON *json = 0;
if ( coin->active == 0 ) return (0);
if ( coin->FULLNODE < 0 ) if ( coin->FULLNODE < 0 )
{ {
if ( count == 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) 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; 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 ) if ( coin->FULLNODE < 0 )
{ {
array = cJSON_CreateArray(); 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) 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; char params[IGUANA_MAXSCRIPTSIZE+256],*retstr; cJSON *retjson;
if ( coin->active == 0 ) return (0);
if ( coin->FULLNODE < 0 ) if ( coin->FULLNODE < 0 )
{ {
sprintf(params,"[\"%s\", \"%s\", \"%d\"]",key,value,flags); 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) cJSON *dpow_kvsearch(struct supernet_info *myinfo,struct iguana_info *coin,char *key)
{ {
char params[IGUANA_MAXSCRIPTSIZE+256],*retstr; cJSON *retjson; char params[IGUANA_MAXSCRIPTSIZE+256],*retstr; cJSON *retjson;
if ( coin->active == 0 ) return (0);
if ( coin->FULLNODE < 0 ) if ( coin->FULLNODE < 0 )
{ {
sprintf(params,"[\"%s\"]",key); 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) char *dpow_sendrawtransaction(struct supernet_info *myinfo,struct iguana_info *coin,char *signedtx)
{ {
bits256 txid; cJSON *json,*array; char *paramstr,*retstr; bits256 txid; cJSON *json,*array; char *paramstr,*retstr;
if ( coin->active == 0 ) return (0);
if ( coin->FULLNODE < 0 ) if ( coin->FULLNODE < 0 )
{ {
array = cJSON_CreateArray(); 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 *dpow_alladdresses(struct supernet_info *myinfo,struct iguana_info *coin)
{ {
char *retstr,fname[1024]; long filesize; 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); sprintf(fname,"%s/alladdresses.%s",GLOBAL_CONFSDIR,coin->symbol), OS_compatible_path(fname);
retstr = OS_filestr(&filesize,fname); retstr = OS_filestr(&filesize,fname);
return(retstr); 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) 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; 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); HASH_FIND(hh,coin->alladdresses,address,strlen(address),hashstr);
if ( hashstr == 0 ) 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) 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(); 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 ( (retstr= dpow_validateaddress(myinfo,coin,address)) != 0 )
{ {
if ( (validatejson= cJSON_Parse(retstr)) != 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 *dpow_importaddress(struct supernet_info *myinfo,struct iguana_info *coin,char *address)
{ {
char buf[1024],*retstr; cJSON *validatejson; int32_t isvalid=0,doneflag = 0; 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 ( (retstr= dpow_validateaddress(myinfo,coin,address)) != 0 )
{ {
if ( (validatejson= cJSON_Parse(retstr)) != 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) void init_alladdresses(struct supernet_info *myinfo,struct iguana_info *coin)
{ {
char *alladdresses,*retstr; cJSON *alljson; int32_t i,n; char *alladdresses,*retstr; cJSON *alljson; int32_t i,n;
if ( coin->active == 0 ) return;
if ( (alladdresses= dpow_alladdresses(myinfo,coin)) != 0 ) if ( (alladdresses= dpow_alladdresses(myinfo,coin)) != 0 )
{ {
printf("(%s) ALL.(%s)\n",coin->symbol,alladdresses); 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 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; int32_t n,i,height = -1,maxtx = *numtxp; bits256 besthash,oldhash; cJSON *array,*json;
if ( coin->active == 0 ) return (0);
*numtxp = *blocktimep = 0; *numtxp = *blocktimep = 0;
oldhash = coin->lastbesthash; oldhash = coin->lastbesthash;
*blockhashp = besthash = dpow_getbestblockhash(myinfo,coin); *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 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]; 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)); memset(txidp,0,sizeof(*txidp));
*voutp = -1; *voutp = -1;
if ( (unspents= dpow_listunspent(myinfo,coin,coinaddr)) != 0 ) if ( (unspents= dpow_listunspent(myinfo,coin,coinaddr)) != 0 )

Loading…
Cancel
Save