Browse Source

test

release/v0.1
jl777 9 years ago
parent
commit
88a1251767
  1. 40
      iguana/iguana_unspents.c

40
iguana/iguana_unspents.c

@ -388,31 +388,37 @@ int32_t iguana_balancegen(struct iguana_info *coin,struct iguana_bundle *bp)
else continue;
if ( unspentind > 0 && unspentind < spentbp->ramchain.H.data->numunspents )
{
spentU = (void *)(long)((long)spentbp->ramchain.H.data + spentbp->ramchain.H.data->Uoffset);
A2 = spentbp->ramchain.A;
u = &spentU[unspentind];
if ( (pkind= u->pkind) != 0 && pkind < spentbp->ramchain.H.data->numpkinds )
if ( spentbp->ramchain.Uextras == 0 || (A2= spentbp->ramchain.A) == 0 )
{
if ( (spentbp->ramchain.Uextras[unspentind] & (1 << 31)) == 0 )
printf("null ptrs %p %p\n",spentbp->ramchain.Uextras,spentbp->ramchain.A);
errs++;
}
else
{
spentU = (void *)(long)((long)spentbp->ramchain.H.data + spentbp->ramchain.H.data->Uoffset);
u = &spentU[unspentind];
if ( (pkind= u->pkind) != 0 && pkind < spentbp->ramchain.H.data->numpkinds )
{
if ( spentbp->ramchain.Uextras[unspentind] == 0 )
spentbp->ramchain.Uextras[unspentind] |= A2[pkind].lastind;
spentbp->ramchain.Uextras[unspentind] |= (1 << 31);
A2[pkind].total += u->value;
A2[pkind].lastind = spendind;
spentbp->dirty = (uint32_t)time(NULL);
if ( (spentbp->ramchain.Uextras[unspentind] & (1 << 31)) == 0 )
{
spentbp->ramchain.Uextras[unspentind] |= (A2[pkind].lastind & 0x7fffffff);
spentbp->ramchain.Uextras[unspentind] |= (1 << 31);
A2[pkind].total += u->value;
A2[pkind].lastind = spendind;
spentbp->dirty = (uint32_t)time(NULL);
}
else
{
errs++;
printf("iguana_balancegen: double spend of hdrsi.%d unspentind.%d\n",spentbp->hdrsi,unspentind);
}
}
else
{
errs++;
printf("iguana_balancegen: double spend of hdrsi.%d unspentind.%d\n",spentbp->hdrsi,unspentind);
printf("iguana_balancegen: pkind overflow %d vs %d\n",pkind,spentbp->ramchain.H.data->numpkinds);
}
}
else
{
errs++;
printf("iguana_balancegen: pkind overflow %d vs %d\n",pkind,spentbp->ramchain.H.data->numpkinds);
}
}
else
{

Loading…
Cancel
Save