|
@ -399,7 +399,7 @@ int32_t LP_connectstartbob(void *ctx,int32_t pubsock,struct LP_utxoinfo *utxo,cJ |
|
|
struct LP_quoteinfo LP_Alicequery; |
|
|
struct LP_quoteinfo LP_Alicequery; |
|
|
double LP_Alicemaxprice; |
|
|
double LP_Alicemaxprice; |
|
|
uint32_t Alice_expiration; |
|
|
uint32_t Alice_expiration; |
|
|
char *LP_trade(void *ctx,char *myipaddr,int32_t mypubsock,struct LP_quoteinfo *qp,double maxprice,int32_t timeout,int32_t duration,uint32_t botid) |
|
|
char *LP_trade(void *ctx,char *myipaddr,int32_t mypubsock,struct LP_quoteinfo *qp,double maxprice,int32_t timeout,int32_t duration,uint32_t tradeid) |
|
|
{ |
|
|
{ |
|
|
struct LP_utxoinfo *aliceutxo; double price; //cJSON *bestitem=0; int32_t DEXselector=0; uint32_t expiration; double price; struct LP_pubkeyinfo *pubp; struct basilisk_swap *swap;
|
|
|
struct LP_utxoinfo *aliceutxo; double price; //cJSON *bestitem=0; int32_t DEXselector=0; uint32_t expiration; double price; struct LP_pubkeyinfo *pubp; struct basilisk_swap *swap;
|
|
|
if ( (aliceutxo= LP_utxopairfind(0,qp->desttxid,qp->destvout,qp->feetxid,qp->feevout)) == 0 ) |
|
|
if ( (aliceutxo= LP_utxopairfind(0,qp->desttxid,qp->destvout,qp->feetxid,qp->feevout)) == 0 ) |
|
@ -409,7 +409,7 @@ char *LP_trade(void *ctx,char *myipaddr,int32_t mypubsock,struct LP_quoteinfo *q |
|
|
} |
|
|
} |
|
|
price = 0.; |
|
|
price = 0.; |
|
|
qp->aliceid = LP_aliceid_calc(qp->desttxid,qp->destvout,qp->feetxid,qp->feevout); |
|
|
qp->aliceid = LP_aliceid_calc(qp->desttxid,qp->destvout,qp->feetxid,qp->feevout); |
|
|
qp->botid = botid; |
|
|
qp->tradeid = tradeid; |
|
|
LP_query(ctx,myipaddr,mypubsock,"request",qp); |
|
|
LP_query(ctx,myipaddr,mypubsock,"request",qp); |
|
|
LP_Alicequery = *qp, LP_Alicemaxprice = maxprice, Alice_expiration = qp->timestamp + timeout; |
|
|
LP_Alicequery = *qp, LP_Alicemaxprice = maxprice, Alice_expiration = qp->timestamp + timeout; |
|
|
printf("LP_trade %s/%s %.8f vol %.8f\n",qp->srccoin,qp->destcoin,dstr(qp->satoshis),dstr(qp->destsatoshis)); |
|
|
printf("LP_trade %s/%s %.8f vol %.8f\n",qp->srccoin,qp->destcoin,dstr(qp->satoshis),dstr(qp->destsatoshis)); |
|
@ -443,7 +443,7 @@ void LP_reserved(void *ctx,char *myipaddr,int32_t mypubsock,struct LP_quoteinfo |
|
|
price = LP_pricecache(qp,qp->srccoin,qp->destcoin,qp->txid,qp->vout); |
|
|
price = LP_pricecache(qp,qp->srccoin,qp->destcoin,qp->txid,qp->vout); |
|
|
if ( LP_pricevalid(price) > 0 && maxprice > SMALLVAL && price <= maxprice ) |
|
|
if ( LP_pricevalid(price) > 0 && maxprice > SMALLVAL && price <= maxprice ) |
|
|
{ |
|
|
{ |
|
|
qp->botid = LP_Alicequery.botid; |
|
|
qp->tradeid = LP_Alicequery.tradeid; |
|
|
memset(&LP_Alicequery,0,sizeof(LP_Alicequery)); |
|
|
memset(&LP_Alicequery,0,sizeof(LP_Alicequery)); |
|
|
LP_Alicemaxprice = 0.; |
|
|
LP_Alicemaxprice = 0.; |
|
|
Alice_expiration = 0; |
|
|
Alice_expiration = 0; |
|
@ -459,7 +459,7 @@ char *LP_connectedalice(cJSON *argjson) // alice |
|
|
clonestr("{\"error\":\"cant parse quote\"}"); |
|
|
clonestr("{\"error\":\"cant parse quote\"}"); |
|
|
if ( bits256_cmp(Q.desthash,G.LP_mypub25519) != 0 ) |
|
|
if ( bits256_cmp(Q.desthash,G.LP_mypub25519) != 0 ) |
|
|
return(clonestr("{\"result\",\"update stats\"}")); |
|
|
return(clonestr("{\"result\",\"update stats\"}")); |
|
|
printf("CONNECTED.(%s) numpending.%d botid.%u\n",jprint(argjson,0),G.LP_pendingswaps,Q.botid); |
|
|
printf("CONNECTED.(%s) numpending.%d tradeid.%u\n",jprint(argjson,0),G.LP_pendingswaps,Q.tradeid); |
|
|
/*if ( LP_alice_eligible() == 0 || LP_quotecmp(&Q,&LP_Alicequery) != 0 )
|
|
|
/*if ( LP_alice_eligible() == 0 || LP_quotecmp(&Q,&LP_Alicequery) != 0 )
|
|
|
{ |
|
|
{ |
|
|
printf("reject mismatched alice query\n"); |
|
|
printf("reject mismatched alice query\n"); |
|
@ -507,7 +507,7 @@ char *LP_connectedalice(cJSON *argjson) // alice |
|
|
//nn_setsockopt(pairsock,NN_SOL_SOCKET,NN_RCVTIMEO,&timeout,sizeof(timeout));
|
|
|
//nn_setsockopt(pairsock,NN_SOL_SOCKET,NN_RCVTIMEO,&timeout,sizeof(timeout));
|
|
|
LP_requestinit(&Q.R,Q.srchash,Q.desthash,Q.srccoin,Q.satoshis-2*Q.txfee,Q.destcoin,Q.destsatoshis-2*Q.desttxfee,Q.timestamp,Q.quotetime,DEXselector); |
|
|
LP_requestinit(&Q.R,Q.srchash,Q.desthash,Q.srccoin,Q.satoshis-2*Q.txfee,Q.destcoin,Q.destsatoshis-2*Q.desttxfee,Q.timestamp,Q.quotetime,DEXselector); |
|
|
swap = LP_swapinit(0,0,Q.privkey,&Q.R,&Q); |
|
|
swap = LP_swapinit(0,0,Q.privkey,&Q.R,&Q); |
|
|
swap->botid = Q.botid; |
|
|
swap->tradeid = Q.tradeid; |
|
|
swap->N.pair = pairsock; |
|
|
swap->N.pair = pairsock; |
|
|
autxo->S.swap = swap; |
|
|
autxo->S.swap = swap; |
|
|
swap->utxo = autxo; |
|
|
swap->utxo = autxo; |
|
@ -861,7 +861,7 @@ struct LP_utxoinfo *LP_buyutxo(double *ordermatchpricep,int64_t *bestsatoshisp,i |
|
|
return(bestutxo); |
|
|
return(bestutxo); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
char *LP_autobuy(void *ctx,char *myipaddr,int32_t mypubsock,char *base,char *rel,double maxprice,double relvolume,int32_t timeout,int32_t duration,char *gui,uint32_t nonce,bits256 destpubkey,uint32_t botid) |
|
|
char *LP_autobuy(void *ctx,char *myipaddr,int32_t mypubsock,char *base,char *rel,double maxprice,double relvolume,int32_t timeout,int32_t duration,char *gui,uint32_t nonce,bits256 destpubkey,uint32_t tradeid) |
|
|
{ |
|
|
{ |
|
|
uint64_t desttxfee,txfee; uint32_t lastnonce; int32_t i,maxiters,numpubs = 0; int64_t bestsatoshis=0,destsatoshis,bestdestsatoshis=0; struct iguana_info *basecoin,*relcoin; struct LP_utxoinfo *autxo,*bestutxo = 0; double qprice,ordermatchprice=0.; struct LP_quoteinfo Q; bits256 pubkeys[100]; |
|
|
uint64_t desttxfee,txfee; uint32_t lastnonce; int32_t i,maxiters,numpubs = 0; int64_t bestsatoshis=0,destsatoshis,bestdestsatoshis=0; struct iguana_info *basecoin,*relcoin; struct LP_utxoinfo *autxo,*bestutxo = 0; double qprice,ordermatchprice=0.; struct LP_quoteinfo Q; bits256 pubkeys[100]; |
|
|
basecoin = LP_coinfind(base); |
|
|
basecoin = LP_coinfind(base); |
|
@ -965,7 +965,7 @@ char *LP_autobuy(void *ctx,char *myipaddr,int32_t mypubsock,char *base,char *rel |
|
|
continue; |
|
|
continue; |
|
|
else return(clonestr("{\"error\":\"cant ordermatch to destpubkey\"}")); |
|
|
else return(clonestr("{\"error\":\"cant ordermatch to destpubkey\"}")); |
|
|
} |
|
|
} |
|
|
return(LP_trade(ctx,myipaddr,mypubsock,&Q,maxprice,timeout,duration,botid)); |
|
|
return(LP_trade(ctx,myipaddr,mypubsock,&Q,maxprice,timeout,duration,tradeid)); |
|
|
} |
|
|
} |
|
|
return(clonestr("{\"error\":\"cant get here\"}")); |
|
|
return(clonestr("{\"error\":\"cant get here\"}")); |
|
|
} |
|
|
} |
|
|