Browse Source

test

release/v0.1
jl777 9 years ago
parent
commit
813b96eec8
  1. 23
      basilisk/basilisk.c
  2. 4
      basilisk/basilisk_bitcoin.c
  3. 4
      iguana/iguana_msg.c
  4. 2
      iguana/iguana_peers.c
  5. 4
      iguana/iguana_sign.c
  6. 2
      iguana/tests/backupwallet
  7. 2
      iguana/tests/rawtx

23
basilisk/basilisk.c

@ -226,8 +226,16 @@ xxx
STRING_ARRAY_OBJ_STRING(basilisk,rawtx,changeaddr,addresses,vals,spendscriptstr)
{
cJSON *argjson=0,*retjson,*hexjson; char *rawtx=0,*symbol=0; int64_t txfee,satoshis; uint32_t locktime,minconf,basilisktag; int32_t timeout;
cJSON *argjson=0,*retjson,*hexjson; char *rawtx=0,*symbol=0; int64_t txfee,satoshis; uint32_t locktime,minconf,basilisktag; int32_t timeout,i,n;
//printf("RAWTX changeaddr.%s (%s) remote.(%s)\n",changeaddr==0?"":changeaddr,jprint(json,0),remoteaddr);
if ( addresses == 0 || (n= cJSON_GetArraySize(addresses)) <= 0 || changeaddr == 0 || changeaddr[0] == 0 )
return(clonestr("{\"error\":\"invalid addresses[] or changeaddr\"}"));
else
{
for (i=0; i<n; i++)
if ( strcmp(jstri(addresses,i),changeaddr) == 0 )
return(clonestr("{\"error\":\"changeaddr cant be in addresses[]\"}"));
}
retjson = cJSON_CreateObject();
if ( spendscriptstr != 0 && spendscriptstr[0] != 0 && (symbol= jstr(vals,"coin")) != 0 )
{
@ -242,7 +250,7 @@ STRING_ARRAY_OBJ_STRING(basilisk,rawtx,changeaddr,addresses,vals,spendscriptstr)
OS_randombytes((uint8_t *)&basilisktag,sizeof(basilisktag));
if ( (rawtx= basilisk_issuerawtx(myinfo,remoteaddr,basilisktag,symbol,&argjson,locktime,satoshis,spendscriptstr,changeaddr,txfee,minconf,addresses,timeout)) != 0 )
{
printf("return rawtx.(%s) remote.%p symbol.%s\n",rawtx,remoteaddr,symbol);
//printf("return rawtx.(%s) remote.%p symbol.%s\n",rawtx,remoteaddr,symbol);
if ( remoteaddr != 0 && remoteaddr[0] != 0 && (coin= iguana_coinfind(symbol)) != 0 )
{
hexjson = cJSON_CreateObject();
@ -269,7 +277,7 @@ STRING_ARRAY_OBJ_STRING(basilisk,rawtx,changeaddr,addresses,vals,spendscriptstr)
ARRAY_OBJ_INT(basilisk,result,args,vals,basilisktag)
{
struct basilisk_item *ptr; char *hexmsg;
struct basilisk_item *ptr; char *hexmsg=0;
if ( vals != 0 && (hexmsg= jstr(vals,"hexmsg")) != 0 )
{
ptr = calloc(1,sizeof(*ptr) + strlen(hexmsg) + 1);
@ -278,9 +286,10 @@ ARRAY_OBJ_INT(basilisk,result,args,vals,basilisktag)
if ( args != 0 )
ptr->resultargs[0] = jduplicate(args);
ptr->numresults = 1;
//printf("Q results hexmsg.(%s) args.(%s)\n",hexmsg,jprint(args,0));
queue_enqueue("resultsQ",&myinfo->basilisks.resultsQ,&ptr->DL,0);
return(clonestr("{\"result\":\"queued basilisk return\"}"));
}
} else printf("null vals.(%s) or no hexmsg.%p\n",jprint(vals,0),hexmsg);
return(clonestr("{\"error\":\"no hexmsg to return\"}"));
}
@ -314,6 +323,8 @@ char *basilisk_hexmsg(struct supernet_info *myinfo,struct category_info *cat,voi
int32_t timeout = juint(valsobj,"timeout");
uint32_t locktime = juint(valsobj,"locktime");
uint32_t basilisktag = juint(valsobj,"basilisktag");
if ( txfee == 0 )
txfee = coin->chain->txfee;
retstr = basilisk_issuerawtx(myinfo,remoteaddr,basilisktag,coin->symbol,&vins,locktime,amount,jstr(json,"spendscriptstr"),jstr(json,"changeaddr"),txfee,minconf,jobj(json,"addresses"),timeout);
}
else if ( strcmp(method,"balances") == 0 )
@ -348,10 +359,10 @@ char *basilisk_hexmsg(struct supernet_info *myinfo,struct category_info *cat,voi
{
if ( strcmp(method,"result") == 0 )
{
printf("got rawtx.(%s)\n",jstr(valsobj,"rawtx"));
//printf("got rawtx.(%s)\n",jstr(valsobj,"hexmsg"));
if ( jstr(valsobj,"coin") != 0 )
coin = iguana_coinfind(jstr(valsobj,"coin"));
return(basilisk_result(myinfo,coin,json,remoteaddr,jobj(json,"args"),jobj(valsobj,"hexmsg"),juint(json,"basilisktag")));
return(basilisk_result(myinfo,coin,json,remoteaddr,jobj(json,"args"),valsobj,juint(json,"basilisktag")));
}
}
}

4
basilisk/basilisk_bitcoin.c

@ -427,6 +427,7 @@ int64_t basilisk_bitcointxcost(struct supernet_info *myinfo,struct iguana_info *
decode_hex(script,spendlen,spendscriptstr);
if ( (txobj= bitcoin_hex2json(coin,&txid,&msgtx,rawtx,extraspace,sizeof(extraspace))) != 0 )
{
//printf("GOTTX.(%s)\n",jprint(txobj,0));
if ( juint(txobj,"locktime") != locktime )
{
printf("locktime mismatch %u != %u\n",juint(txobj,"locktime"),locktime);
@ -456,6 +457,7 @@ int64_t basilisk_bitcointxcost(struct supernet_info *myinfo,struct iguana_info *
free_json(txobj);
return(-1);
}
printf("Valid spend %.8f to %s\n",dstr(V.amount),V.coinaddr);
}
else
{
@ -463,7 +465,7 @@ int64_t basilisk_bitcointxcost(struct supernet_info *myinfo,struct iguana_info *
free_json(txobj);
return(-1);
}
}
} else printf("cant find spend info.(%s)\n",jprint(vin,0));
}
if ( (vouts= jarray(&n,txobj,"vout")) != 0 && n == msgtx.tx_out )
{

4
iguana/iguana_msg.c

@ -575,7 +575,7 @@ int32_t iguana_msgparser(struct iguana_info *coin,struct iguana_peer *addr,struc
strcpy(addr->lastcommand,H->command);
if ( strncmp(H->command,"SuperNET",strlen("SuperNET")) == 0 )
{
printf("iguana_msgparser from (%s) parse.(%s) len.%d\n",addr->ipaddr,H->command,recvlen);
//printf("iguana_msgparser from (%s) parse.(%s) len.%d\n",addr->ipaddr,H->command,recvlen);
addr->supernet = 1;
addr->msgcounts.verack++;
len = recvlen;
@ -592,7 +592,7 @@ int32_t iguana_msgparser(struct iguana_info *coin,struct iguana_peer *addr,struc
iguana_send_supernet(addr,retstr,delay);
free(retstr);
}
printf("GOT.(%s) len.%d from %s -> ret.(%s)\n",H->command,recvlen,addr->ipaddr,retstr==0?"null":retstr);
//printf("GOT.(%s) len.%d from %s -> ret.(%s)\n",H->command,recvlen,addr->ipaddr,retstr==0?"null":retstr);
return(0);
}
else if ( strcmp(H->command,"InstantDEX") == 0 )

2
iguana/iguana_peers.c

@ -416,7 +416,7 @@ int32_t iguana_send(struct iguana_info *coin,struct iguana_peer *addr,uint8_t *s
remains = len;
if ( strncmp((char *)&serialized[4],"SuperNET",strlen("SuperNET")) == 0 )
{
printf(" >>>>>>> send.(%s) %d bytes to %s:%u supernet.%d\n",(char *)&serialized[4],len,addr->ipaddr,addr->A.port,addr->supernet);
//printf(" >>>>>>> send.(%s) %d bytes to %s:%u supernet.%d\n",(char *)&serialized[4],len,addr->ipaddr,addr->A.port,addr->supernet);
}
else if ( addr->msgcounts.verack == 0 && (strcmp((char *)&serialized[4],"version") != 0 && strcmp((char *)&serialized[4],"ConnectTo") != 0 && strcmp((char *)&serialized[4],"verack") != 0) != 0 )
{

4
iguana/iguana_sign.c

@ -382,8 +382,10 @@ int32_t iguana_rwmsgtx(struct iguana_info *coin,int32_t rwflag,cJSON *json,uint8
if ( array != 0 )
{
if ( sigser != 0 )
{
printf("vini.%d spendscript.%p spendlen.%d\n",i,msg->vins[i].spendscript,msg->vins[i].spendlen);
sigtxid = bitcoin_sigtxid(coin,sigser,maxsize,msg,i,msg->vins[i].spendscript,msg->vins[i].spendlen,SIGHASH_ALL,vpnstr);
else memset(sigtxid.bytes,0,sizeof(sigtxid));
} else memset(sigtxid.bytes,0,sizeof(sigtxid));
jaddi(array,iguana_vinjson(coin,&msg->vins[i],sigtxid));
}
}

2
iguana/tests/backupwallet

@ -1 +1 @@
curl --url "http://127.0.0.1:7778" --data "{\"method\":\"backupwallet\",\"params\":[\"testwallet\"]}"
curl --url "http://127.0.0.1:7778" --data "{\"coin\":\"BTC\",\"method\":\"backupwallet\",\"params\":[\"testwallet\"]}"

2
iguana/tests/rawtx

@ -1 +1 @@
curl --url "http://127.0.0.1:7778" --data "{\"timeout\":2000,\"agent\":\"basilisk\",\"method\":\"rawtx\",\"changeaddr\":\"1Hgzt5xsnbfc8UTWqWKSTLRm5bEYHYBoCE\",\"addresses\":[\"1Hgzt5xsnbfc8UTWqWKSTLRm5bEYHYBoCE\"],\"vals\":{\"coin\":\"BTC\",\"amount\":\"20000\"},\"spendscriptstr\":\"76a914b7128d2ee837cf03e30a2c0e3e0181f7b9669bb688ac\"}"
curl --url "http://127.0.0.1:7778" --data "{\"timeout\":5000,\"agent\":\"basilisk\",\"method\":\"rawtx\",\"changeaddr\":\"1FNhoaBYzf7safMBjoCsJYgxtah3K95sep\",\"addresses\":[\"1Hgzt5xsnbfc8UTWqWKSTLRm5bEYHYBoCE\"],\"vals\":{\"coin\":\"BTC\",\"amount\":\"20000\"},\"spendscriptstr\":\"76a914b7128d2ee837cf03e30a2c0e3e0181f7b9669bb688ac\"}"

Loading…
Cancel
Save