Browse Source

test

etomic
jl777 8 years ago
parent
commit
52f938aa77
  1. 22
      iguana/kmd_lookup.h

22
iguana/kmd_lookup.h

@ -419,7 +419,7 @@ cJSON *kmd_listspent(struct iguana_info *coin,char *coinaddr)
return(kmd_listaddress(coin,coinaddr,1));
}
int64_t _kmd_getbalance(struct iguana_info *coin,char *coinaddr,uint64_t *receivedp,uint64_t *sentp)
int64_t _kmd_getbalance(struct iguana_info *coin,char *coinaddr,uint64_t *receivedp,uint64_t *sentp,double *fbalancep)
{
int32_t iter,i,n; cJSON *array,*item; uint64_t value;
for (iter=1; iter<=2; iter++)
@ -434,8 +434,8 @@ int64_t _kmd_getbalance(struct iguana_info *coin,char *coinaddr,uint64_t *receiv
if ( (value= jdouble(item,"amount")*SATOSHIDEN) != 0 || (value= jdouble(item,"value")*SATOSHIDEN) != 0 )
{
if ( iter == 2 )
*receivedp += value;
else *sentp += value;
*receivedp += value, *fbalancep += dstr(value);
else *sentp += value, *fbalancep -= dstr(value);
}
}
}
@ -447,27 +447,31 @@ int64_t _kmd_getbalance(struct iguana_info *coin,char *coinaddr,uint64_t *receiv
cJSON *kmd_getbalance(struct iguana_info *coin,char *coinaddr)
{
cJSON *retjson; uint64_t s,r,sent=0,received=0; int64_t balance=0; struct kmd_addresshh *addr,*tmp; char address[64];
cJSON *retjson; double netbalance=0.,fbalance; uint64_t s,r,sent=0,received=0; int64_t balance=0; struct kmd_addresshh *addr,*tmp; char address[64];
retjson = cJSON_CreateObject();
fbalance = 0.;
if ( strcmp(coinaddr,"*") == 0 )
{
HASH_ITER(hh,coin->kmd_addresses,addr,tmp)
{
bitcoin_address(address,addr->type_rmd160[0],&addr->type_rmd160[1],20);
s = r = 0;
balance += _kmd_getbalance(coin,address,&r,&s);
if ( (r - s) > 100000*SATOSHIDEN )
balance += _kmd_getbalance(coin,address,&r,&s,&fbalance);
if ( (r - s) > 1000000*SATOSHIDEN )
printf("{\"address\":\"%s\",\"received\":%.8f,\"sent\":%.8f,\"balance\":%.8f,\"supply\":%.8f}\n",address,dstr(r),dstr(s),dstr(r)-dstr(s),dstr(balance));
received += r;
sent += s;
netbalance += fbalance;
}
if ( strcmp("KMD",coin->symbol) == 0 )
jaddnum(retjson,"interestpaid",dstr(balance) - 100000000*SATOSHIDEN - (coin->kmd_height*3));
} else balance = _kmd_getbalance(coin,coinaddr,&received,&sent);
} else balance = _kmd_getbalance(coin,coinaddr,&received,&sent,&netbalance);
jaddstr(retjson,"result","success");
jaddnum(retjson,"received",dstr(received));
jaddnum(retjson,"sent",dstr(sent));
jaddnum(retjson,"balance",dstr(balance));
if ( fabs(netbalance*SATOSHIDEN - balance) > 1 )
jaddnum(retjson,"balance",netbalance);
else jaddnum(retjson,"balance",dstr(balance));
jaddnum(retjson,"height",coin->kmd_height);
if ( strcmp("KMD",coin->symbol) == 0 )
jaddnum(retjson,"mined",coin->kmd_height*3);
@ -537,7 +541,7 @@ int32_t _kmd_bitcoinscan(struct iguana_info *coin)
{
flag = 0;
if ( (loadheight % 1000) == 0 )
printf("loading ht.%d %s\n",loadheight,jprint(kmd_getbalance(coin,"*"),1));
printf("loading ht.%d\n",loadheight);//,jprint(kmd_getbalance(coin,"*"),1));
if ( (blockjson= kmd_blockjson(&h,coin->symbol,coin->chain->serverport,coin->chain->userpass,0,loadheight)) != 0 )
{
if ( (txids= jarray(&numtxids,blockjson,"tx")) != 0 )

Loading…
Cancel
Save