|
|
@ -435,25 +435,6 @@ int32_t LP_nanobind(void *ctx,char *pairstr) |
|
|
|
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 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 ) |
|
|
|
{ |
|
|
|
targetval = LP_basesatoshis(relvolume,price,txfee,desttxfee); |
|
|
|
if ( 1 ) |
|
|
|
if ( 0 ) |
|
|
|
{ |
|
|
|
int32_t 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); |
|
|
|
} |
|
|
|
|
|
|
|
/*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) |
|
|
|
{ |
|
|
|
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(butxo,0,sizeof(*butxo)); |
|
|
|
LP_abutxo_set(autxo,butxo,&Q); |
|
|
|
printf("A %p, B %p\n",autxo,butxo); |
|
|
|
//LP_butxo_swapfields(butxo);
|
|
|
|
if ( strcmp(method,"request") == 0 ) |
|
|
|
{ |
|
|
@ -974,6 +891,7 @@ char *LP_trade(void *ctx,char *myipaddr,int32_t mypubsock,struct LP_quoteinfo *q |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
printf("invalid price %.8f\n",price); |
|
|
|
jaddnum(bestitem,"maxprice",maxprice); |
|
|
|
jaddstr(bestitem,"status","no response to request"); |
|
|
|
} |
|
|
|