Browse Source

test

release/v0.1
jl777 9 years ago
parent
commit
b74cd13cdd
  1. 20
      iguana/iguana_unspents.c

20
iguana/iguana_unspents.c

@ -735,7 +735,7 @@ cJSON *iguana_unspentjson(struct iguana_info *coin,int32_t hdrsi,uint32_t unspen
struct iguana_pkhash *iguana_pkhashfind(struct iguana_info *coin,struct iguana_ramchain **ramchainp,int64_t *balancep,uint32_t *lastunspentindp,struct iguana_pkhash *p,uint8_t rmd160[20],int32_t firsti,int32_t endi) struct iguana_pkhash *iguana_pkhashfind(struct iguana_info *coin,struct iguana_ramchain **ramchainp,int64_t *balancep,uint32_t *lastunspentindp,struct iguana_pkhash *p,uint8_t rmd160[20],int32_t firsti,int32_t endi)
{ {
uint8_t *PKbits; struct iguana_pkhash *P; uint32_t pkind,numpkinds,i; struct iguana_bundle *bp; struct iguana_ramchain *ramchain; struct iguana_account *ACCTS; uint8_t *PKbits; struct iguana_pkhash *P; uint32_t pkind,numpkinds,i; struct iguana_bundle *bp; struct iguana_ramchain *ramchain; struct iguana_ramchaindata *rdata; struct iguana_account *ACCTS;
*balancep = 0; *balancep = 0;
*ramchainp = 0; *ramchainp = 0;
*lastunspentindp = 0; *lastunspentindp = 0;
@ -743,19 +743,19 @@ struct iguana_pkhash *iguana_pkhashfind(struct iguana_info *coin,struct iguana_r
{ {
if ( (bp= coin->bundles[i]) != 0 ) if ( (bp= coin->bundles[i]) != 0 )
{ {
if ( bp->isRT != 0 && coin->RTramchain_busy != 0 ) if ( 0 && bp->isRT != 0 && coin->RTramchain_busy != 0 )
{ {
printf("iguana_pkhashfind: unexpected access when RTramchain_busy\n"); printf("iguana_pkhashfind: unexpected access when RTramchain_busy\n");
return(0); return(0);
} }
ramchain = (bp->isRT != 0) ? &bp->ramchain : &coin->RTramchain; ramchain = (bp->isRT != 0) ? &bp->ramchain : &coin->RTramchain;
if ( ramchain->H.data != 0 ) if ( (rdata= ramchain->H.data) != 0 )
{ {
numpkinds = (bp->isRT != 0) ? ramchain->H.data->numpkinds : ramchain->pkind; numpkinds = (bp->isRT != 0) ? rdata->numpkinds : ramchain->pkind;
PKbits = (void *)(long)((long)ramchain->H.data + ramchain->H.data->PKoffset); PKbits = (void *)(long)((long)rdata + rdata->PKoffset);
P = (void *)(long)((long)ramchain->H.data + ramchain->H.data->Poffset); P = (void *)(long)((long)rdata + rdata->Poffset);
ACCTS = (void *)(long)((long)ramchain->H.data + ramchain->H.data->Aoffset); ACCTS = (void *)(long)((long)rdata + rdata->Aoffset);
if ( (pkind= iguana_sparseaddpk(PKbits,ramchain->H.data->pksparsebits,ramchain->H.data->numpksparse,rmd160,P,0,ramchain)) > 0 && pkind < numpkinds ) if ( (pkind= iguana_sparseaddpk(PKbits,rdata->pksparsebits,rdata->numpksparse,rmd160,P,0,ramchain)) > 0 && pkind < numpkinds )
{ {
*ramchainp = ramchain; *ramchainp = ramchain;
*balancep = ACCTS[pkind].total; *balancep = ACCTS[pkind].total;
@ -763,8 +763,8 @@ struct iguana_pkhash *iguana_pkhashfind(struct iguana_info *coin,struct iguana_r
*p = P[pkind]; *p = P[pkind];
printf("return pkind.%u %.8f\n",pkind,dstr(*balancep)); printf("return pkind.%u %.8f\n",pkind,dstr(*balancep));
return(p); return(p);
} //else printf("not found pkind.%d vs num.%d\n",pkind,ramchain->H.data->numpkinds); } else printf("not found pkind.%d vs num.%d\n",pkind,rdata->numpkinds);
} else printf("%s.[%d] error null ramchain->H.data isRT.%d\n",coin->symbol,i,bp->isRT); } else printf("%s.[%d] error null rdata isRT.%d\n",coin->symbol,i,bp->isRT);
} }
} }
return(0); return(0);

Loading…
Cancel
Save