Browse Source

Docker -> padder

etomic
jl777 7 years ago
parent
commit
3fdea8ca8e
  1. 1
      crypto777/OS_portable.h
  2. 66
      iguana/exchanges/LP_prices.c
  3. 4
      iguana/exchanges/mm.c
  4. 2
      iguana/exchanges/stats.c

1
crypto777/OS_portable.h

@ -326,6 +326,7 @@ int32_t btc_convaddr(char *hexaddr,char *addr58);
uint64_t RS_decode(char *rs);
int32_t RS_encode(char *rsaddr,uint64_t id);
char *cmc_ticker(char *base);
void calc_sha1(char *hexstr,uint8_t *buf,uint8_t *msg,int32_t len);
void calc_md2(char *hexstr,uint8_t *buf,uint8_t *msg,int32_t len);

66
iguana/exchanges/LP_prices.c

@ -1116,42 +1116,74 @@ void LP_pricefeedupdate(bits256 pubkey,char *base,char *rel,double price,char *u
double LP_CMCbtcprice(char *symbol)
{
char *retstr; cJSON *ticker; double price_btc = 0.;
if ( (retstr= cmc_ticker(symbol)) != 0 )
{
if ( (ticker= cJSON_Parse(retstr)) != 0 )
{
price_btc = jdouble(ticker,"price_btc");
free_json(ticker);
}
free(retstr);
}
return(0);
}
cJSON *LP_fundvalue(cJSON *argjson)
{
cJSON *holdings,*item,*newitem; int32_t i,n; double btcprice,balance,btcsum; struct iguana_info *coin; char *symbol; int64_t fundvalue,KMDvalue = 0;
cJSON *holdings,*item,*newitem,*array,*retjson; int32_t i,iter,n; double btcprice,balance,btcsum; struct iguana_info *coin; char *symbol,*coinaddr; int64_t fundvalue,KMDvalue = 0;
fundvalue = 0;
btcsum = 0.;
if ( (holdings= jarray(&n,argjson,"holdings")) != 0 )
array = cJSON_CreateArray();
for (iter=0; iter<2; iter++)
{
for (i=0; i<n; i++)
if ( iter == 0 )
holdings = jarray(&n,argjson,"holdings");
else
{
item = jitem(holdings,i);
if ( (symbol= jstr(item,"coin")) != 0 && (balance= jdouble(item,"balance")) > SMALLVAL )
if ( (coinaddr= jstr(argjson,"address")) != 0 )
{
newitem = cJSON_CreateObject();
jaddstr(item,"coin",symbol);
if ( (coin= LP_coinfind(symbol)) != 0 && (KMDvalue= LP_KMDvalue(coin,SATOSHIDEN * balance)) > 0 )
{
jaddnum(newitem,"KMD",dstr(KMDvalue));
fundvalue += KMDvalue;
}
else if ( (btcprice= LP_CMCbtcprice(symbol)) > SMALLVAL )
holdings = LP_balances(coinaddr);
n = cJSON_GetArraySize(holdings);
}
else break;
}
if ( holdings != 0 )
{
for (i=0; i<n; i++)
{
item = jitem(holdings,i);
if ( (symbol= jstr(item,"coin")) != 0 && (balance= jdouble(item,"balance")) > SMALLVAL )
{
btcsum += btcprice * balance;
jaddnum(newitem,"BTC",btcprice * balance);
newitem = cJSON_CreateObject();
jaddstr(newitem,"coin",symbol);
if ( (coin= LP_coinfind(symbol)) != 0 && (KMDvalue= LP_KMDvalue(coin,SATOSHIDEN * balance)) > 0 )
{
jaddnum(newitem,"KMD",dstr(KMDvalue));
fundvalue += KMDvalue;
}
else if ( (btcprice= LP_CMCbtcprice(symbol)) > SMALLVAL )
{
btcsum += btcprice * balance;
jaddnum(newitem,"BTC",btcprice * balance);
}
else jaddstr(newitem,"error","no price source");
jaddi(array,newitem);
}
}
}
}
retjson = cJSON_CreateObject();
jadd(retjson,"holdings",array);
if ( btcsum != 0 )
{
btcprice = LP_CMCbtcprice("KMD");
fundvalue += (btcprice * btcsum) * SATOSHIDEN;
jaddnum(retjson,"KMD_BTC",btcprice);
jaddnum(retjson,"btcsum",btcsum);
jaddnum(retjson,"btcvalue",btcsum * btcprice);
}
return(0);
jaddnum(retjson,"fundvalue",dstr(fundvalue));
return(retjson);
}

4
iguana/exchanges/mm.c

@ -34,7 +34,7 @@ void PNACL_message(char *arg,...)
#include "../../crypto777/OS_portable.h"
#endif // !_WIN_32
int32_t DOCKERFLAG;
uint32_t DOCKERFLAG;
#define MAX(a,b) ((a) > (b) ? (a) : (b))
char *stats_JSON(void *ctx,char *myipaddr,int32_t pubsock,cJSON *argjson,char *remoteaddr,uint16_t port);
#include "stats.c"
@ -921,7 +921,7 @@ int main(int argc, const char * argv[])
}
if ( argc > 1 && (retjson= cJSON_Parse(argv[1])) != 0 )
{
DOCKERFLAG = jint(retjson,"docker");
DOCKERFLAG = (uint32_t)calc_ipbits(jstr(retjson,"docker"));
if ( (passphrase= jstr(retjson,"passphrase")) == 0 )
jaddstr(retjson,"passphrase","test");
if ( OS_thread_create(malloc(sizeof(pthread_t)),NULL,(void *)LP_main,(void *)retjson) != 0 )

2
iguana/exchanges/stats.c

@ -817,7 +817,7 @@ void stats_rpcloop(void *args)
}
#endif*/
memcpy(&ipbits,&cli_addr.sin_addr.s_addr,sizeof(ipbits));
if ( DOCKERFLAG != 0 )
if ( DOCKERFLAG != 0 && ipbits == DOCKERFLAG )
ipbits = localhostbits;
if ( port == RPC_port && ipbits != localhostbits )
{

Loading…
Cancel
Save