From 291e3fd927ea3fe18b27a0552132fe07c47e06c1 Mon Sep 17 00:00:00 2001 From: jl777 Date: Fri, 12 Aug 2016 13:12:37 -0300 Subject: [PATCH] test --- iguana/iguana_unspents.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/iguana/iguana_unspents.c b/iguana/iguana_unspents.c index ed955c4ab..c19531c58 100755 --- a/iguana/iguana_unspents.c +++ b/iguana/iguana_unspents.c @@ -861,7 +861,7 @@ struct iguana_utxoaddr *iguana_utxoaddrfind(int32_t createflag,struct iguana_inf int64_t iguana_bundle_unspents(struct iguana_info *coin,struct iguana_bundle *bp,int32_t maketable) { - struct iguana_utxoaddr *utxoaddr; int32_t unspentind; struct iguana_ramchaindata *rdata=0; struct iguana_pkhash *P; struct iguana_unspent *U; struct iguana_utxo *U2=0; int64_t value,balance = 0; + struct iguana_utxoaddr *utxoaddr; uint32_t unspentind,pkind; struct iguana_ramchaindata *rdata=0; struct iguana_pkhash *P; struct iguana_unspent *U; struct iguana_utxo *U2=0; int64_t value,balance = 0; if ( bp == 0 || (rdata= bp->ramchain.H.data) == 0 || (U2= bp->ramchain.Uextras) == 0 ) { printf("missing ptr bp.%p rdata.%p U2.%p\n",bp,rdata,U2); @@ -876,8 +876,12 @@ int64_t iguana_bundle_unspents(struct iguana_info *coin,struct iguana_bundle *bp balance += value; if ( maketable != 0 ) { - if ( (utxoaddr= iguana_utxoaddrfind(1,coin,P[U[unspentind].pkind].rmd160)) != 0 ) - utxoaddr->balance += value; + if ( (pkind= U[unspentind].pkind) < rdata->numpkinds && pkind > 0 ) + { + if ( (utxoaddr= iguana_utxoaddrfind(1,coin,P[pkind].rmd160)) != 0 ) + utxoaddr->balance += value; + else printf("cant find pkind.%u for unspentind.%u hdrsi.%d\n",pkind,unspentind,bp->hdrsi); + } else printf("illegal pkind.%u for unspentind.%u hdrsi.%d\n",pkind,unspentind,bp->hdrsi); } } } @@ -891,6 +895,7 @@ int64_t iguana_utxoaddr_gen(struct iguana_info *coin,int32_t maketable) { if ( coin->utxoaddrs != 0 && coin->UTXOADDRDATA != 0 ) { + printf("free %s utxoaddrs\n",coin->symbol); HASH_ITER(hh,coin->utxoaddrs,utxoaddr,tmp); { HASH_DELETE(hh,coin->utxoaddrs,utxoaddr); @@ -902,6 +907,7 @@ int64_t iguana_utxoaddr_gen(struct iguana_info *coin,int32_t maketable) for (hdrsi=0; hdrsibundlescount; hdrsi++) if ( (bp= coin->bundles[hdrsi]) != 0 && (rdata= bp->ramchain.H.data) != 0 ) tablesize += rdata->numpkinds; + printf("allocate UTXOADDRS[%d]\n",tablesize); coin->UTXOADDRDATA = calloc(sizeof(*coin->UTXOADDRDATA),tablesize); coin->utxodatasize = tablesize; coin->utxoaddrind = 0;