Browse Source

Test

etomic
jl777 7 years ago
parent
commit
ecf073fc53
  1. 1
      iguana/exchanges/LP_include.h
  2. 10
      iguana/exchanges/LP_nativeDEX.c
  3. 30
      iguana/exchanges/LP_rpc.c
  4. 33
      iguana/exchanges/LP_zeroconf.c

1
iguana/exchanges/LP_include.h

@ -460,6 +460,7 @@ struct iguana_info *LP_coinfind(char *symbol);
int32_t LP_crc32find(int32_t *duplicatep,int32_t ind,uint32_t crc32); int32_t LP_crc32find(int32_t *duplicatep,int32_t ind,uint32_t crc32);
char *LP_pricepings(void *ctx,char *myipaddr,int32_t pubsock,char *base,char *rel,double price); char *LP_pricepings(void *ctx,char *myipaddr,int32_t pubsock,char *base,char *rel,double price);
int32_t LP_merkleproof(struct iguana_info *coin,char *coinaddr,struct electrum_info *ep,bits256 txid,int32_t height); int32_t LP_merkleproof(struct iguana_info *coin,char *coinaddr,struct electrum_info *ep,bits256 txid,int32_t height);
cJSON *electrum_address_gethistory(char *symbol,struct electrum_info *ep,cJSON **retjsonp,char *addr);
int32_t _LP_utxos_remove(bits256 txid,int32_t vout); int32_t _LP_utxos_remove(bits256 txid,int32_t vout);
int32_t LP_utxos_remove(bits256 txid,int32_t vout); int32_t LP_utxos_remove(bits256 txid,int32_t vout);
struct LP_transaction *LP_transactionadd(struct iguana_info *coin,bits256 txid,int32_t height,int32_t numvouts,int32_t numvins); struct LP_transaction *LP_transactionadd(struct iguana_info *coin,bits256 txid,int32_t height,int32_t numvouts,int32_t numvins);

10
iguana/exchanges/LP_nativeDEX.c

@ -32,15 +32,7 @@ Seller Payment f876412f3dc637998b099b05ae0fe3e769e5adafcb49ef156be9f7749f2e30
Quote ID 2681103143 Quote ID 2681103143
Request ID 301413467 Request ID 301413467
Trade id 3567859514*/ Trade id 3567859514*/
/*KMD.(electrum2.cipig.net:10001) already an electrum server // waiting for alice and alice disconnects, can find bobpayment based on Q.txid
KMD.(electrum1.cipig.net:10001) already an electrum server
bindflag.0 iguana_socket mismatch (18.216.195.109) -> (electrum1.cipig.net)
RECONNECT ep.0x7f46950fbbd0 KMD numerrors.32 too big -> new electrum1.cipig.net:10001 sock.110
KMD.(electrum2.cipig.net:10001) already an electrum server
KMD.(electrum1.cipig.net:10001) already an electrum server
KMD.(electrum2.cipig.net:10001) already an electrum server
KMD.(electrum1.cipig.net:10001) already an electrum serve*/
// waiting for alice and alice disconnects
// MNZ getcoin strangeness // MNZ getcoin strangeness
// portfolio value based on ask? // portfolio value based on ask?
// listunspent triplicate, tradebot timeslice? the tradebot timeslice is just getting too much timeslices // listunspent triplicate, tradebot timeslice? the tradebot timeslice is just getting too much timeslices

30
iguana/exchanges/LP_rpc.c

@ -673,6 +673,36 @@ cJSON *LP_listunspent(char *symbol,char *coinaddr)
} else return(electrum_address_listunspent(symbol,coin->electrum,&retjson,coinaddr,1)); } else return(electrum_address_listunspent(symbol,coin->electrum,&retjson,coinaddr,1));
} }
cJSON *LP_listreceivedbyaddress(char *symbol,char *coinaddr)
{
char buf[128],*addr; cJSON *retjson,*array,*item; int32_t i,n; struct iguana_info *coin;
if ( symbol == 0 || symbol[0] == 0 )
return(cJSON_Parse("{\"error\":\"null symbol\"}"));
coin = LP_coinfind(symbol);
if ( coin == 0 || (IAMLP == 0 && coin->inactive != 0) )
return(cJSON_Parse("{\"error\":\"no coin\"}"));
if ( coin->electrum == 0 )
{
if ( (array= bitcoin_json(coin,"listreceivedbyaddress",buf)) != 0 )
{
if ( (n= cJSON_GetArraySize(array)) > 0 )
{
for (i=0; i<n; i++)
{
item = jitem(array,i);
if ( (addr= jstr(item,"address")) != 0 && strcmp(addr,coinaddr) == 0 )
{
retjson = jduplicate(jobj(item,"txids"));
free_json(array);
return(retjson);
}
}
}
}
return(cJSON_Parse("[]"));
} else return(electrum_address_gethistory(symbol,coin->electrum,&retjson,coinaddr));
}
int32_t LP_listunspent_issue(char *symbol,char *coinaddr,int32_t fullflag) int32_t LP_listunspent_issue(char *symbol,char *coinaddr,int32_t fullflag)
{ {
struct iguana_info *coin; int32_t n = 0; cJSON *retjson=0; char *retstr=0; struct iguana_info *coin; int32_t n = 0; cJSON *retjson=0; char *retstr=0;

33
iguana/exchanges/LP_zeroconf.c

@ -207,35 +207,38 @@ void LP_zeroconf_credit(char *coinaddr,uint64_t satoshis,int32_t weeki,char *p2s
void LP_zeroconf_deposits(struct iguana_info *coin) void LP_zeroconf_deposits(struct iguana_info *coin)
{ {
cJSON *array,*item,*txjson,*vouts,*v,*txobj; int32_t i,n,numvouts,height,vout,weeki; bits256 txid; char destaddr[64],p2shaddr[64]; int64_t satoshis,amount64; cJSON *array,*item,*txjson,*vouts,*v,*txobj; int32_t i,n,numvouts,height,vout,weeki; bits256 txid; char destaddr[64],p2shaddr[64]; int64_t satoshis,amount64;
if ( (array= LP_listunspent("KMD",BOTS_BONDADDRESS)) != 0 ) if ( (array= LP_listreceivedbyaddress("KMD",BOTS_BONDADDRESS)) != 0 )
{ {
printf("ZEROCONF.(%s)\n",jprint(array,0)); printf("ZEROCONF.(%s)\n",jprint(array,0));
if ( (n= cJSON_GetArraySize(array)) > 0 ) if ( (n= cJSON_GetArraySize(array)) > 0 )
{ {
for (i=0; i<n; i++) for (i=0; i<n; i++)
{ {
item = jitem(array,i); if ( coin->electrum != 0 )
amount64 = LP_listunspent_parseitem(coin,&txid,&vout,&height,item);
if ( vout == 1 )
{ {
weeki = (amount64 % 10000); item = jitem(array,i);
printf("weeki.%d %.8f %s\n",weeki,dstr(amount64),jprint(item,0)); LP_listunspent_parseitem(coin,&txid,&vout,&height,item);
if ( weeki >= 0 && (txjson= LP_gettx(coin->symbol,txid)) != 0 ) } else txid = jbits256i(array,i);
if ( (txjson= LP_gettx(coin->symbol,txid)) != 0 )
{
// vout0 deposit, vout1 botsfee, vout2 smartaddress
if ( (vouts= jarray(&numvouts,txjson,"vout")) > 0 && numvouts >= 3 && LP_destaddr(destaddr,jitem(vouts,2)) == 0 )
{ {
if ( (vouts= jarray(&numvouts,txjson,"vout")) > 0 && numvouts >= 3 && LP_destaddr(destaddr,jitem(vouts,2)) == 0 ) amount64 = LP_value_extract(jitem(vouts,1),0);
weeki = (amount64 % 10000);
v = jitem(vouts,0);
satoshis = LP_value_extract(v,0);
printf("%s funded %.8f weeki.%d\n",destaddr,dstr(satoshis),weeki);
if ( LP_destaddr(p2shaddr,v) == 0 )
{ {
v = jitem(vouts,0); if ( (txobj= LP_gettxout(coin->symbol,p2shaddr,txid,0)) != 0 )
satoshis = LP_value_extract(v,0);
printf("%s funded %.8f\n",destaddr,dstr(satoshis));
if ( LP_destaddr(p2shaddr,v) == 0 )
{ {
if ( (txobj= LP_gettxout(coin->symbol,p2shaddr,txid,0)) == 0 ) free_json(txobj);
continue;
else free_json(txobj);
LP_zeroconf_credit(destaddr,satoshis,weeki,p2shaddr); LP_zeroconf_credit(destaddr,satoshis,weeki,p2shaddr);
} }
} }
} }
free_json(txjson);
} }
} }
} }

Loading…
Cancel
Save