diff --git a/iguana/SuperNET.c b/iguana/SuperNET.c index 6ee857279..14d3b968b 100755 --- a/iguana/SuperNET.c +++ b/iguana/SuperNET.c @@ -707,7 +707,7 @@ char *SuperNET_JSON(struct supernet_info *myinfo,cJSON *json,char *remoteaddr,ui if ( (retstr= SuperNET_processJSON(myinfo,json,remoteaddr,port)) != 0 ) { //printf("retstr.(%s)\n",retstr); - if ( retstr[strlen(retstr)-1] != '\n' && (retjson= cJSON_Parse(retstr)) != 0 ) + if ( retstr[strlen(retstr)-1] != '\n' && (retjson= cJSON_Parse(retstr)) != 0 && is_cJSON_Array(retjson) == 0 ) { if ( jobj(retjson,"result") == 0 || jobj(retjson,"error") != 0 || jobj(retjson,"method") != 0 ) { diff --git a/iguana/iguana_unspents.c b/iguana/iguana_unspents.c index 850986800..c3306202a 100755 --- a/iguana/iguana_unspents.c +++ b/iguana/iguana_unspents.c @@ -725,7 +725,7 @@ cJSON *iguana_unspentjson(struct iguana_info *coin,int32_t hdrsi,uint32_t unspen jaddstr(item,"address",coinaddr); if ( (wacct= iguana_waddressfind(coin,&ind,coinaddr)) != 0 ) jaddstr(item,"account",wacct->account); - if ( bitcoin_pubkeylen(pubkey33) > 0 && iguana_scriptget(coin,scriptstr,asmstr,sizeof(scriptstr),hdrsi,unspentind,T[up->txidind].txid,up->vout,rmd160,up->type,pubkey33) != 0 ) + if ( iguana_scriptget(coin,scriptstr,asmstr,sizeof(scriptstr),hdrsi,unspentind,T[up->txidind].txid,up->vout,rmd160,up->type,pubkey33) != 0 ) jaddstr(item,"scriptPubKey",scriptstr); jaddnum(item,"amount",dstr(up->value)); if ( iguana_txidfind(coin,&height,&TX,T[up->txidind].txid,coin->bundlescount-1) != 0 ) diff --git a/iguana/ramchain_api.c b/iguana/ramchain_api.c index d8b1e2bb0..1379362b9 100755 --- a/iguana/ramchain_api.c +++ b/iguana/ramchain_api.c @@ -304,16 +304,13 @@ HASH_AND_TWOINTS(bitcoinrpc,gettxout,txid,vout,mempool) TWOINTS_AND_ARRAY(bitcoinrpc,listunspent,minconf,maxconf,array) { - int32_t numrmds; uint8_t *rmdarray; cJSON *retjson,*arg = cJSON_CreateArray(); + int32_t numrmds; uint8_t *rmdarray; cJSON *retjson = cJSON_CreateArray(); if ( minconf == 0 ) minconf = 1; if ( maxconf == 0 ) maxconf = 9999999; rmdarray = iguana_rmdarray(coin,&numrmds,array,0); - iguana_unspents(myinfo,coin,arg,minconf,maxconf,rmdarray,numrmds); - retjson = cJSON_CreateObject(); - jadd(retjson,"result",arg); - printf("returning.(%s)\n",jprint(arg,0)); + iguana_unspents(myinfo,coin,retjson,minconf,maxconf,rmdarray,numrmds); if ( rmdarray != 0 ) free(rmdarray); return(jprint(retjson,1));