jl777 7 years ago
parent
commit
a06f8a32aa
  1. 5
      iguana/exchanges/LP_ordermatch.c
  2. 24
      iguana/exchanges/LP_rpc.c

5
iguana/exchanges/LP_ordermatch.c

@ -25,9 +25,8 @@ uint64_t LP_txfeecalc(struct iguana_info *coin,uint64_t txfee)
{ {
if ( strcmp(coin->symbol,"BTC") == 0 ) if ( strcmp(coin->symbol,"BTC") == 0 )
{ {
if ( coin->rate == 0. || txfee < LP_MIN_TXFEE ) coin->rate = _LP_getestimatedrate(coin);
coin->rate = LP_getestimatedrate(coin); if ( (txfee= coin->rate * LP_AVETXSIZE) < LP_MIN_TXFEE )
if ( txfee == 0 && (txfee= coin->rate * LP_AVETXSIZE) < LP_MIN_TXFEE )
txfee = LP_MIN_TXFEE; txfee = LP_MIN_TXFEE;
} else txfee = coin->txfee; } else txfee = coin->txfee;
if ( txfee < LP_MIN_TXFEE ) if ( txfee < LP_MIN_TXFEE )

24
iguana/exchanges/LP_rpc.c

@ -595,15 +595,9 @@ int32_t LP_importaddress(char *symbol,char *address)
} }
} }
double LP_getestimatedrate(struct iguana_info *coin) double _LP_getestimatedrate(struct iguana_info *coin)
{ {
char buf[512],*retstr; cJSON *errjson; double rate = 0.00000020; char buf[512],*retstr; cJSON *errjson; double rate = 0.00000020;
if ( coin == 0 )
return(0.0001);
if ( strcmp(coin->symbol,"BTC") == 0 || coin->txfee == 0 || coin->rate == 0. )
{
if ( coin->rate == 0. || (strcmp(coin->symbol,"BTC") == 0 && coin->txfee == 10000) || time(NULL) > coin->ratetime+6 )
{
sprintf(buf,"[%d]",strcmp(coin->symbol,"BTC") == 0 ? 6 : 2); sprintf(buf,"[%d]",strcmp(coin->symbol,"BTC") == 0 ? 6 : 2);
if ( (retstr= LP_apicall(coin,coin->electrum==0?"estimatefee" : "blockchain.estimatefee",buf)) != 0 ) if ( (retstr= LP_apicall(coin,coin->electrum==0?"estimatefee" : "blockchain.estimatefee",buf)) != 0 )
{ {
@ -627,7 +621,21 @@ double LP_getestimatedrate(struct iguana_info *coin)
} }
free(retstr); free(retstr);
} }
} else rate = coin->rate; return(rate);
}
double LP_getestimatedrate(struct iguana_info *coin)
{
double rate = 0.00000020;
if ( coin == 0 )
return(0.0001);
if ( strcmp(coin->symbol,"BTC") == 0 || coin->txfee == 0 || coin->rate == 0. || time(NULL) > coin->ratetime+60 )
{
if ( coin->rate == 0. || (strcmp(coin->symbol,"BTC") == 0 && coin->txfee == 10000) )
rate = _LP_getestimatedrate(coin);
else rate = coin->rate;
if ( rate != 0. )
coin->txfee = (coin->rate * LP_AVETXSIZE);
} else return((double)coin->txfee / LP_AVETXSIZE); } else return((double)coin->txfee / LP_AVETXSIZE);
return(SATOSHIDEN * rate); return(SATOSHIDEN * rate);
} }

Loading…
Cancel
Save