|
|
@ -83,7 +83,7 @@ int32_t iguana_utxoupdate(struct iguana_info *coin,int16_t spent_hdrsi,uint32_t |
|
|
|
|
|
|
|
struct iguana_utxo iguana_utxofind(struct iguana_info *coin,int16_t spent_hdrsi,uint32_t spent_unspentind,int32_t *RTspendflagp,int32_t lockflag) |
|
|
|
{ |
|
|
|
uint64_t val,uval; struct iguana_hhutxo *hhutxo; struct iguana_utxo utxo; struct iguana_ramchain *ramchain; struct iguana_bundle *bp; struct iguana_ramchaindata *rdata; |
|
|
|
uint64_t val,uval; struct iguana_hhutxo *hhutxo; struct iguana_utxo utxo; struct iguana_ramchain *ramchain; struct iguana_bundle *bp; struct iguana_ramchaindata *rdata; int32_t flag; |
|
|
|
*RTspendflagp = 0; |
|
|
|
memset(&utxo,0,sizeof(utxo)); |
|
|
|
if ( (bp= coin->bundles[spent_hdrsi]) == 0 ) |
|
|
@ -91,7 +91,9 @@ struct iguana_utxo iguana_utxofind(struct iguana_info *coin,int16_t spent_hdrsi, |
|
|
|
ramchain = (bp == coin->current) ? &coin->RTramchain : &bp->ramchain; |
|
|
|
if ( (rdata= ramchain->H.data) == 0 ) |
|
|
|
return(utxo); |
|
|
|
portable_mutex_lock(&coin->RTmutex); |
|
|
|
flag = (coin->RTheight > 0); |
|
|
|
if ( flag != 0 ) |
|
|
|
portable_mutex_lock(&coin->RTmutex); |
|
|
|
val = ((uint64_t)spent_hdrsi << 32) | spent_unspentind; |
|
|
|
if ( spent_unspentind > 0 && spent_unspentind < rdata->numunspents ) |
|
|
|
{ |
|
|
@ -107,7 +109,8 @@ struct iguana_utxo iguana_utxofind(struct iguana_info *coin,int16_t spent_hdrsi, |
|
|
|
{ |
|
|
|
printf("iguana_hhutxofind warning: hhutxo.%p spentflag.%d\n",hhutxo,hhutxo->u.spentflag); |
|
|
|
memset(&utxo,0,sizeof(utxo)); |
|
|
|
portable_mutex_unlock(&coin->RTmutex); |
|
|
|
if ( flag != 0 ) |
|
|
|
portable_mutex_unlock(&coin->RTmutex); |
|
|
|
return(utxo); |
|
|
|
} |
|
|
|
hhutxo = calloc(1,sizeof(*hhutxo)); |
|
|
@ -137,7 +140,8 @@ struct iguana_utxo iguana_utxofind(struct iguana_info *coin,int16_t spent_hdrsi, |
|
|
|
{ |
|
|
|
printf("illegal unspentind.%u vs %u hdrs.%d\n",spent_unspentind,rdata->numunspents,spent_hdrsi); |
|
|
|
} |
|
|
|
portable_mutex_unlock(&coin->RTmutex); |
|
|
|
if ( flag != 0 ) |
|
|
|
portable_mutex_unlock(&coin->RTmutex); |
|
|
|
return(utxo); |
|
|
|
} |
|
|
|
|
|
|
|