Browse Source

Test

etomic
jl777 8 years ago
parent
commit
279a9fdb98
  1. 28
      iguana/exchanges/LP_rpc.c

28
iguana/exchanges/LP_rpc.c

@ -105,9 +105,19 @@ char *issue_LP_getprices(char *destip,uint16_t destport)
char *LP_apicall(struct iguana_info *coin,char *method,char *params) char *LP_apicall(struct iguana_info *coin,char *method,char *params)
{ {
cJSON *retjson,*resultjson;
if ( coin->electrum != 0 ) if ( coin->electrum != 0 )
return(jprint(electrum_submit(coin->symbol,coin->electrum,0,method,params,LP_HTTP_TIMEOUT),1)); {
else return(bitcoind_passthru(coin->symbol,coin->serverport,coin->userpass,method,params)); if ( (retjson= electrum_submit(coin->symbol,coin->electrum,0,method,params,LP_HTTP_TIMEOUT)) != 0 )
{
if ( (resultjson= jobj(retjson,"result")) != 0 )
{
resultjson = jduplicate(resultjson);
free_json(retjson);
return(jprint(resultjson,1));
} else return(jprint(retjson,1));
} return(clonestr("{\"error\":\"electrum no response\"}"));
} else return(bitcoind_passthru(coin->symbol,coin->serverport,coin->userpass,method,params));
} }
cJSON *bitcoin_json(struct iguana_info *coin,char *method,char *params) cJSON *bitcoin_json(struct iguana_info *coin,char *method,char *params)
@ -358,27 +368,23 @@ 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,*result; cJSON *retjson = 0; double rate = 20; char buf[512],*retstr; double rate = 20;
if ( coin != 0 && (strcmp(coin->symbol,"BTC") == 0 || coin->txfee == 0) ) if ( coin != 0 && (strcmp(coin->symbol,"BTC") == 0 || coin->txfee == 0) )
{ {
if ( coin->rate == 0. || time(NULL) > coin->ratetime+60 ) if ( coin->rate == 0. || time(NULL) > coin->ratetime+60 )
{ {
sprintf(buf,"[%d]",3); sprintf(buf,"[%d]",3);
printf("estimate fee\n");
if ( (retstr= LP_apicall(coin,"estimatefee",buf)) != 0 ) if ( (retstr= LP_apicall(coin,"estimatefee",buf)) != 0 )
{ {
if ( (retjson= cJSON_Parse(retstr)) != 0 ) if ( retstr[0] != '-' )
result = jstr(retjson,"result");
else result = retstr;
if ( result[0] != '-' )
{ {
rate = atof(result) / 1024.; rate = atof(retstr) / 1024.;
coin->rate = rate; coin->rate = rate;
coin->ratetime = (uint32_t)time(NULL); coin->ratetime = (uint32_t)time(NULL);
printf("estimated rate.(%s) %s -> %.8f\n",coin->symbol,result,rate); printf("estimated rate.(%s) %s -> %.8f\n",coin->symbol,retstr,rate);
} }
free(retstr); free(retstr);
if ( retjson != 0 )
free_json(retjson);
} }
} else rate = coin->rate; } else rate = coin->rate;
} else return((double)coin->txfee / LP_AVETXSIZE); } else return((double)coin->txfee / LP_AVETXSIZE);

Loading…
Cancel
Save