Browse Source

test

release/v0.1
jl777 9 years ago
parent
commit
fd57248c99
  1. 16
      basilisk/basilisk.c
  2. 11
      basilisk/basilisk_bitcoin.c
  3. 2
      iguana/swaps/iguana_BTCswap.c

16
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; i<pending->numresults; 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]);

11
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);
}

2
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);

Loading…
Cancel
Save