Browse Source

test

release/v0.1
jl777 9 years ago
parent
commit
976f711e75
  1. 118
      basilisk/basilisk_swap.c
  2. 2
      iguana/tests/decoderawtransactionB
  3. 7
      iguana/tests/loop

118
basilisk/basilisk_swap.c

@ -112,6 +112,62 @@ int32_t basilisk_alicescript(uint8_t *script,int32_t n,char *msigaddr,uint8_t al
return(n);
}
int32_t basilisk_numconfirms(struct supernet_info *myinfo,struct basilisk_rawtx *rawtx)
{
cJSON *argjson,*valuearray=0,*item; char *valstr; int32_t numconfirms,height,i,n;
return(10);
argjson = cJSON_CreateObject();
jaddbits256(argjson,"txid",rawtx->actualtxid);
jaddnum(argjson,"vout",0);
jaddstr(argjson,"coin",rawtx->coin->symbol);
if ( (valstr= basilisk_value(myinfo,rawtx->coin,0,0,myinfo->myaddr.persistent,argjson,0)) != 0 )
{
char str[65]; printf("%s %s valstr.(%s)\n",rawtx->name,bits256_str(str,rawtx->actualtxid),valstr);
if ( (valuearray= cJSON_Parse(valstr)) != 0 )
{
if ( is_cJSON_Array(valuearray) != 0 )
{
n = cJSON_GetArraySize(valuearray);
for (i=0; i<n; i++)
{
item = jitem(valuearray,i);
height = jint(valuearray,"height");
numconfirms = jint(valuearray,"numconfirms");
if ( height > 0 && numconfirms >= 0 )
{
free_json(argjson);
free_json(valuearray);
free(valstr);
printf("%s height.%d -> numconfirms.%d\n",bits256_str(str,rawtx->actualtxid),height,numconfirms);
}
}
}
}
}
free_json(argjson);
if ( valuearray != 0 )
free_json(valuearray);
free(valstr);
return(-1);
}
bits256 basilisk_swap_broadcast(char *name,struct supernet_info *myinfo,struct basilisk_swap *swap,struct iguana_info *coin,uint8_t *data,int32_t datalen)
{
bits256 txid; char *signedtx;
memset(txid.bytes,0,sizeof(txid));
if ( data != 0 && datalen != 0 )
{
txid = bits256_doublesha256(0,data,datalen);
return(txid);
signedtx = malloc(datalen*2 + 1);
init_hexbytes_noT(signedtx,data,datalen);
txid = iguana_sendrawtransaction(myinfo,coin,signedtx);
char str[65]; printf("%s <- sendrawtransaction %s.(%s)\n",name,signedtx,bits256_str(str,txid));
free(signedtx);
}
return(txid);
}
int32_t basilisk_rawtx_spend(struct supernet_info *myinfo,struct basilisk_swap *swap,struct basilisk_rawtx *dest,struct basilisk_rawtx *rawtx,bits256 privkey,bits256 *privkey2,uint8_t *userdata,int32_t userdatalen)
{
char *rawtxbytes,*signedtx,hexstr[999],wifstr[128]; cJSON *txobj,*vins,*item,*sobj,*privkeys; int32_t retval = -1; struct vin_info V; uint32_t locktime=0;
@ -190,7 +246,7 @@ int32_t basilisk_verify_otherfee(struct supernet_info *myinfo,struct basilisk_sw
// add verification
swap->otherfee.txbytes = calloc(1,datalen);
memcpy(swap->otherfee.txbytes,data,datalen);
swap->otherfee.signedtxid = bits256_doublesha256(0,data,datalen);
swap->otherfee.actualtxid = swap->otherfee.signedtxid = bits256_doublesha256(0,data,datalen);
return(0);
}
@ -283,62 +339,6 @@ int32_t basilisk_verify_alicepaid(struct supernet_info *myinfo,struct basilisk_s
else return(-1);
}
int32_t basilisk_numconfirms(struct supernet_info *myinfo,struct basilisk_rawtx *rawtx)
{
cJSON *argjson,*valuearray=0,*item; char *valstr; int32_t numconfirms,height,i,n;
/*int32_t height; struct iguana_txid T;
if ( iguana_txidfind(rawtx->coin,&height,&T,rawtx->actualtxid,rawtx->coin->bundlescount-1) != 0 )*/
argjson = cJSON_CreateObject();
jaddbits256(argjson,"txid",rawtx->actualtxid);
jaddnum(argjson,"vout",0);
jaddstr(argjson,"coin",rawtx->coin->symbol);
if ( (valstr= basilisk_value(myinfo,rawtx->coin,0,0,myinfo->myaddr.persistent,argjson,0)) != 0 )
{
printf("valstr.(%s)\n",valstr);
if ( (valuearray= cJSON_Parse(valstr)) != 0 )
{
if ( is_cJSON_Array(valuearray) != 0 )
{
n = cJSON_GetArraySize(valuearray);
for (i=0; i<n; i++)
{
item = jitem(valuearray,i);
height = jint(valuearray,"height");
numconfirms = jint(valuearray,"numconfirms");
if ( height > 0 && numconfirms >= 0 )
{
free_json(argjson);
free_json(valuearray);
free(valstr);
char str[65]; printf("%s height.%d -> numconfirms.%d\n",bits256_str(str,rawtx->actualtxid),height,numconfirms);
}
}
}
}
}
free_json(argjson);
if ( valuearray != 0 )
free_json(valuearray);
free(valstr);
return(-1);
}
bits256 basilisk_swap_broadcast(char *name,struct supernet_info *myinfo,struct basilisk_swap *swap,struct iguana_info *coin,uint8_t *data,int32_t datalen)
{
bits256 txid; char *signedtx;
memset(txid.bytes,0,sizeof(txid));
if ( data != 0 && datalen != 0 )
{
//txid = bits256_doublesha256(0,data,datalen);
signedtx = malloc(datalen*2 + 1);
init_hexbytes_noT(signedtx,data,datalen);
txid = iguana_sendrawtransaction(myinfo,coin,signedtx);
char str[65]; printf("%s <- sendrawtransaction %s.(%s)\n",name,signedtx,bits256_str(str,txid));
free(signedtx);
}
return(txid);
}
int32_t basilisk_privAm_extract(struct supernet_info *myinfo,struct basilisk_swap *swap)
{
// need to scan blockchain for alicespend of bobpayment
@ -870,11 +870,11 @@ uint32_t basilisk_swapdata_rawtxsend(struct supernet_info *myinfo,struct basilis
if ( basilisk_swapdata_rawtx(myinfo,swap,data,maxlen,rawtx) != 0 )
{
rawtx->actualtxid = basilisk_swap_broadcast(rawtx->name,myinfo,swap,rawtx->coin,rawtx->txbytes,rawtx->datalen);
//char str[65],str2[65]; printf("rawtxsend %s vs %s\n",bits256_str(str,rawtx->signedtxid),bits256_str(str2,rawtx->actualtxid));
char str[65],str2[65]; printf("rawtxsend %s vs %s\n",bits256_str(str,rawtx->signedtxid),bits256_str(str2,rawtx->actualtxid));
if ( bits256_nonz(rawtx->actualtxid) != 0 && msgbits != 0 )
return(basilisk_swapsend(myinfo,swap,msgbits,rawtx->txbytes,rawtx->datalen,nextbits));
else return(nextbits);
}
} else printf("error from basilisk_swapdata_rawtx %p len.%d\n",rawtx->txbytes,rawtx->datalen);
return(0);
}

2
iguana/tests/decoderawtransactionB

@ -1 +1 @@
curl --url "http://127.0.0.1:7778" --data "{\"coin\":\"BTCD\",\"method\":\"decoderawtransaction\",\"params\":[\"0400000046807e57010000000000000000000000000000000000000000000000000000000000000000000000006b48304502210094c798c29a6a390c86916dcdf58b5004930e39f4f0335026fa1db2c18b09cfe20220142ebaf67c762bf353e3f1f80d73ea1b7cda2f7aa7fa5eba2d5e4783bdcbc7ac01210268fc0261298f1efc56f7303f35d668191d151e271a81ef23ab06a53e7fc2100effffffff01f0b9f505000000001976a9143ef4734c1141725c095342095f6e0e7748b6c16588ac00000000\"]}"
curl --url "http://127.0.0.1:7778" --data "{\"coin\":\"BTCD\",\"method\":\"decoderawtransaction\",\"params\":[\"0100000052937e57018b8a679be9116f47d5c8748c2e81e62a532e9b9b08b7840341efaf937b29823d010000000100ffffffff02a0860100000000001976a914ca1e04745e8ca0c60d8c5881531d51bec470743f88ac908a773b000000001976a914c210f6711e98fe9971757ede2b2dcb0507f3f25e88ac00000000\"]}"

7
iguana/tests/loop

@ -0,0 +1,7 @@
cd ..
pkill iguana
./m_LP
while true
do ../../agents/iguana
done
Loading…
Cancel
Save