From 68e53c63adf86ca1ddab94be58c9a4b09d70f628 Mon Sep 17 00:00:00 2001 From: jl777 Date: Fri, 7 Apr 2017 18:29:45 +0300 Subject: [PATCH] Test --- basilisk/basilisk.c | 2 +- basilisk/basilisk_DEX.c | 6 +++++- basilisk/jumblr.c | 2 ++ basilisk/tradebots_liquidity.c | 8 ++++++++ iguana/iguana777.h | 2 +- includes/iguana_structs.h | 2 +- 6 files changed, 18 insertions(+), 4 deletions(-) diff --git a/basilisk/basilisk.c b/basilisk/basilisk.c index b2d1865b6..f1a9eb586 100755 --- a/basilisk/basilisk.c +++ b/basilisk/basilisk.c @@ -1785,7 +1785,7 @@ HASH_ARRAY_STRING(InstantDEX,request,hash,vals,hexstr) jaddbits256(vals,"srchash",hash); printf("service.(%s)\n",jprint(vals,0)); memset(&R,0,sizeof(R)); - if ( basilisk_request_create(&R,vals,hash,juint(vals,"timestamp")) == 0 ) + if ( basilisk_request_create(&R,vals,hash,juint(vals,"timestamp"),juint(vals,"DEXselector")) == 0 ) { iambob = bitcoin_coinptrs(hash,&bobcoin,&alicecoin,R.src,R.dest,privkey,GENESIS_PUBKEY); if ( (optionhours= jint(vals,"optionhours")) != 0 ) diff --git a/basilisk/basilisk_DEX.c b/basilisk/basilisk_DEX.c index 239514d47..d25e8d0ba 100755 --- a/basilisk/basilisk_DEX.c +++ b/basilisk/basilisk_DEX.c @@ -116,6 +116,8 @@ int32_t basilisk_rwDEXquote(int32_t rwflag,uint8_t *serialized,struct basilisk_r memcpy(rp->src,&serialized[len],sizeof(rp->src)), len += sizeof(rp->src); memcpy(rp->dest,&serialized[len],sizeof(rp->dest)), len += sizeof(rp->dest); } + len += iguana_rwnum(rwflag,&serialized[len],sizeof(rp->DEXselector),&rp->DEXselector); + len += iguana_rwnum(rwflag,&serialized[len],sizeof(rp->extraspace),&rp->extraspace); if ( rp->quoteid != 0 && basilisk_quoteid(rp) != rp->quoteid ) printf(" basilisk_rwDEXquote.%d: quoteid.%u mismatch calc %u rp.%p\n",rwflag,rp->quoteid,basilisk_quoteid(rp),rp); if ( basilisk_requestid(rp) != rp->requestid ) @@ -168,6 +170,7 @@ cJSON *basilisk_requestjson(struct basilisk_request *rp) jaddnum(item,"timestamp",rp->timestamp); jaddnum(item,"requestid",rp->requestid); jaddnum(item,"quoteid",rp->quoteid); + jaddnum(item,"DEXselector",rp->DEXselector); jaddnum(item,"optionhours",rp->optionhours); jaddnum(item,"profit",(double)rp->profitmargin / 1000000.); if ( rp->quoteid != 0 && basilisk_quoteid(rp) != rp->quoteid ) @@ -196,7 +199,7 @@ cJSON *basilisk_requestjson(struct basilisk_request *rp) return(item); } -int32_t basilisk_request_create(struct basilisk_request *rp,cJSON *valsobj,bits256 desthash,uint32_t timestamp) +int32_t basilisk_request_create(struct basilisk_request *rp,cJSON *valsobj,bits256 desthash,uint32_t timestamp,int32_t DEXselector) { char *dest,*src; uint32_t i; memset(rp,0,sizeof(*rp)); @@ -216,6 +219,7 @@ int32_t basilisk_request_create(struct basilisk_request *rp,cJSON *valsobj,bits2 rp->srchash = jbits256(valsobj,"srchash"); rp->optionhours = jint(valsobj,"optionhours"); rp->profitmargin = jdouble(valsobj,"profit") * 1000000; + rp->DEXselector = DEXselector; strncpy(rp->src,src,sizeof(rp->src)-1); strncpy(rp->dest,dest,sizeof(rp->dest)-1); //if ( jstr(valsobj,"relay") != 0 ) diff --git a/basilisk/jumblr.c b/basilisk/jumblr.c index 9d9209d8e..6a4a2208d 100755 --- a/basilisk/jumblr.c +++ b/basilisk/jumblr.c @@ -747,6 +747,7 @@ void jumblr_DEXcheck(struct supernet_info *myinfo,struct iguana_info *coin) jaddnum(vals,"amount",vol); jaddnum(vals,"minprice",1./(1.015 * kmdcoin->DEXinfo.btcprice)); jaddnum(vals,"usejumblr",1); + jaddnum(vals,"DEXselector",1); memset(hash.bytes,0,sizeof(hash)); kmdcoin->DEXinfo.DEXpending += vol; if ( (retstr= InstantDEX_request(myinfo,coinbtc,0,0,hash,vals,"")) != 0 ) @@ -780,6 +781,7 @@ void jumblr_DEXcheck(struct supernet_info *myinfo,struct iguana_info *coin) jaddnum(vals,"usejumblr",1); memset(hash.bytes,0,sizeof(hash)); kmdcoin->DEXinfo.KMDpending += vol; + jaddnum(vals,"DEXselector",2); if ( (retstr= InstantDEX_request(myinfo,coinbtc,0,0,hash,vals,"")) != 0 ) { printf("request.(%s) -> (%s)\n",jprint(vals,0),retstr); diff --git a/basilisk/tradebots_liquidity.c b/basilisk/tradebots_liquidity.c index c0f232942..024a554ff 100755 --- a/basilisk/tradebots_liquidity.c +++ b/basilisk/tradebots_liquidity.c @@ -1142,6 +1142,14 @@ void _default_swap_balancingtrade(struct supernet_info *myinfo,struct basilisk_s void tradebot_swap_balancingtrade(struct supernet_info *myinfo,struct basilisk_swap *swap,int32_t iambob) { + struct iguana_info *kmdcoin = iguana_coinfind("KMD"); + if ( kmdcoin != 0 ) + { + if ( swap->DEXselector == 1 ) + kmdcoin->DEXinfo.DEXpending -= swap->I.req.srcamount; + else if ( swap->DEXselector == 2 ) + kmdcoin->DEXinfo.KMDpending -= swap->I.req.srcamount; + } printf(">>>>>>>>>>>>>>>>>> balancing trade\n"); return; if ( swap->balancingtrade == 0 ) diff --git a/iguana/iguana777.h b/iguana/iguana777.h index f80919773..d17555d43 100755 --- a/iguana/iguana777.h +++ b/iguana/iguana777.h @@ -182,7 +182,7 @@ struct basilisk_swap { struct supernet_info *myinfoptr; struct iguana_info *bobcoin,*alicecoin; void (*balancingtrade)(struct supernet_info *myinfo,struct basilisk_swap *swap,int32_t iambob); - int32_t subsock,pushsock,connected; uint32_t lasttime,aborted; + int32_t subsock,pushsock,connected,DEXselector; uint32_t lasttime,aborted; FILE *fp; bits256 persistent_privkey,persistent_pubkey; struct basilisk_swapinfo I; diff --git a/includes/iguana_structs.h b/includes/iguana_structs.h index 76206c409..ad311d271 100755 --- a/includes/iguana_structs.h +++ b/includes/iguana_structs.h @@ -604,7 +604,7 @@ struct basilisk_request char src[8],dest[8]; //char volatile_start,message[43]; uint64_t destamount; - int32_t optionhours,profitmargin; + int32_t optionhours,profitmargin,DEXselector,extraspace; } PACKEDSTRUCT; struct basilisk_relaystatus