jl777 7 years ago
parent
commit
8b8c7856e8
  1. 86
      iguana/exchanges/LP_ordermatch.c
  2. 81
      iguana/exchanges/LP_statemachine.c
  3. 2
      iguana/exchanges/LP_utxos.c

86
iguana/exchanges/LP_ordermatch.c

@ -435,25 +435,6 @@ int32_t LP_nanobind(void *ctx,char *pairstr)
return(pairsock); return(pairsock);
} }
/*struct LP_utxoinfo BUTXOS[100];
int32_t LP_butxo_findeither(bits256 txid,int32_t vout)
{
struct LP_utxoinfo *utxo; int32_t i,retval = 0;
portable_mutex_lock(&LP_butxomutex);
for (i=0; i<sizeof(BUTXOS)/sizeof(*BUTXOS); i++)
{
utxo = &BUTXOS[i];
if ( (vout == utxo->payment.vout && bits256_cmp(txid,utxo->payment.txid)) == 0 || (vout == utxo->deposit.vout && bits256_cmp(txid,utxo->deposit.txid) == 0) )
{
retval = 1;
break;
}
}
portable_mutex_unlock(&LP_butxomutex);
return(retval);
}*/
int32_t LP_nearest_utxovalue(struct LP_address_utxo **utxos,int32_t n,uint64_t targetval) int32_t LP_nearest_utxovalue(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);
@ -489,7 +470,7 @@ struct LP_utxoinfo *LP_address_utxopair(int32_t iambob,struct LP_address_utxo **
if ( (m= LP_address_utxo_ptrs(iambob,utxos,max,ap)) > 1 ) if ( (m= LP_address_utxo_ptrs(iambob,utxos,max,ap)) > 1 )
{ {
targetval = LP_basesatoshis(relvolume,price,txfee,desttxfee); targetval = LP_basesatoshis(relvolume,price,txfee,desttxfee);
if ( 1 ) if ( 0 )
{ {
int32_t i; int32_t i;
for (i=0; i<m; i++) for (i=0; i<m; i++)
@ -521,69 +502,6 @@ struct LP_utxoinfo *LP_address_utxopair(int32_t iambob,struct LP_address_utxo **
return(0); return(0);
} }
/*struct LP_utxoinfo *_LP_butxo_find(struct LP_utxoinfo *butxo)
{
int32_t i; struct LP_utxoinfo *utxo=0; uint32_t now = (uint32_t)time(NULL);
//portable_mutex_lock(&LP_butxomutex);
for (i=0; i<sizeof(BUTXOS)/sizeof(*BUTXOS); i++)
{
utxo = &BUTXOS[i];
if ( butxo->payment.vout == utxo->payment.vout && butxo->deposit.vout == utxo->deposit.vout && bits256_nonz(butxo->payment.txid) != 0 && bits256_nonz(butxo->deposit.txid) != 0 && bits256_cmp(butxo->payment.txid,utxo->payment.txid) == 0 && bits256_cmp(butxo->deposit.txid,utxo->deposit.txid) == 0 )
break;
if ( utxo->S.swap == 0 && now > utxo->T.swappending )
memset(utxo,0,sizeof(*utxo));
utxo = 0;
}
//portable_mutex_unlock(&LP_butxomutex);
return(utxo);
}
struct LP_utxoinfo *LP_butxo_add(struct LP_utxoinfo *butxo)
{
static struct LP_utxoinfo zeroes;
int32_t i; struct LP_utxoinfo *utxo=0;
portable_mutex_lock(&LP_butxomutex);
if ( (utxo= _LP_butxo_find(butxo)) == 0 )
{
for (i=0; i<sizeof(BUTXOS)/sizeof(*BUTXOS); i++)
{
utxo = &BUTXOS[i];
if ( memcmp(&zeroes,utxo,sizeof(*utxo)) == 0 )
{
*utxo = *butxo;
break;
}
utxo = 0;
}
}
portable_mutex_unlock(&LP_butxomutex);
return(utxo);
}
void LP_butxo_swapfields_copy(struct LP_utxoinfo *destutxo,struct LP_utxoinfo *srcutxo)
{
destutxo->S = srcutxo->S;
destutxo->T = srcutxo->T;
}
void LP_butxo_swapfields(struct LP_utxoinfo *butxo)
{
struct LP_utxoinfo *getutxo=0;
portable_mutex_lock(&LP_butxomutex);
if ( (getutxo= _LP_butxo_find(butxo)) != 0 )
LP_butxo_swapfields_copy(butxo,getutxo);
portable_mutex_unlock(&LP_butxomutex);
}
void LP_butxo_swapfields_set(struct LP_utxoinfo *butxo)
{
struct LP_utxoinfo *setutxo;
if ( (setutxo= LP_butxo_add(butxo)) != 0 )
{
LP_butxo_swapfields_copy(setutxo,butxo);
}
}*/
void LP_abutxo_set(struct LP_utxoinfo *autxo,struct LP_utxoinfo *butxo,struct LP_quoteinfo *qp) void LP_abutxo_set(struct LP_utxoinfo *autxo,struct LP_utxoinfo *butxo,struct LP_quoteinfo *qp)
{ {
if ( butxo != 0 ) if ( butxo != 0 )
@ -824,7 +742,6 @@ int32_t LP_tradecommand(void *ctx,char *myipaddr,int32_t pubsock,cJSON *argjson,
memset(autxo,0,sizeof(*autxo)); memset(autxo,0,sizeof(*autxo));
memset(butxo,0,sizeof(*butxo)); memset(butxo,0,sizeof(*butxo));
LP_abutxo_set(autxo,butxo,&Q); LP_abutxo_set(autxo,butxo,&Q);
printf("A %p, B %p\n",autxo,butxo);
//LP_butxo_swapfields(butxo); //LP_butxo_swapfields(butxo);
if ( strcmp(method,"request") == 0 ) if ( strcmp(method,"request") == 0 )
{ {
@ -974,6 +891,7 @@ char *LP_trade(void *ctx,char *myipaddr,int32_t mypubsock,struct LP_quoteinfo *q
} }
else else
{ {
printf("invalid price %.8f\n",price);
jaddnum(bestitem,"maxprice",maxprice); jaddnum(bestitem,"maxprice",maxprice);
jaddstr(bestitem,"status","no response to request"); jaddstr(bestitem,"status","no response to request");
} }

81
iguana/exchanges/LP_statemachine.c

@ -1608,6 +1608,87 @@ int32_t LP_utxopurge(int32_t allutxos)
portable_mutex_unlock(&LP_utxomutex); portable_mutex_unlock(&LP_utxomutex);
return(n); return(n);
} }
/*struct LP_utxoinfo *_LP_butxo_find(struct LP_utxoinfo *butxo)
{
int32_t i; struct LP_utxoinfo *utxo=0; uint32_t now = (uint32_t)time(NULL);
//portable_mutex_lock(&LP_butxomutex);
for (i=0; i<sizeof(BUTXOS)/sizeof(*BUTXOS); i++)
{
utxo = &BUTXOS[i];
if ( butxo->payment.vout == utxo->payment.vout && butxo->deposit.vout == utxo->deposit.vout && bits256_nonz(butxo->payment.txid) != 0 && bits256_nonz(butxo->deposit.txid) != 0 && bits256_cmp(butxo->payment.txid,utxo->payment.txid) == 0 && bits256_cmp(butxo->deposit.txid,utxo->deposit.txid) == 0 )
break;
if ( utxo->S.swap == 0 && now > utxo->T.swappending )
memset(utxo,0,sizeof(*utxo));
utxo = 0;
}
//portable_mutex_unlock(&LP_butxomutex);
return(utxo);
}
struct LP_utxoinfo *LP_butxo_add(struct LP_utxoinfo *butxo)
{
static struct LP_utxoinfo zeroes;
int32_t i; struct LP_utxoinfo *utxo=0;
portable_mutex_lock(&LP_butxomutex);
if ( (utxo= _LP_butxo_find(butxo)) == 0 )
{
for (i=0; i<sizeof(BUTXOS)/sizeof(*BUTXOS); i++)
{
utxo = &BUTXOS[i];
if ( memcmp(&zeroes,utxo,sizeof(*utxo)) == 0 )
{
*utxo = *butxo;
break;
}
utxo = 0;
}
}
portable_mutex_unlock(&LP_butxomutex);
return(utxo);
}
void LP_butxo_swapfields_copy(struct LP_utxoinfo *destutxo,struct LP_utxoinfo *srcutxo)
{
destutxo->S = srcutxo->S;
destutxo->T = srcutxo->T;
}
void LP_butxo_swapfields(struct LP_utxoinfo *butxo)
{
struct LP_utxoinfo *getutxo=0;
portable_mutex_lock(&LP_butxomutex);
if ( (getutxo= _LP_butxo_find(butxo)) != 0 )
LP_butxo_swapfields_copy(butxo,getutxo);
portable_mutex_unlock(&LP_butxomutex);
}
void LP_butxo_swapfields_set(struct LP_utxoinfo *butxo)
{
struct LP_utxoinfo *setutxo;
if ( (setutxo= LP_butxo_add(butxo)) != 0 )
{
LP_butxo_swapfields_copy(setutxo,butxo);
}
}*/
/*struct LP_utxoinfo BUTXOS[100];
int32_t LP_butxo_findeither(bits256 txid,int32_t vout)
{
struct LP_utxoinfo *utxo; int32_t i,retval = 0;
portable_mutex_lock(&LP_butxomutex);
for (i=0; i<sizeof(BUTXOS)/sizeof(*BUTXOS); i++)
{
utxo = &BUTXOS[i];
if ( (vout == utxo->payment.vout && bits256_cmp(txid,utxo->payment.txid)) == 0 || (vout == utxo->deposit.vout && bits256_cmp(txid,utxo->deposit.txid) == 0) )
{
retval = 1;
break;
}
}
portable_mutex_unlock(&LP_butxomutex);
return(retval);
}*/
struct LP_utxoinfo *LP_utxoaddjson(int32_t iambob,int32_t pubsock,cJSON *argjson) struct LP_utxoinfo *LP_utxoaddjson(int32_t iambob,int32_t pubsock,cJSON *argjson)
{ {
struct LP_utxoinfo *utxo; struct LP_utxoinfo *utxo;

2
iguana/exchanges/LP_utxos.c

@ -506,7 +506,7 @@ int32_t LP_privkey_init(int32_t mypubsock,struct iguana_info *coin,bits256 mypri
txfee = LP_txfeecalc(coin,0); txfee = LP_txfeecalc(coin,0);
if ( is_cJSON_Array(array) != 0 && (n= cJSON_GetArraySize(array)) > 0 ) if ( is_cJSON_Array(array) != 0 && (n= cJSON_GetArraySize(array)) > 0 )
{ {
printf("%s %s\n",coin->symbol,jprint(array,0)); //printf("%s %s\n",coin->symbol,jprint(array,0));
for (iambob=0; iambob<=1; iambob++) for (iambob=0; iambob<=1; iambob++)
{ {
if ( iambob == 0 ) if ( iambob == 0 )

Loading…
Cancel
Save