|
|
@ -880,7 +880,7 @@ char *LP_trade(void *ctx,char *myipaddr,int32_t mypubsock,struct LP_quoteinfo *q |
|
|
|
|
|
|
|
struct LP_utxoinfo *LP_buyutxo(struct LP_utxoinfo *bestutxo,double *ordermatchpricep,int64_t *bestsatoshisp,int64_t *bestdestsatoshisp,struct LP_utxoinfo *autxo,char *base,double maxprice,int32_t duration,uint64_t txfee,uint64_t desttxfee,double relvolume,char *gui) |
|
|
|
{ |
|
|
|
bits256 pubkey; char *obookstr,coinaddr[64]; cJSON *orderbook,*asks,*item; int32_t i,n,numasks,max = 10000; struct LP_address_utxo **utxos; double price; struct LP_pubkeyinfo *pubp; struct iguana_info *basecoin; |
|
|
|
bits256 pubkey; char *obookstr,coinaddr[64]; cJSON *orderbook,*array,*asks,*item; int32_t i,n,numasks,max = 10000; struct LP_address_utxo **utxos; double price; struct LP_pubkeyinfo *pubp; struct iguana_info *basecoin; |
|
|
|
*ordermatchpricep = 0.; |
|
|
|
*bestsatoshisp = *bestdestsatoshisp = 0; |
|
|
|
basecoin = LP_coinfind(base); |
|
|
@ -903,17 +903,19 @@ struct LP_utxoinfo *LP_buyutxo(struct LP_utxoinfo *bestutxo,double *ordermatchpr |
|
|
|
price = jdouble(item,"price"); |
|
|
|
if ( LP_pricevalid(price) > 0 && price <= maxprice ) |
|
|
|
{ |
|
|
|
//printf("%s\n",jprint(item,0));
|
|
|
|
printf("%s\n",jprint(item,0)); |
|
|
|
pubkey = jbits256(item,"pubkey"); |
|
|
|
if ( bits256_cmp(pubkey,LP_mypub25519) != 0 && (pubp= LP_pubkeyadd(pubkey)) != 0 ) |
|
|
|
{ |
|
|
|
bitcoin_address(coinaddr,basecoin->taddr,basecoin->pubtype,pubp->rmd160,sizeof(pubp->rmd160)); |
|
|
|
/*if ( (array= LP_listunspent(basecoin->symbol,coinaddr)) != 0 )
|
|
|
|
if ( basecoin->electrum != 0 ) |
|
|
|
{ |
|
|
|
n = cJSON_GetArraySize(array); |
|
|
|
free_json(array); |
|
|
|
} else n = 0;*/ |
|
|
|
n = LP_listunspent_issue(basecoin->symbol,coinaddr); |
|
|
|
if ( (array= LP_listunspent(basecoin->symbol,coinaddr)) != 0 ) |
|
|
|
{ |
|
|
|
n = cJSON_GetArraySize(array); |
|
|
|
free_json(array); |
|
|
|
} else n = 0; |
|
|
|
} else n = LP_listunspent_issue(basecoin->symbol,coinaddr); |
|
|
|
if ( n > 1 ) |
|
|
|
{ |
|
|
|
//minvol = jdouble(item,"minvolume");
|
|
|
|