Browse Source

Finishtime in swapstatus

etomic
jl777 7 years ago
parent
commit
1c5de221b8
  1. 1
      iguana/exchanges/LP_include.h
  2. 5
      iguana/exchanges/LP_remember.c
  3. 46
      iguana/exchanges/LP_rpc.c

1
iguana/exchanges/LP_include.h

@ -443,6 +443,7 @@ struct LP_address_utxo *LP_address_utxofind(struct iguana_info *coin,char *coina
int32_t LP_destaddr(char *destaddr,cJSON *item); int32_t LP_destaddr(char *destaddr,cJSON *item);
int32_t LP_waitmempool(char *symbol,char *coinaddr,bits256 txid,int32_t vout,int32_t duration); int32_t LP_waitmempool(char *symbol,char *coinaddr,bits256 txid,int32_t vout,int32_t duration);
char *LP_statslog_disp(int32_t n,uint32_t starttime,uint32_t endtime,char *refgui,bits256 refpubkey); char *LP_statslog_disp(int32_t n,uint32_t starttime,uint32_t endtime,char *refgui,bits256 refpubkey);
uint32_t LP_heighttime(char *symbol,int32_t height);
uint64_t LP_unspents_load(char *symbol,char *addr); uint64_t LP_unspents_load(char *symbol,char *addr);
int32_t LP_validSPV(char *symbol,char *coinaddr,bits256 txid,int32_t vout); int32_t LP_validSPV(char *symbol,char *coinaddr,bits256 txid,int32_t vout);
struct LP_transaction *LP_transactionfind(struct iguana_info *coin,bits256 txid); struct LP_transaction *LP_transactionfind(struct iguana_info *coin,bits256 txid);

5
iguana/exchanges/LP_remember.c

@ -477,7 +477,12 @@ cJSON *LP_swap_json(struct LP_swap_remember *rswap)
jadd(item,"values",array); jadd(item,"values",array);
jaddstr(item,"result","success"); jaddstr(item,"result","success");
if ( rswap->finishedflag != 0 ) if ( rswap->finishedflag != 0 )
{
jaddstr(item,"status","finished"); jaddstr(item,"status","finished");
if ( rswap->iambob == 0 )
jaddnum(item,"finishtime",LP_txtime(rswap->dest,rswap->paymentspent));
else jaddnum(item,"finishtime",LP_txtime(rswap->dest,rswap->depositspent));
}
else jaddstr(item,"status","pending"); else jaddstr(item,"status","pending");
jaddbits256(item,"bobdeposit",rswap->txids[BASILISK_BOBDEPOSIT]); jaddbits256(item,"bobdeposit",rswap->txids[BASILISK_BOBDEPOSIT]);
jaddbits256(item,"alicepayment",rswap->txids[BASILISK_ALICEPAYMENT]); jaddbits256(item,"alicepayment",rswap->txids[BASILISK_ALICEPAYMENT]);

46
iguana/exchanges/LP_rpc.c

@ -447,6 +447,22 @@ uint32_t LP_locktime(char *symbol,bits256 txid)
return(locktime); return(locktime);
} }
uint32_t LP_txtime(char *symbol,bits256 txid)
{
struct LP_transaction *tx; struct iguana_info *coin; int32_t timestamp=0,height = 0;
if ( (timestamp= LP_locktime(symbol,txid)) != 0 )
return(timestamp);
if ( (coin= LP_coinfind(symbol)) != 0 )
{
if ( (tx= LP_transactionfind(coin,txid)) != 0 )
{
height = tx->height;
timestamp = LP_heighttime(symbol,height);
}
}
return(height);
}
cJSON *LP_gettxout_json(bits256 txid,int32_t vout,int32_t height,char *coinaddr,uint64_t value) cJSON *LP_gettxout_json(bits256 txid,int32_t vout,int32_t height,char *coinaddr,uint64_t value)
{ {
cJSON *retjson,*addresses,*sobj; cJSON *retjson,*addresses,*sobj;
@ -1013,6 +1029,36 @@ cJSON *LP_getblockhashstr(char *symbol,char *blockhashstr)
return(bitcoin_json(coin,"getblock",buf)); return(bitcoin_json(coin,"getblock",buf));
} }
uint32_t LP_heighttime(char *symbol,int32_t height)
{
struct electrum_info *ep; uint32_t timestamp = 0; cJSON *retjson; char *blockhashstr; struct iguana_info *coin = LP_coinfind(symbol);
if ( coin != 0 )
{
if ( (ep= coin->electrum) == 0 )
{
if ( (blockhashstr= LP_blockhashstr(symbol,height)) != 0 )
{
if ( (retjson= cJSON_Parse(blockhashstr)) != 0 )
{
timestamp = juint(retjson,"time");
free_json(retjson);
}
free(blockhashstr);
}
}
else
{
if ( (retjson= electrum_getheader(coin->symbol,ep,&retjson,height)) != 0 )
{
printf("%s\n",jprint(retjson,0));
timestamp = juint(retjson,"timestamp");
free_json(retjson);
}
}
}
return(timestamp);
}
cJSON *LP_blockjson(int32_t *heightp,char *symbol,char *blockhashstr,int32_t height) cJSON *LP_blockjson(int32_t *heightp,char *symbol,char *blockhashstr,int32_t height)
{ {
cJSON *json = 0; int32_t flag = 0; struct iguana_info *coin; cJSON *json = 0; int32_t flag = 0; struct iguana_info *coin;

Loading…
Cancel
Save