jl777 7 years ago
parent
commit
37d0db4eb1
  1. 15
      iguana/exchanges/LP_commands.c
  2. 11
      iguana/exchanges/LP_nativeDEX.c
  3. 9
      iguana/exchanges/LP_rpc.c
  4. 2
      iguana/exchanges/LP_utxo.c

15
iguana/exchanges/LP_commands.c

@ -129,6 +129,7 @@ dividends(coin, height, <args>)\n\
base = jstr(argjson,"base");
rel = jstr(argjson,"rel");
coin = jstr(argjson,"coin");
if ( G.USERPASS[0] != 0 && strcmp(remoteaddr,"127.0.0.1") == 0 && port != 0 )
{
if ( G.USERPASS_COUNTER == 0 )
@ -345,6 +346,20 @@ dividends(coin, height, <args>)\n\
retstr = LP_postedutxos(argjson);
else if ( strcmp(method,"getprices") == 0 )
return(LP_prices());
else if ( strcmp(method,"uitem") == 0 )
{
bits256 txid; int32_t vout,height; uint64_t value; char *coinaddr;
txid = jbits256(argjson,"txid");
vout = jint(argjson,"vout");
height = jint(argjson,"ht");
value = j64bits(argjson,"value");
coinaddr = jstr(argjson,"coinaddr");
if ( coin != 0 && coinaddr != 0 )
{
char str[65]; printf("uitem %s %s %s/v%d %.8f ht.%d\n",coin,coinaddr,bits256_str(str,txid),vout,dstr(value),height);
LP_address_utxoadd(LP_coinfind(coin),coinaddr,txid,vout,value,height,-1);
}
}
else if ( strcmp(method,"orderbook") == 0 )
return(LP_orderbook(base,rel,jint(argjson,"duration")));
else if ( strcmp(method,"listunspent") == 0 )

11
iguana/exchanges/LP_nativeDEX.c

@ -311,7 +311,7 @@ void command_rpcloop(void *myipaddr)
int32_t LP_mainloop_iter(void *ctx,char *myipaddr,struct LP_peerinfo *mypeer,int32_t pubsock,char *pushaddr,uint16_t myport)
{
static uint32_t counter,numpeers;
struct iguana_info *coin,*ctmp; char *retstr,*origipaddr; struct LP_peerinfo *peer,*tmp; uint32_t now; int32_t nonz = 0;
struct iguana_info *coin,*ctmp; char *retstr,*retstr2,*origipaddr; struct LP_peerinfo *peer,*tmp; uint32_t now; int32_t nonz = 0;
now = (uint32_t)time(NULL);
if ( (origipaddr= myipaddr) == 0 )
origipaddr = "127.0.0.1";
@ -408,10 +408,13 @@ int32_t LP_mainloop_iter(void *ctx,char *myipaddr,struct LP_peerinfo *mypeer,int
}
if ( j == m )
{
//5.9.253.202 missing {"tx_hash":"3ff8700d545186b1dcb29f50ccb2d1a48b9b5a36dfae59254a96a7057ca55a3f","tx_pos":1,"height":8242,"value":"1000000000"}
printf("%s missing %s\n",peer->ipaddr,jprint(item,0));
if ( (retstr2= issue_LP_uitem(peer->ipaddr,peer->port,coin->symbol,coin->smartaddr,txid,v,jint(item,"height"),j64bits(item,"value"))) != 0 )
free(retstr2);
post++;
}
}
post++;
}
free_json(array2);
}
@ -422,8 +425,8 @@ int32_t LP_mainloop_iter(void *ctx,char *myipaddr,struct LP_peerinfo *mypeer,int
}
free_json(array);
}
if ( post > 0 )
LP_postutxos(coin->symbol,coin->smartaddr);
//if ( post > 0 )
// LP_postutxos(coin->symbol,coin->smartaddr);
}
if ( coin->electrum != 0 )
continue;

9
iguana/exchanges/LP_rpc.c

@ -57,6 +57,15 @@ char *issue_LP_getpeers(char *destip,uint16_t destport,char *ipaddr,uint16_t por
return(retstr);
}
char *issue_LP_uitem(char *destip,uint16_t destport,char *symbol,char *coinaddr,bits256 txid,int32_t vout,int32_t height,uint64_t value)
{
char url[512],*retstr,str[65];
if ( (retstr= LP_isitme(destip,destport)) != 0 )
return(retstr);
sprintf(url,"http://%s:%u/api/stats/uitem?coin=%s&coinaddr=%s&txid=%s&vout=%d&ht=%d&value=%llu",destip,destport,symbol,coinaddr,bits256_str(str,txid),vout,height,(long long)value);
return(LP_issue_curl("uitem",destip,destport,url));
}
char *issue_LP_notify(char *destip,uint16_t destport,char *ipaddr,uint16_t port,int32_t numpeers,uint32_t sessionid,char *rmd160str,bits256 pub)
{
char url[512],*retstr,str[65];

2
iguana/exchanges/LP_utxo.c

@ -175,6 +175,8 @@ int32_t LP_address_utxoadd(struct iguana_info *coin,char *coinaddr,bits256 txid,
{
struct LP_address *ap; struct LP_address_utxo *up,*tmp; int32_t flag,retval = 0;
//printf("%s add addr.%s ht.%d\n",coin->symbol,coinaddr,height);
if ( coin == 0 )
return(0);
if ( spendheight > 0 ) // dont autocreate entries for spends we dont care about
ap = LP_addressfind(coin,coinaddr);
else ap = LP_address(coin,coinaddr);

Loading…
Cancel
Save