From 616a009b8ecd22379815fe36878f3915f1045785 Mon Sep 17 00:00:00 2001 From: jl777 <jameslee777@yahoo.com> Date: Sun, 22 May 2016 13:36:32 -0500 Subject: [PATCH] test --- iguana/iguana_exchanges.c | 2 +- iguana/iguana_instantdex.c | 36 +++++++++++++++++++++--------------- 2 files changed, 22 insertions(+), 16 deletions(-) diff --git a/iguana/iguana_exchanges.c b/iguana/iguana_exchanges.c index 417bf9f83..bb83be323 100755 --- a/iguana/iguana_exchanges.c +++ b/iguana/iguana_exchanges.c @@ -585,7 +585,7 @@ char *exchanges777_process(struct exchange_info *exchange,int32_t *retvalp,struc void iguana_statemachineupdate(struct supernet_info *myinfo,struct exchange_info *exchange) { - int32_t timemod,modwidth = 1; struct iguana_info *coin; struct bitcoin_swapinfo *swap,*tmp; struct iguana_bundlereq *req; + int32_t timemod,modwidth = 3; struct iguana_info *coin; struct bitcoin_swapinfo *swap,*tmp; struct iguana_bundlereq *req; timemod = time(NULL) % modwidth; coin = iguana_coinfind("BTCD"); portable_mutex_lock(&exchange->mutexS); diff --git a/iguana/iguana_instantdex.c b/iguana/iguana_instantdex.c index 04532dcbb..73428cb01 100755 --- a/iguana/iguana_instantdex.c +++ b/iguana/iguana_instantdex.c @@ -1181,6 +1181,21 @@ struct bitcoin_swapinfo *bitcoin_swapinit(struct supernet_info *myinfo,struct ex return(swap); } +struct bitcoin_eventitem *instantdex_event(char *cmdstr,cJSON *argjson,cJSON *newjson,uint8_t *serdata,int32_t serdatalen) +{ + struct bitcoin_eventitem *ptr; + ptr = calloc(1,sizeof(*ptr) + serdatalen); + strcpy(ptr->cmd,cmdstr); + ptr->newjson = jduplicate(newjson); + ptr->argjson = jduplicate(argjson); + if ( serdatalen != 0 ) + { + memcpy(ptr->serdata,serdata,serdatalen); + ptr->serdatalen = serdatalen; + } + return(ptr); +} + char *instantdex_checkoffer(struct supernet_info *myinfo,int32_t *addedp,uint64_t *txidp,struct exchange_info *exchange,struct instantdex_accept *ap,cJSON *argjson) { struct instantdex_accept *otherap,*tmp; struct bitcoin_swapinfo *swap; cJSON *newjson; int32_t isbob = 0; char *retstr = 0; @@ -1236,6 +1251,9 @@ char *instantdex_checkoffer(struct supernet_info *myinfo,int32_t *addedp,uint64_ *addedp = 1; if ( (newjson= instantdex_parseargjson(myinfo,exchange,swap,argjson,1)) == 0 ) return(clonestr("{\"error\":\"instantdex_checkoffer null newjson\"}")); + if ( swap->pollevent != 0 ) + instantdex_eventfree(swap->pollevent); + swap->pollevent = instantdex_event("poll",argjson,newjson,(void *)swap->deck,sizeof(swap->deck)); retstr = instantdex_sendcmd(myinfo,&swap->mine.offer,newjson,"BTCoffer",GENESIS_PUBKEY,INSTANTDEX_HOPS,swap->deck,sizeof(swap->deck),0); free_json(newjson); } else printf("error creating statemachine\n"); @@ -1289,6 +1307,9 @@ char *instantdex_gotoffer(struct supernet_info *myinfo,struct exchange_info *exc } else { + if ( swap->pollevent != 0 ) + instantdex_eventfree(swap->pollevent); + swap->pollevent = instantdex_event("poll",argjson,newjson,(void *)swap->deck,sizeof(swap->deck)); retstr = instantdex_sendcmd(myinfo,&swap->mine.offer,newjson,"BTCdeckC",traderpub,INSTANTDEX_HOPS,swap->deck,sizeof(swap->deck),0); free_json(newjson); } @@ -1296,21 +1317,6 @@ char *instantdex_gotoffer(struct supernet_info *myinfo,struct exchange_info *exc return(retstr); } -struct bitcoin_eventitem *instantdex_event(char *cmdstr,cJSON *argjson,cJSON *newjson,uint8_t *serdata,int32_t serdatalen) -{ - struct bitcoin_eventitem *ptr; - ptr = calloc(1,sizeof(*ptr) + serdatalen); - strcpy(ptr->cmd,cmdstr); - ptr->newjson = jduplicate(newjson); - ptr->argjson = jduplicate(argjson); - if ( serdatalen != 0 ) - { - memcpy(ptr->serdata,serdata,serdatalen); - ptr->serdatalen = serdatalen; - } - return(ptr); -} - char *instantdex_parse(struct supernet_info *myinfo,struct instantdex_msghdr *msg,cJSON *argjson,char *remoteaddr,uint64_t signerbits,struct instantdex_offer *offer,bits256 orderhash,uint8_t *serdata,int32_t serdatalen) { char cmdstr[16],*retstr; struct exchange_info *exchange=0; struct instantdex_accept A,*ap = 0; bits256 traderpub; cJSON *newjson; struct bitcoin_swapinfo *swap; struct bitcoin_eventitem *ptr;