jl777 7 years ago
parent
commit
bafad249cf
  1. 5
      iguana/exchanges/LP_nativeDEX.c
  2. 8
      iguana/exchanges/LP_ordermatch.c

5
iguana/exchanges/LP_nativeDEX.c

@ -20,16 +20,13 @@
// marketmaker // marketmaker
// //
// new features: // new features:
// better error message in ordermatch
// withdraw
// sign packets // sign packets
// require spv validated for using in trades
// dPoW security // dPoW security
// withdraw
// stats, fix pricearray // stats, fix pricearray
// verify portfolio // verify portfolio
// bittrex balancing // bittrex balancing
// -check for completed one being spent
#include <stdio.h> #include <stdio.h>
#include "LP_include.h" #include "LP_include.h"

8
iguana/exchanges/LP_ordermatch.c

@ -441,12 +441,12 @@ int32_t LP_nanobind(void *ctx,char *pairstr)
return(pairsock); return(pairsock);
} }
int32_t LP_nearest_utxovalue(struct LP_address_utxo **utxos,int32_t n,uint64_t targetval) int32_t LP_nearest_utxovalue(int32_t noSPV,struct LP_address_utxo **utxos,int32_t n,uint64_t targetval)
{ {
int32_t i,mini = -1; int64_t dist; uint64_t mindist = (1LL << 60); int32_t i,mini = -1; int64_t dist; uint64_t mindist = (1LL << 60);
for (i=0; i<n; i++) for (i=0; i<n; i++)
{ {
if ( utxos[i] != 0 && utxos[i]->spendheight == 0 && utxos[i]->SPV > 0 ) if ( utxos[i] != 0 && (noSPV != 0 || (utxos[i]->spendheight == 0 && utxos[i]->SPV > 0)) )
{ {
dist = (utxos[i]->U.value - targetval); dist = (utxos[i]->U.value - targetval);
if ( dist >= 0 && dist < mindist ) if ( dist >= 0 && dist < mindist )
@ -484,12 +484,12 @@ struct LP_utxoinfo *LP_address_utxopair(int32_t iambob,struct LP_address_utxo **
printf("targetval %.8f vol %.8f price %.8f txfee %.8f %s\n",dstr(targetval),relvolume,price,dstr(txfee),coinaddr); printf("targetval %.8f vol %.8f price %.8f txfee %.8f %s\n",dstr(targetval),relvolume,price,dstr(txfee),coinaddr);
} }
mini = -1; mini = -1;
if ( targetval != 0 && (mini= LP_nearest_utxovalue(utxos,m,targetval)) >= 0 && (double)utxos[mini]->U.value/targetval < LP_MINVOL-1 ) if ( targetval != 0 && (mini= LP_nearest_utxovalue(coin->electrum == 0,utxos,m,targetval)) >= 0 && (double)utxos[mini]->U.value/targetval < LP_MINVOL-1 )
{ {
up = utxos[mini]; up = utxos[mini];
utxos[mini] = 0; utxos[mini] = 0;
targetval2 = (targetval / 8) * 9 + 2*txfee; targetval2 = (targetval / 8) * 9 + 2*txfee;
if ( (mini= LP_nearest_utxovalue(utxos,m,targetval2)) >= 0 ) if ( (mini= LP_nearest_utxovalue(coin->electrum == 0,utxos,m,targetval2)) >= 0 )
{ {
if ( up != 0 && (up2= utxos[mini]) != 0 ) if ( up != 0 && (up2= utxos[mini]) != 0 )
{ {

Loading…
Cancel
Save