diff --git a/iguana/exchanges/LP_include.h b/iguana/exchanges/LP_include.h index d18c94000..0b36a086f 100644 --- a/iguana/exchanges/LP_include.h +++ b/iguana/exchanges/LP_include.h @@ -305,6 +305,7 @@ int32_t LP_mempoolscan(char *symbol,bits256 searchtxid); int32_t LP_txheight(struct iguana_info *coin,bits256 txid); int32_t LP_address_utxoadd(struct iguana_info *coin,char *coinaddr,bits256 txid,int32_t vout,uint64_t value,int32_t height,int32_t spendheight); cJSON *LP_address_utxos(struct iguana_info *coin,char *coinaddr,int32_t electrumret); +cJSON *LP_gettxout(char *symbol,bits256 txid,int32_t vout); void LP_postutxos(char *symbol,char *coinaddr); int32_t LP_listunspent_both(char *symbol,char *coinaddr); uint16_t LP_randpeer(char *destip); diff --git a/iguana/exchanges/LP_socket.c b/iguana/exchanges/LP_socket.c index e6a40ce38..c41fe36f5 100644 --- a/iguana/exchanges/LP_socket.c +++ b/iguana/exchanges/LP_socket.c @@ -307,7 +307,7 @@ struct electrum_info *electrum_server(char *symbol,struct electrum_info *ep) int32_t electrum_process_array(struct iguana_info *coin,struct electrum_info *ep,char *coinaddr,cJSON *array) { - int32_t i,v,n,ht,flag = 0; char str[65]; uint64_t value; bits256 txid; cJSON *item,*txobj; struct LP_transaction *tx; + int32_t i,v,n,ht,flag = 0; char str[65]; uint64_t value; bits256 txid; cJSON *item,*retjson,*txobj; struct LP_transaction *tx; if ( array != 0 && coin != 0 && (n= cJSON_GetArraySize(array)) > 0 ) { //printf("PROCESS %s/%s %s num.%d\n",coin->symbol,ep!=0?ep->symbol:"nanolistunspent",coinaddr,n); @@ -320,6 +320,13 @@ int32_t electrum_process_array(struct iguana_info *coin,struct electrum_info *ep v = jint(item,"vout"); value = LP_value_extract(item,0); ht = LP_txheight(coin,txid); + if ( (retjson= LP_gettxout(coin->symbol,txid,v)) != 0 ) + free_json(retjson); + else + { + printf("external unspent has no gettxout\n"); + flag += LP_address_utxoadd(coin,coinaddr,txid,v,value,0,1); + } } else {