Browse Source

test

release/v0.1
jl777 9 years ago
parent
commit
d4ac6a001c
  1. 17
      iguana/iguana_unspents.c

17
iguana/iguana_unspents.c

@ -16,18 +16,20 @@
#include "iguana777.h" #include "iguana777.h"
#include "exchanges/bitcoin.h" #include "exchanges/bitcoin.h"
struct iguana_hhutxo *iguana_hhutxofind(struct iguana_info *coin,uint16_t spent_hdrsi,uint32_t spent_unspentind) struct iguana_hhutxo *iguana_hhutxofind(struct iguana_info *coin,uint8_t *ubuf,uint16_t spent_hdrsi,uint32_t spent_unspentind)
{ {
struct iguana_hhutxo *hhutxo; uint8_t buf[sizeof(spent_unspentind) + sizeof(spent_hdrsi)]; struct iguana_hhutxo *hhutxo; uint8_t buf[sizeof(spent_unspentind) + sizeof(spent_hdrsi)];
memcpy(buf,ubuf,sizeof(buf));
memcpy(&buf[sizeof(spent_unspentind)],(void *)&spent_hdrsi,sizeof(spent_hdrsi)); memcpy(&buf[sizeof(spent_unspentind)],(void *)&spent_hdrsi,sizeof(spent_hdrsi));
memcpy(buf,(void *)&spent_unspentind,sizeof(spent_unspentind)); memcpy(buf,(void *)&spent_unspentind,sizeof(spent_unspentind));
HASH_FIND(hh,coin->utxotable,buf,sizeof(buf),hhutxo); HASH_FIND(hh,coin->utxotable,buf,sizeof(buf),hhutxo);
return(hhutxo); return(hhutxo);
} }
struct iguana_hhaccount *iguana_hhaccountfind(struct iguana_info *coin,uint16_t spent_hdrsi,uint32_t spent_pkind) struct iguana_hhaccount *iguana_hhaccountfind(struct iguana_info *coin,uint8_t *pkbuf,uint16_t spent_hdrsi,uint32_t spent_pkind)
{ {
struct iguana_hhaccount *hhacct; uint8_t buf[sizeof(spent_pkind) + sizeof(spent_hdrsi)]; struct iguana_hhaccount *hhacct; uint8_t buf[sizeof(spent_pkind) + sizeof(spent_hdrsi)];
memcpy(buf,pkbuf,sizeof(buf));
memcpy(&buf[sizeof(spent_pkind)],(void *)&spent_hdrsi,sizeof(spent_hdrsi)); memcpy(&buf[sizeof(spent_pkind)],(void *)&spent_hdrsi,sizeof(spent_hdrsi));
memcpy(buf,(void *)&spent_pkind,sizeof(spent_pkind)); memcpy(buf,(void *)&spent_pkind,sizeof(spent_pkind));
HASH_FIND(hh,coin->utxotable,buf,sizeof(buf),hhacct); HASH_FIND(hh,coin->utxotable,buf,sizeof(buf),hhacct);
@ -37,6 +39,8 @@ struct iguana_hhaccount *iguana_hhaccountfind(struct iguana_info *coin,uint16_t
int32_t iguana_utxoupdate(struct iguana_info *coin,int16_t spent_hdrsi,uint32_t spent_unspentind,uint32_t spent_pkind,uint64_t spent_value,uint32_t spendind,uint32_t fromheight) int32_t iguana_utxoupdate(struct iguana_info *coin,int16_t spent_hdrsi,uint32_t spent_unspentind,uint32_t spent_pkind,uint64_t spent_value,uint32_t spendind,uint32_t fromheight)
{ {
struct iguana_hhutxo *hhutxo,*tmputxo; struct iguana_hhaccount *hhacct,*tmpacct; struct iguana_hhutxo *hhutxo,*tmputxo; struct iguana_hhaccount *hhacct,*tmpacct;
uint8_t pkbuf[sizeof(spent_hdrsi) + sizeof(uint32_t)];
uint8_t ubuf[sizeof(spent_hdrsi) + sizeof(uint32_t)];
uint8_t buf[sizeof(spent_hdrsi) + sizeof(uint32_t)]; uint8_t buf[sizeof(spent_hdrsi) + sizeof(uint32_t)];
if ( spent_hdrsi < 0 ) if ( spent_hdrsi < 0 )
{ {
@ -61,13 +65,18 @@ int32_t iguana_utxoupdate(struct iguana_info *coin,int16_t spent_hdrsi,uint32_t
return(0); return(0);
} }
printf("utxoupdate spenthdrsi.%d pkind.%d %.8f from [%d:%d] spendind.%u\n",spent_hdrsi,spent_pkind,dstr(spent_value),fromheight/coin->chain->bundlesize,fromheight%coin->chain->bundlesize,spendind); printf("utxoupdate spenthdrsi.%d pkind.%d %.8f from [%d:%d] spendind.%u\n",spent_hdrsi,spent_pkind,dstr(spent_value),fromheight/coin->chain->bundlesize,fromheight%coin->chain->bundlesize,spendind);
if ( (hhutxo= iguana_hhutxofind(coin,spent_hdrsi,spent_unspentind)) != 0 && hhutxo->u.spentflag != 0 ) if ( (hhutxo= iguana_hhutxofind(coin,ubuf,spent_hdrsi,spent_unspentind)) != 0 && hhutxo->u.spentflag != 0 )
{
printf("hhutxo.%p spentflag.%d\n",hhutxo,hhutxo->u.spentflag);
return(-1); return(-1);
}
hhutxo = calloc(1,sizeof(*hhutxo)); hhutxo = calloc(1,sizeof(*hhutxo));
memcpy(buf,ubuf,sizeof(buf));
HASH_ADD(hh,coin->utxotable,buf,sizeof(buf),hhutxo); HASH_ADD(hh,coin->utxotable,buf,sizeof(buf),hhutxo);
if ( (hhacct= iguana_hhaccountfind(coin,spent_hdrsi,spent_pkind)) == 0 ) if ( (hhacct= iguana_hhaccountfind(coin,pkbuf,spent_hdrsi,spent_pkind)) == 0 )
{ {
hhacct = calloc(1,sizeof(*hhacct)); hhacct = calloc(1,sizeof(*hhacct));
memcpy(buf,pkbuf,sizeof(buf));
HASH_ADD(hh,coin->accountstable,buf,sizeof(buf),hhacct); HASH_ADD(hh,coin->accountstable,buf,sizeof(buf),hhacct);
} }
hhutxo->u.spentflag = 1; hhutxo->u.spentflag = 1;

Loading…
Cancel
Save