diff --git a/iguana/exchanges/LP_stats.c b/iguana/exchanges/LP_stats.c index a0cadda7e..5d6d91e97 100644 --- a/iguana/exchanges/LP_stats.c +++ b/iguana/exchanges/LP_stats.c @@ -43,20 +43,32 @@ uint64_t Ridqids[128]; int32_t LP_statslog_parsequote(char *method,cJSON *lineobj) { - int32_t i,destvout,feevout,duplicate=0; bits256 desttxid,feetxid; struct LP_quoteinfo Q; uint64_t ridqid; + double qprice; int32_t i,destvout,feevout,duplicate=0; char *base,*rel; uint64_t txfee,satoshis,destsatoshis; bits256 desttxid,feetxid; struct LP_quoteinfo Q; uint64_t ridqid; memset(&Q,0,sizeof(Q)); if ( LP_quoteparse(&Q,lineobj) < 0 ) { printf("quoteparse_error.(%s)\n",jprint(lineobj,0)); LP_parse_errors++; + return(-1); } else { - char str[65]; + base = jstr(lineobj,"base"); + rel = jstr(lineobj,"rel"); + satoshis = j64bits(lineobj,"satoshis"); + if ( base == 0 || rel == 0 || satoshis == 0 ) + { + printf("quoteparse_error.(%s)\n",jprint(lineobj,0)); + LP_parse_errors++; + return(-1); + } + txfee = j64bits(lineobj,"txfee"); + destsatoshis = j64bits(lineobj,"destsatoshis"); desttxid = jbits256(lineobj,"desttxid"); destvout = jint(lineobj,"destvout"); feetxid = jbits256(lineobj,"feetxid"); feevout = jint(lineobj,"feevout"); + qprice = ((double)destsatoshis / (satoshis - txfee)); //printf("%s/v%d %s/v%d\n",bits256_str(str,desttxid),destvout,bits256_str(str2,feetxid),feevout); ridqid = (((uint64_t)desttxid.uints[0] << 48) | ((uint64_t)destvout << 32) | ((uint64_t)feetxid.uints[0] << 16) | (uint32_t)feevout); for (i=0; i %d %s/v%d\n",method,(long long)ridqid,(int32_t)(LP_numridqids % (sizeof(Ridqids)/sizeof(*Ridqids))),bits256_str(str,desttxid),destvout); + printf("%10s ridqid.%-16llx -> [%d] %.8f %s -> %.8f %s %.8f\n",method,(long long)ridqid,(int32_t)(LP_numridqids % (sizeof(Ridqids)/sizeof(*Ridqids))),dstr(satoshis),base,dstr(destsatoshis),rel,qprice); LP_numridqids++; } }