|
|
@ -184,7 +184,7 @@ uint32_t iguana_ramchain_addtxid(struct iguana_info *coin,RAMCHAIN_FUNC,bits256 |
|
|
|
{ |
|
|
|
if ( t->txidind != txidind || memcmp(t->txid.bytes,txid.bytes,sizeof(bits256)) != 0 || t->numvouts != numvouts || t->numvins != numvins || t->firstvout != ramchain->H.unspentind || t->firstvin != ramchain->H.spendind || t->locktime != locktime || t->version != version || t->timestamp != timestamp ) |
|
|
|
{ |
|
|
|
printf("iguana_ramchain_addtxid.RO: addtxid mismatch (%u %d %d %u %u) vs. (%d %d %d %d %d)\n",(uint32_t)t->txidind,t->numvouts,t->numvins,(uint32_t)t->firstvout,(uint32_t)t->firstvin,txidind,numvouts,numvins,ramchain->H.unspentind,ramchain->H.spendind); |
|
|
|
printf("iguana_ramchain_addtxid.RO: addtxid mismatch b.%d (%u %d %d %u %u) vs. (%d %d %d %d %d)\n",bundlei,(uint32_t)t->txidind,t->numvouts,t->numvins,(uint32_t)t->firstvout,(uint32_t)t->firstvin,txidind,numvouts,numvins,ramchain->H.unspentind,ramchain->H.spendind); |
|
|
|
//getchar();
|
|
|
|
return(0); |
|
|
|
} |
|
|
@ -1095,7 +1095,7 @@ int32_t iguana_ramchain_verify(struct iguana_info *coin,struct iguana_ramchain * |
|
|
|
//exit(-1);
|
|
|
|
return(-4); |
|
|
|
} |
|
|
|
if ( coin->chain->zcash == 0 && t->firstvin != ramchain->H.spendind ) |
|
|
|
if ( t->firstvin != ramchain->H.spendind ) |
|
|
|
{ |
|
|
|
printf("t[%u] firstvin.%u vs spendind.%d\n",(uint32_t)t->txidind,(uint32_t)t->firstvin,ramchain->H.spendind); |
|
|
|
return(-5); |
|
|
@ -1126,7 +1126,7 @@ int32_t iguana_ramchain_verify(struct iguana_info *coin,struct iguana_ramchain * |
|
|
|
return(-3); |
|
|
|
} |
|
|
|
} |
|
|
|
for (k=0; k<t->numvouts; k++,ramchain->H.unspentind++) |
|
|
|
for (k=0; k<t->numvouts; k++) |
|
|
|
{ |
|
|
|
u = &Ux[ramchain->H.unspentind]; |
|
|
|
if ( u->txidind != ramchain->H.txidind ) |
|
|
@ -1148,17 +1148,19 @@ int32_t iguana_ramchain_verify(struct iguana_info *coin,struct iguana_ramchain * |
|
|
|
printf("%p itemind.%d pkind.%d %d unspentind?\n",p,ptr->hh.itemind,pkind,ramchain->H.unspentind); |
|
|
|
return(-9); |
|
|
|
} |
|
|
|
ramchain->H.unspentind++; |
|
|
|
} |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
for (k=0; k<t->numvouts; k++,ramchain->H.unspentind++) |
|
|
|
for (k=0; k<t->numvouts; k++) |
|
|
|
{ |
|
|
|
if ( U[ramchain->H.unspentind].txidind != ramchain->H.txidind ) |
|
|
|
{ |
|
|
|
printf(" k.%d U.%d u->txidind.%x != txidind.%d\n",k,ramchain->H.unspentind,U[ramchain->H.unspentind].txidind,ramchain->H.txidind); |
|
|
|
return(-6); |
|
|
|
} |
|
|
|
ramchain->H.unspentind++; |
|
|
|
} |
|
|
|
} |
|
|
|
ramchain->H.spendind += t->numvins; |
|
|
@ -1167,7 +1169,7 @@ int32_t iguana_ramchain_verify(struct iguana_info *coin,struct iguana_ramchain * |
|
|
|
for (ramchain->H.txidind=rdata->firsti; ramchain->H.txidind<rdata->numtxids; ramchain->H.txidind++) |
|
|
|
{ |
|
|
|
t = &T[ramchain->H.txidind]; |
|
|
|
for (k=0; k<t->numvins; k++,ramchain->H.spendind++) |
|
|
|
for (k=0; k<t->numvins; k++) |
|
|
|
{ |
|
|
|
if ( ramchain->expanded != 0 ) |
|
|
|
{ |
|
|
@ -1190,6 +1192,7 @@ int32_t iguana_ramchain_verify(struct iguana_info *coin,struct iguana_ramchain * |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
ramchain->H.spendind++; |
|
|
|
} |
|
|
|
} |
|
|
|
if ( ramchain->expanded != 0 && ramchain->A != ramchain->creditsA ) |
|
|
@ -1899,7 +1902,7 @@ long iguana_ramchain_data(struct supernet_info *myinfo,struct iguana_info *coin, |
|
|
|
} |
|
|
|
if ( block != 0 ) |
|
|
|
block->fpipbits = 1; |
|
|
|
for (i=0; i<txn_count; i++,ramchain->H.txidind++) |
|
|
|
for (i=0; i<txn_count; i++) |
|
|
|
{ |
|
|
|
tx = &txarray[i]; |
|
|
|
iguana_ramchain_addtxid(coin,RAMCHAIN_ARG,tx->txid,tx->tx_out,tx->tx_in,tx->lock_time,tx->version,tx->timestamp,bundlei); |
|
|
@ -1916,16 +1919,18 @@ long iguana_ramchain_data(struct supernet_info *myinfo,struct iguana_info *coin, |
|
|
|
iguana_ramchain_addunspent20(coin,addr,RAMCHAIN_ARG,tx->vouts[j].value,tx->vouts[j].pk_script,tx->vouts[j].pk_scriptlen,tx->txid,j,-1,bp,rmd160); |
|
|
|
} |
|
|
|
ramchain->H.spendind += tx->tx_in; |
|
|
|
ramchain->H.txidind++; |
|
|
|
} |
|
|
|
//printf("scriptoffset.%d after %d txids\n",ramchain->H.scriptoffset,txn_count);
|
|
|
|
ramchain->H.txidind = ramchain->H.spendind = rdata->firsti; |
|
|
|
for (i=0; i<txn_count; i++,ramchain->H.txidind++) |
|
|
|
for (i=0; i<txn_count; i++) |
|
|
|
{ |
|
|
|
tx = &txarray[i]; |
|
|
|
for (j=0; j<tx->tx_in; j++) |
|
|
|
{ |
|
|
|
iguana_ramchain_addspend256(coin,addr,RAMCHAIN_ARG,tx->vins[j].prev_hash,tx->vins[j].prev_vout,tx->vins[j].vinscript,tx->vins[j].scriptlen,tx->vins[j].sequence,bp);//,bp->hdrsi,bundlei);
|
|
|
|
} |
|
|
|
ramchain->H.txidind++; |
|
|
|
} |
|
|
|
rdata->prevhash2 = origtxdata->zblock.RO.prev_block; |
|
|
|
rdata->scriptspace = scriptspace = ramchain->H.scriptoffset; |
|
|
|