jl777 8 years ago
parent
commit
ce95a20673
  1. 2
      iguana/exchanges/LP_include.h
  2. 6
      iguana/exchanges/LP_nativeDEX.c
  3. 2
      iguana/exchanges/LP_socket.c
  4. 2
      iguana/exchanges/LP_utxo.c
  5. 18
      iguana/exchanges/LP_utxos.c

2
iguana/exchanges/LP_include.h

@ -304,7 +304,7 @@ int32_t LP_mempoolscan(char *symbol,bits256 searchtxid);
int32_t LP_txheight(struct iguana_info *coin,bits256 txid); int32_t LP_txheight(struct iguana_info *coin,bits256 txid);
int32_t LP_address_utxoadd(struct iguana_info *coin,char *coinaddr,bits256 txid,int32_t vout,uint64_t value,int32_t height,int32_t spendheight); int32_t LP_address_utxoadd(struct iguana_info *coin,char *coinaddr,bits256 txid,int32_t vout,uint64_t value,int32_t height,int32_t spendheight);
cJSON *LP_address_utxos(struct iguana_info *coin,char *coinaddr,int32_t electrumret); cJSON *LP_address_utxos(struct iguana_info *coin,char *coinaddr,int32_t electrumret);
void LP_postutxos(int32_t pubsock,char *symbol); void LP_postutxos(char *symbol);
#endif #endif

6
iguana/exchanges/LP_nativeDEX.c

@ -51,7 +51,6 @@ uint16_t LP_fixed_pairport,LP_publicport;
int32_t LP_mybussock = -1; int32_t LP_mybussock = -1;
int32_t LP_mypubsock = -1; int32_t LP_mypubsock = -1;
int32_t LP_mypullsock = -1; int32_t LP_mypullsock = -1;
int32_t LP_mypushsock = -1;
int32_t LP_pendingswaps,LP_showwif,USERPASS_COUNTER,IAMLP = 0; int32_t LP_pendingswaps,LP_showwif,USERPASS_COUNTER,IAMLP = 0;
uint32_t LP_sessionid; uint32_t LP_sessionid;
double LP_profitratio = 1.; double LP_profitratio = 1.;
@ -402,9 +401,11 @@ int32_t LP_mainloop_iter(void *ctx,char *myipaddr,struct LP_peerinfo *mypeer,int
lastresync = (uint32_t)time(NULL); lastresync = (uint32_t)time(NULL);
//LP_peer_pricesquery(mostpeer->ipaddr,mostpeer->port); //LP_peer_pricesquery(mostpeer->ipaddr,mostpeer->port);
} }
if ( enable_utxos && (counter % 6000) == 10 ) if ( (counter % 6000) == 10 )
{ {
LP_myutxo_updates(ctx,pubsock,passphrase); LP_myutxo_updates(ctx,pubsock,passphrase);
if ( enable_utxos )
{
HASH_ITER(hh,LP_utxoinfos[0],utxo,utmp) HASH_ITER(hh,LP_utxoinfos[0],utxo,utmp)
{ {
LP_utxo_spentcheck(pubsock,utxo); LP_utxo_spentcheck(pubsock,utxo);
@ -419,6 +420,7 @@ int32_t LP_mainloop_iter(void *ctx,char *myipaddr,struct LP_peerinfo *mypeer,int
} }
} }
} }
}
HASH_ITER(hh,LP_coins,coin,ctmp) // firstrefht,firstscanht,lastscanht HASH_ITER(hh,LP_coins,coin,ctmp) // firstrefht,firstscanht,lastscanht
{ {
int32_t height; bits256 zero; struct LP_address *ap,*atmp; struct LP_address_utxo *up,*utmp; int32_t height; bits256 zero; struct LP_address *ap,*atmp; struct LP_address_utxo *up,*utmp;

2
iguana/exchanges/LP_socket.c

@ -468,7 +468,7 @@ cJSON *electrum_address_listunspent(char *symbol,struct electrum_info *ep,cJSON
{ {
//printf("LISTUNSPENT.(%s)\n",jprint(retjson,0)); //printf("LISTUNSPENT.(%s)\n",jprint(retjson,0));
if ( electrum_process_array(coin,addr,retjson) != 0 ) if ( electrum_process_array(coin,addr,retjson) != 0 )
LP_postutxos(LP_mypushsock,coin->symbol); LP_postutxos(coin->symbol);
strcpy(coin->lastunspent,addr); strcpy(coin->lastunspent,addr);
coin->unspenttime = (uint32_t)time(NULL); coin->unspenttime = (uint32_t)time(NULL);
} }

2
iguana/exchanges/LP_utxo.c

@ -180,7 +180,7 @@ cJSON *LP_address_utxos(struct iguana_info *coin,char *coinaddr,int32_t electrum
return(array); return(array);
} }
void LP_postutxos(int32_t sock,char *symbol) void LP_postutxos(char *symbol)
{ {
bits256 zero; char *msg; struct iguana_info *coin; cJSON *array,*reqjson = cJSON_CreateObject(); bits256 zero; char *msg; struct iguana_info *coin; cJSON *array,*reqjson = cJSON_CreateObject();
if ( (coin= LP_coinfind(symbol)) != 0 && (array= LP_address_utxos(coin,coin->smartaddr,1)) != 0 ) if ( (coin= LP_coinfind(symbol)) != 0 && (array= LP_address_utxos(coin,coin->smartaddr,1)) != 0 )

18
iguana/exchanges/LP_utxos.c

@ -652,9 +652,10 @@ int32_t LP_nearestvalue(int32_t iambob,uint64_t *values,int32_t n,uint64_t targe
return(mini); return(mini);
} }
uint64_t LP_privkey_init(int32_t mypubsock,struct iguana_info *coin,bits256 myprivkey,bits256 mypub) int32_t LP_privkey_init(int32_t mypubsock,struct iguana_info *coin,bits256 myprivkey,bits256 mypub)
{ {
char *script,destaddr[64]; struct LP_utxoinfo *utxo; cJSON *array,*item; bits256 txid,deposittxid; int32_t used,i,height,n,cmpflag,iambob,vout,depositvout; uint64_t *values=0,satoshis,txfee,depositval,value,total = 0; int64_t targetval; int32_t enable_utxos = 0;
char *script,destaddr[64]; struct LP_utxoinfo *utxo; cJSON *array,*item; bits256 txid,deposittxid; int32_t used,i,flag=0,height,n,cmpflag,iambob,vout,depositvout; uint64_t *values=0,satoshis,txfee,depositval,value,total = 0; int64_t targetval;
if ( coin == 0 ) if ( coin == 0 )
{ {
printf("coin not active\n"); printf("coin not active\n");
@ -696,9 +697,11 @@ uint64_t LP_privkey_init(int32_t mypubsock,struct iguana_info *coin,bits256 mypr
{ {
//printf("%s\n",jprint(item,0)); //printf("%s\n",jprint(item,0));
values[i] = satoshis; values[i] = satoshis;
LP_address_utxoadd(coin,destaddr,txid,vout,satoshis,height,-1); flag += LP_address_utxoadd(coin,destaddr,txid,vout,satoshis,height,-1);
} else used++; } else used++;
} }
if ( enable_utxos == 0 )
continue;
//printf("array.%d\n",n); //printf("array.%d\n",n);
while ( used < n-1 ) while ( used < n-1 )
{ {
@ -785,10 +788,10 @@ uint64_t LP_privkey_init(int32_t mypubsock,struct iguana_info *coin,bits256 mypr
} }
} }
free_json(array); free_json(array);
LP_postutxos(mypubsock,coin->symbol); LP_postutxos(coin->symbol);
} }
//printf("privkey.%s %.8f\n",symbol,dstr(total)); //printf("privkey.%s %.8f\n",symbol,dstr(total));
return(total); return(flag);
} }
char *LP_secretaddresses(void *ctx,char *passphrase,int32_t n,uint8_t taddr,uint8_t pubtype) char *LP_secretaddresses(void *ctx,char *passphrase,int32_t n,uint8_t taddr,uint8_t pubtype)
@ -904,7 +907,10 @@ void LP_privkey_updates(void *ctx,int32_t pubsock,char *passphrase,int32_t inito
if ( bits256_nonz(privkey) == 0 || coin->smartaddr[0] == 0 ) if ( bits256_nonz(privkey) == 0 || coin->smartaddr[0] == 0 )
privkey = LP_privkeycalc(ctx,pubkey33,&pubkey,coin,passphrase,""); privkey = LP_privkeycalc(ctx,pubkey33,&pubkey,coin,passphrase,"");
if ( coin->inactive == 0 && initonly == 0 ) if ( coin->inactive == 0 && initonly == 0 )
LP_privkey_init(pubsock,coin,privkey,pubkey); {
if ( LP_privkey_init(pubsock,coin,privkey,pubkey) > 0 )
LP_postutxos(coin->symbol);
}
} }
} }

Loading…
Cancel
Save