From 6ba830222673b3c39010cdd74e7889bf876f19bd Mon Sep 17 00:00:00 2001 From: jl777 Date: Fri, 27 Oct 2017 13:28:18 +0300 Subject: [PATCH] Test --- iguana/exchanges/LP_commands.c | 8 +++--- iguana/exchanges/LP_remember.c | 52 ++++++++++++++++++++++++++++++---- 2 files changed, 50 insertions(+), 10 deletions(-) diff --git a/iguana/exchanges/LP_commands.c b/iguana/exchanges/LP_commands.c index 0dbb60c1c..5489d673a 100644 --- a/iguana/exchanges/LP_commands.c +++ b/iguana/exchanges/LP_commands.c @@ -116,8 +116,8 @@ sell(base, rel, price, basevolume, timeout=10, duration=3600, nonce, pubkey="")\ withdraw(coin, outputs[])\n\ sendrawtransaction(coin, signedtx)\n\ swapstatus()\n\ -swapstatus(coin)\n\ -swapstatus(base, rel)\n\ +swapstatus(coin, limit=10)\n\ +swapstatus(base, rel, limit=10)\n\ swapstatus(requestid, quoteid)\n\ recentswaps(limit=3)\n\ public API:\n \ @@ -425,9 +425,9 @@ stop()\n\ if ( (requestid= juint(argjson,"requestid")) != 0 && (quoteid= juint(argjson,"quoteid")) != 0 ) return(basilisk_swapentry(requestid,quoteid)); else if ( coin != 0 && coin[0] != 0 ) - return(basilisk_swapentries(coin,0)); + return(basilisk_swapentries(coin,0,jint(argjson,"limit"))); else if ( base != 0 && base[0] != 0 && rel != 0 && rel[0] != 0 ) - return(basilisk_swapentries(base,rel)); + return(basilisk_swapentries(base,rel,jint(argjson,"limit"))); else return(basilisk_swaplist(0,0)); } else if ( strcmp(method,"lastnonce") == 0 ) diff --git a/iguana/exchanges/LP_remember.c b/iguana/exchanges/LP_remember.c index db3aa4c10..50711d73b 100644 --- a/iguana/exchanges/LP_remember.c +++ b/iguana/exchanges/LP_remember.c @@ -1297,8 +1297,10 @@ char *LP_recent_swaps(int32_t limit) item = cJSON_CreateObject(); jaddnum(item,"expiration",Alice_expiration); jaddnum(item,"timeleft",Alice_expiration-time(NULL)); + jaddstr(item,"bob",LP_Alicequery.srccoin); jaddstr(item,"base",LP_Alicequery.srccoin); jaddnum(item,"basevalue",dstr(LP_Alicequery.satoshis)); + jaddstr(item,"alice",LP_Alicequery.destcoin); jaddstr(item,"rel",LP_Alicequery.destcoin); jaddnum(item,"relvalue",dstr(LP_Alicequery.destsatoshis)); jadd(retjson,"pending",item); @@ -1306,7 +1308,7 @@ char *LP_recent_swaps(int32_t limit) return(jprint(retjson,1)); } -void basilisk_swap_addarray(cJSON *array,cJSON *item,char *refbase,char *refrel) +int32_t basilisk_swap_addarray(cJSON *item,char *refbase,char *refrel) { char *base,*rel; base = jstr(item,"bob"); @@ -1314,15 +1316,18 @@ void basilisk_swap_addarray(cJSON *array,cJSON *item,char *refbase,char *refrel) if ( refrel == 0 || refrel[0] == 0 ) { if ( strcmp(base,refbase) == 0 || strcmp(rel,refbase) == 0 ) - jaddi(array,item); + return(1); } else if ( strcmp(base,refbase) == 0 && strcmp(rel,refrel) == 0 ) - jaddi(array,item); + return(1); + return(0); } -char *basilisk_swapentries(char *refbase,char *refrel) +char *basilisk_swapentries(char *refbase,char *refrel,int32_t limit) { - char *liststr; cJSON *retjson,*array,*item,*retarray; int32_t i,n; + char *liststr,*retstr2; cJSON *retjson,*array,*pending,*swapjson,*item,*retarray; int32_t i,n; uint32_t requestid,quoteid; + if ( limit <= 0 ) + limit = 10; retarray = cJSON_CreateArray(); if ( (liststr= basilisk_swaplist(0,0)) != 0 ) { @@ -1334,13 +1339,48 @@ char *basilisk_swapentries(char *refbase,char *refrel) for (i=0; i 0 ) + jaddi(retarray,item); } } free_json(retjson); } free(liststr); } + if ( (liststr= LP_recent_swaps(limit)) != 0 ) + { + if ( (retjson= cJSON_Parse(liststr)) != 0 ) + { + if ( (array= jarray(&n,retjson,"swaps")) != 0 ) + { + for (i=0; i 0 ) + jaddi(retarray,swapjson); + else free_json(swapjson); + } + free(retstr2); + } + } + } + if ( (pending= jobj(retjson,"pending")) != 0 ) + { + if ( basilisk_swap_addarray(pending,refbase,refrel) > 0 ) + jaddi(retarray,pending); + else free_json(pending); + } + free_json(retjson); + } + free(liststr); + } return(jprint(retarray,1)); }