jl777 7 years ago
parent
commit
d6c4d7a46b
  1. 2
      iguana/exchanges/LP_ordermatch.c
  2. 2
      iguana/exchanges/LP_signatures.c
  3. 25
      iguana/exchanges/LP_utxo.c

2
iguana/exchanges/LP_ordermatch.c

@ -1498,7 +1498,7 @@ char *LP_autobuy(void *ctx,int32_t fomoflag,char *myipaddr,int32_t mypubsock,cha
{
uint64_t median,minutxo,maxutxo;
maxprice = 0.; // fomo -> price is 1. and needs to be set
LP_address_minmax(&median,&minutxo,&maxutxo,relcoin,relcoin->smartaddr); // limit to largest utxo
LP_address_minmax(0,&median,&minutxo,&maxutxo,relcoin,relcoin->smartaddr); // limit to largest utxo
if ( maxutxo > 0 )
{
relvolume = dstr(maxutxo) - dstr(desttxfee)*3;

2
iguana/exchanges/LP_signatures.c

@ -440,7 +440,7 @@ char *LP_pricepings(void *ctx,char *myipaddr,int32_t pubsock,char *base,char *re
jaddstr(reqjson,"pubsecp",pubsecpstr);
if ( (kmd= LP_coinfind("KMD")) != 0 && (ap= LP_address(kmd,kmd->smartaddr)) != 0 && ap->instantdex_credits != 0 )
jaddnum(reqjson,"credits",dstr(ap->instantdex_credits));
if ( (numutxos= LP_address_minmax(&median,&minsize,&maxsize,basecoin,basecoin->smartaddr)) != 0 )
if ( (numutxos= LP_address_minmax(1,&median,&minsize,&maxsize,basecoin,basecoin->smartaddr)) != 0 )
{
//printf("send %s numutxos.%d median %.8f min %.8f max %.8f\n",base,numutxos,dstr(median),dstr(minsize),dstr(maxsize));
jaddstr(reqjson,"utxocoin",base);

25
iguana/exchanges/LP_utxo.c

@ -283,7 +283,7 @@ struct LP_address *LP_address(struct iguana_info *coin,char *coinaddr)
return(ap);
}
int32_t LP_address_minmax(uint64_t *medianp,uint64_t *minp,uint64_t *maxp,struct iguana_info *coin,char *coinaddr)
int32_t LP_address_minmax(int32_t iambob,uint64_t *medianp,uint64_t *minp,uint64_t *maxp,struct iguana_info *coin,char *coinaddr)
{
cJSON *array,*item; bits256 txid,zero; int64_t max,max2,value,*buf; int32_t i,m=0,vout,height,n = 0;
*minp = *maxp = *medianp = max = max2 = 0;
@ -314,19 +314,26 @@ int32_t LP_address_minmax(uint64_t *medianp,uint64_t *minp,uint64_t *maxp,struct
if ( m > 1 )
{
revsort64s(buf,m,sizeof(*buf));
if ( max == buf[0] && max2 == buf[1] )
if ( iambob != 0 )
{
for (i=1; i<m; i++)
if ( max == buf[0] && max2 == buf[1] )
{
if ( max >= LP_DEPOSITSATOSHIS(buf[i]) )
for (i=1; i<m; i++)
{
*maxp = buf[i];
*medianp = buf[m/2];
break;
if ( max >= LP_DEPOSITSATOSHIS(buf[i]) )
{
*maxp = buf[i];
*medianp = buf[m/2];
break;
}
}
}
} else printf("sort error? max %.8f != %.8f\n",dstr(max),dstr(buf[0]));
}
else
{
*maxp = buf[0];
*medianp = buf[m/2];
}
else printf("sort error? max %.8f != %.8f\n",dstr(max),dstr(buf[0]));
} else *minp = *maxp = *medianp = 0;
free(buf);
}

Loading…
Cancel
Save