From fd57248c99ddbc4f464811ea1a6ad0384e81563f Mon Sep 17 00:00:00 2001 From: jl777 Date: Sat, 28 May 2016 22:38:23 -0500 Subject: [PATCH] test --- basilisk/basilisk.c | 16 +++++++++------- basilisk/basilisk_bitcoin.c | 11 ++++++----- iguana/swaps/iguana_BTCswap.c | 2 +- 3 files changed, 16 insertions(+), 13 deletions(-) diff --git a/basilisk/basilisk.c b/basilisk/basilisk.c index 7e4394769..f2371c801 100755 --- a/basilisk/basilisk.c +++ b/basilisk/basilisk.c @@ -151,7 +151,8 @@ struct basilisk_item *basilisk_issueremote(struct supernet_info *myinfo,char *me //printf("issue.(%s) timeout.%d\n",jprint(hexjson,0),timeoutmillis); ptr = calloc(1,sizeof(*ptr)); ptr->basilisktag = basilisktag; - ptr->numrequired = minresults; + if ( (ptr->numrequired= minresults) == 0 ) + ptr->numrequired = 1; if ( (ptr->metricfunc= metricfunc) != 0 ) ptr->vals = jduplicate(vals); strcpy(ptr->symbol,symbol); @@ -231,6 +232,8 @@ int32_t basilisk_besti(struct basilisk_item *ptr) char *basilisk_iscomplete(struct basilisk_item *ptr) { int32_t i,numvalid,besti=-1; char *errstr = 0,*retstr = 0; + if ( ptr->childrendone < ptr->numchildren ) + return(0); if ( ptr->retstr != 0 || ptr->finished != 0 ) return(ptr->retstr); if ( (numvalid= ptr->numresults) >= ptr->numrequired ) @@ -266,11 +269,10 @@ char *basilisk_block(struct supernet_info *myinfo,struct iguana_info *coin,char } else { - if ( ptr->numrequired == 0 ) - ptr->numrequired = 1; while ( OS_milliseconds() < ptr->expiration ) { - if ( (retstr= basilisk_iscomplete(ptr)) != 0 ) + //if ( (retstr= basilisk_iscomplete(ptr)) != 0 ) + if ( (retstr= ptr->retstr) != 0 ) break; usleep(1000000); } @@ -526,12 +528,12 @@ void basilisks_loop(void *arg) { if ( (n= pending->numresults) < sizeof(pending->results)/sizeof(*pending->results) ) { - pending->results[n] = ptr->retstr; pending->numresults++; if ( (metricfunc= pending->metricfunc) == 0 ) pending->metrics[n] = n + 1; - else pending->metrics[n] = (*metricfunc)(myinfo,pending,pending->results[n]); + else pending->metrics[n] = (*metricfunc)(myinfo,pending,ptr->retstr); printf("%u Add results[%d] <- (%s) metric %f\n",pending->basilisktag,n,ptr->retstr,pending->metrics[n]); + pending->results[n] = ptr->retstr; } } free(ptr); @@ -543,7 +545,7 @@ void basilisks_loop(void *arg) if ( (metricfunc= pending->metricfunc) != 0 ) { for (i=0; inumresults; i++) - if ( pending->metrics[i] == 0. ) + if ( pending->metrics[i] == 0. && pending->results[i] != 0 ) { pending->metrics[i] = (*metricfunc)(myinfo,pending,pending->results[i]); // printf("iter.%d %p.[%d] poll metrics.%u metric %f\n",iter,pending,i,pending->basilisktag,pending->metrics[i]); diff --git a/basilisk/basilisk_bitcoin.c b/basilisk/basilisk_bitcoin.c index 4c454668b..b0a38efe1 100755 --- a/basilisk/basilisk_bitcoin.c +++ b/basilisk/basilisk_bitcoin.c @@ -431,8 +431,8 @@ void *basilisk_bitcoinvalue(struct basilisk_item *Lptr,struct supernet_info *myi } } } - //printf("bitcoinvalue issue remote\n"); - return(basilisk_issueremote(myinfo,"satoshis",coin->symbol,valsobj,timeoutmillis,juint(valsobj,"fanout"),juint(valsobj,"minresults"),basilisktag,coin->basilisk_valuemetric)); + printf("bitcoinvalue issue remote\n"); + return(basilisk_issueremote(myinfo,"value",coin->symbol,valsobj,timeoutmillis,juint(valsobj,"fanout"),juint(valsobj,"minresults"),basilisktag,coin->basilisk_valuemetric)); } double basilisk_bitcoin_rawtxmetric_dependents(struct supernet_info *myinfo,struct iguana_info *coin,struct basilisk_item *ptr,struct bitcoin_rawtxdependents *dependents) @@ -458,7 +458,7 @@ double basilisk_bitcoin_rawtxmetric_dependents(struct supernet_info *myinfo,stru if ( notfinished != 0 ) { if ( ptr->finished != 0 ) - return(-1.); + return(-13.); else return(0.); } else if ( ptr->vals != 0 ) @@ -472,7 +472,7 @@ double basilisk_bitcoin_rawtxmetric_dependents(struct supernet_info *myinfo,stru { if ( (child= dependents->ptrs[i]) != 0 && (childstr= child->retstr) != 0 ) { - printf("child.(%s)\n",childstr); + //printf("child.(%s)\n",childstr); coinaddr = &dependents->coinaddrs[64*i]; if ( (childjson= cJSON_Parse(childstr)) != 0 ) { @@ -538,7 +538,7 @@ double basilisk_bitcoin_rawtxmetric(struct supernet_info *myinfo,struct basilisk addresses = jarray(&numaddrs,ptr->vals,"addresses"); if ( (txobj= bitcoin_hex2json(coin,&txid,&msgtx,rawtx,extraspace,sizeof(extraspace),serialized)) != 0 ) { - //printf("GOT VINS.(%s) rawtx.(%s) out0 %.8f\n",jprint(vins,0),rawtx,dstr(msgtx.vouts[0].value)); + printf("GOT VINS.(%s) rawtx.(%s) out0 %.8f\n",jprint(vins,0),rawtx,dstr(msgtx.vouts[0].value)); if ( juint(txobj,"locktime") != locktime ) { printf("locktime mismatch %u != %u\n",juint(txobj,"locktime"),locktime); @@ -649,6 +649,7 @@ void *basilisk_bitcoinrawtx(struct basilisk_item *Lptr,struct supernet_info *myi addresses = jobj(valsobj,"addresses"); if ( changeaddr == 0 || changeaddr[0] == 0 || spendscriptstr == 0 || spendscriptstr[0] == 0 || amount == 0 || addresses == 0 ) { + printf("vals.(%s)\n",jprint(valsobj,0)); Lptr->retstr = clonestr("{\"error\":\"invalid changeaddr or spendscript or addresses\"}"); return(Lptr); } diff --git a/iguana/swaps/iguana_BTCswap.c b/iguana/swaps/iguana_BTCswap.c index 42e55a58e..307ae94f0 100755 --- a/iguana/swaps/iguana_BTCswap.c +++ b/iguana/swaps/iguana_BTCswap.c @@ -195,7 +195,7 @@ struct bitcoin_statetx *instantdex_signtx(char *str,struct supernet_info *myinfo jaddstr(valsobj,"coin",coin->symbol); jaddstr(valsobj,"spendscript",scriptstr); jaddstr(valsobj,"changeaddr",coin->changeaddr); - jadd64bits(valsobj,"amount",satoshis); + jadd64bits(valsobj,"satoshis",satoshis); jadd64bits(valsobj,"txfee",txfee); jaddnum(valsobj,"minconf",minconf); jaddnum(valsobj,"basilisktag",basilisktag);