From e976d51248f8ea6dfddd684c1aa2fce9d799ed18 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 8 Aug 2016 12:32:34 -0300 Subject: [PATCH] test --- basilisk/basilisk.c | 2 +- basilisk/basilisk_bitcoin.c | 2 +- basilisk/basilisk_swap.c | 50 +++++++++++++++++++++++++++---------- 3 files changed, 39 insertions(+), 15 deletions(-) diff --git a/basilisk/basilisk.c b/basilisk/basilisk.c index 7cbc2c15c..725851e6c 100755 --- a/basilisk/basilisk.c +++ b/basilisk/basilisk.c @@ -209,7 +209,7 @@ int32_t basilisk_sendcmd(struct supernet_info *myinfo,char *destipaddr,char *typ continue; if ( s == n && (addr->supernet != 0 || addr->basilisk != 0) && (destipaddr == 0 || strcmp(addr->ipaddr,destipaddr) == 0) ) { - //printf("i.%d l.%d [%s].tag%d send %s.(%s) [%x] datalen.%d addr->supernet.%u basilisk.%u to (%s).%d destip.%s\n",i,l,cmd,*(uint32_t *)data,type,(char *)&data[4],*(int32_t *)&data[datalen-4],datalen,addr->supernet,addr->basilisk,addr->ipaddr,addr->A.port,destipaddr!=0?destipaddr:"broadcast"); + printf("i.%d l.%d [%s].tag%d send %s.(%s) [%x] datalen.%d addr->supernet.%u basilisk.%u to (%s).%d destip.%s\n",i,l,cmd,*(uint32_t *)data,type,(char *)&data[4],*(int32_t *)&data[datalen-4],datalen,addr->supernet,addr->basilisk,addr->ipaddr,addr->A.port,destipaddr!=0?destipaddr:"broadcast"); if ( encryptflag != 0 && bits256_nonz(addr->pubkey) != 0 ) { void *ptr; uint8_t *cipher,space[8192]; int32_t cipherlen; bits256 privkey; diff --git a/basilisk/basilisk_bitcoin.c b/basilisk/basilisk_bitcoin.c index db663ef91..c58606266 100755 --- a/basilisk/basilisk_bitcoin.c +++ b/basilisk/basilisk_bitcoin.c @@ -497,7 +497,7 @@ char *basilisk_bitcoinrawtx(struct supernet_info *myinfo,struct iguana_info *coi jadd(valsobj,"addresses",addresses); } //printf("use addresses.(%s)\n",jprint(addresses,0)); - printf("(%s) vals.(%s) change.(%s) spend.%s\n",coin->symbol,jprint(valsobj,0),changeaddr,spendscriptstr); + //printf("(%s) vals.(%s) change.(%s) spend.%s\n",coin->symbol,jprint(valsobj,0),changeaddr,spendscriptstr); if ( changeaddr == 0 || changeaddr[0] == 0 || spendscriptstr == 0 || spendscriptstr[0] == 0 ) return(clonestr("{\"error\":\"invalid changeaddr or spendscript or addresses\"}")); if ( coin != 0 )//&& basilisk_bitcoinavail(coin) != 0 ) diff --git a/basilisk/basilisk_swap.c b/basilisk/basilisk_swap.c index f2973a19b..1865f7182 100755 --- a/basilisk/basilisk_swap.c +++ b/basilisk/basilisk_swap.c @@ -311,12 +311,36 @@ int32_t basilisk_rawtx_spendscript(struct supernet_info *myinfo,int32_t height,s return(retval); } +int32_t basilisk_swapuserdata(uint8_t *userdata,int32_t pushpriv,bits256 privkey,uint8_t addrtype,bits256 pubkey,int32_t ifpath) +{ + int32_t i,len = 0; + if ( pushpriv != 0 ) + { + userdata[len++] = sizeof(privkey); + for (i=0; i if path, 0 -> else path + return(len); +} + +/* Bob deposit: + OP_IF + OP_CLTV OP_DROP OP_CHECKSIG + OP_ELSE + OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG + OP_ENDIF*/ + int32_t basilisk_verify_bobdeposit(struct supernet_info *myinfo,struct basilisk_swap *swap,uint8_t *data,int32_t datalen) { uint8_t userdata[512]; int32_t len = 0; if ( basilisk_rawtx_spendscript(myinfo,swap->bobcoin->blocks.hwmchain.height,&swap->bobdeposit,0,data,datalen,0) == 0 ) { - userdata[len++] = 0x51; // true -> if path + len = basilisk_swapuserdata(userdata,0,GENESIS_PRIVKEY,0x02,swap->pubA0,1); return(basilisk_rawtx_sign(myinfo,swap->bobcoin->blocks.hwmchain.height,swap,&swap->aliceclaim,&swap->bobdeposit,swap->myprivs[0],0,userdata,len)); } printf("error with bobdeposit\n"); @@ -325,33 +349,33 @@ int32_t basilisk_verify_bobdeposit(struct supernet_info *myinfo,struct basilisk_ int32_t basilisk_bobdeposit_refund(struct supernet_info *myinfo,struct basilisk_swap *swap) { - uint8_t userdata[512]; int32_t i,len = 0; + uint8_t userdata[512]; int32_t len = 0; printf("basilisk_bobdeposit_refund\n"); - userdata[len++] = sizeof(swap->privBn); - for (i=0; iprivBn); i++) - userdata[len++] = swap->privBn.bytes[sizeof(swap->privBn) - 1 - i]; - userdata[len++] = 0; // false -> else path + len = basilisk_swapuserdata(userdata,1,swap->privBn,0x03,swap->pubB0,0); return(basilisk_rawtx_sign(myinfo,swap->bobcoin->blocks.hwmchain.height,swap,&swap->bobrefund,&swap->bobdeposit,swap->myprivs[0],0,userdata,len)); } +/*Bob paytx: + OP_IF + OP_CLTV OP_DROP OP_CHECKSIG + OP_ELSE + OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG + OP_ENDIF*/ + int32_t basilisk_bobpayment_reclaim(struct supernet_info *myinfo,struct basilisk_swap *swap) { uint8_t userdata[512]; int32_t len = 0; printf("basilisk_bobpayment_reclaim\n"); - userdata[len++] = 0x51; // true -> if path + len = basilisk_swapuserdata(userdata,0,GENESIS_PRIVKEY,0x03,swap->pubB1,1); return(basilisk_rawtx_sign(myinfo,swap->bobcoin->blocks.hwmchain.height,swap,&swap->bobreclaim,&swap->bobpayment,swap->myprivs[1],0,userdata,len)); } int32_t basilisk_verify_bobpaid(struct supernet_info *myinfo,struct basilisk_swap *swap,uint8_t *data,int32_t datalen) { - uint8_t userdata[512]; int32_t i,len = 0; + uint8_t userdata[512]; int32_t len = 0; if ( basilisk_rawtx_spendscript(myinfo,swap->bobcoin->blocks.hwmchain.height,&swap->bobpayment,0,data,datalen,0) == 0 ) { - // OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG - userdata[len++] = sizeof(swap->privAm); - for (i=0; iprivAm); i++) - userdata[len++] = swap->privAm.bytes[sizeof(swap->privAm) - 1 - i]; - userdata[len++] = 0; // false -> else path + len = basilisk_swapuserdata(userdata,1,swap->privAm,0x02,swap->pubA0,0); char str[65]; printf("bobpaid.(%s)\n",bits256_str(str,swap->privAm)); return(basilisk_rawtx_sign(myinfo,swap->bobcoin->blocks.hwmchain.height,swap,&swap->alicespend,&swap->bobpayment,swap->myprivs[0],0,userdata,len)); } else return(-1);