|
@ -2261,7 +2261,7 @@ int32_t iguana_ramchain_expandedsave(struct iguana_info *coin,RAMCHAIN_FUNC,stru |
|
|
{ |
|
|
{ |
|
|
destoffset = &Kspace[ramchain->H.scriptoffset]; |
|
|
destoffset = &Kspace[ramchain->H.scriptoffset]; |
|
|
srcoffset = &Kspace[ramchain->H.data->scriptspace - ramchain->H.stacksize]; |
|
|
srcoffset = &Kspace[ramchain->H.data->scriptspace - ramchain->H.stacksize]; |
|
|
if ( 0 && (long)destoffset < (long)srcoffset ) |
|
|
if ( 1 && (long)destoffset < (long)srcoffset ) |
|
|
{ |
|
|
{ |
|
|
for (i=0; i<ramchain->H.stacksize; i++) |
|
|
for (i=0; i<ramchain->H.stacksize; i++) |
|
|
c = *srcoffset++, *destoffset++ = c; |
|
|
c = *srcoffset++, *destoffset++ = c; |
|
@ -2270,11 +2270,11 @@ int32_t iguana_ramchain_expandedsave(struct iguana_info *coin,RAMCHAIN_FUNC,stru |
|
|
} |
|
|
} |
|
|
scriptoffset = ramchain->H.scriptoffset; |
|
|
scriptoffset = ramchain->H.scriptoffset; |
|
|
stacksize = ramchain->H.stacksize; |
|
|
stacksize = ramchain->H.stacksize; |
|
|
ramchain->H.scriptoffset = scriptoffset; |
|
|
ramchain->H.scriptoffset = scriptoffset + stacksize; |
|
|
ramchain->H.data->scriptspace = scriptoffset + stacksize; |
|
|
ramchain->H.data->scriptspace = scriptoffset + stacksize; |
|
|
ramchain->H.stacksize = ramchain->H.data->stackspace = stacksize; |
|
|
ramchain->H.stacksize = ramchain->H.data->stackspace = stacksize; |
|
|
iguana_ramchain_setsize(ramchain,ramchain->H.data,bp->n); |
|
|
iguana_ramchain_setsize(ramchain,ramchain->H.data,bp->n); |
|
|
//printf("Apresave T.%d U.%d S.%d P.%d X.%d -> size.%ld firsti.%d scriptoffset.%d stacksize.%d\n",ramchain->H.data->numtxids,ramchain->H.data->numunspents,ramchain->H.data->numspends,ramchain->H.data->numpkinds,ramchain->H.data->numexternaltxids,(long)ramchain->H.data->allocsize,firsti,ramchain->H.scriptoffset,ramchain->H.stacksize);
|
|
|
printf("Apresave T.%d U.%d S.%d P.%d X.%d -> size.%ld firsti.%d scriptoffset.%d stacksize.%d\n",ramchain->H.data->numtxids,ramchain->H.data->numunspents,ramchain->H.data->numspends,ramchain->H.data->numpkinds,ramchain->H.data->numexternaltxids,(long)ramchain->H.data->allocsize,firsti,ramchain->H.scriptoffset,ramchain->H.stacksize); |
|
|
*newchain = *ramchain; |
|
|
*newchain = *ramchain; |
|
|
//memcpy(ramchain->roU2,ramchain->U2,sizeof(*ramchain->U2) * ramchain->H.data->numunspents);
|
|
|
//memcpy(ramchain->roU2,ramchain->U2,sizeof(*ramchain->U2) * ramchain->H.data->numunspents);
|
|
|
//memcpy(ramchain->roP2,ramchain->P2,sizeof(*ramchain->P2) * ramchain->H.data->numpkinds);
|
|
|
//memcpy(ramchain->roP2,ramchain->P2,sizeof(*ramchain->P2) * ramchain->H.data->numpkinds);
|
|
@ -2286,13 +2286,15 @@ int32_t iguana_ramchain_expandedsave(struct iguana_info *coin,RAMCHAIN_FUNC,stru |
|
|
printf("ERROR.%d iterating presave ramchain hdrsi.%d\n",err,hdrsi); |
|
|
printf("ERROR.%d iterating presave ramchain hdrsi.%d\n",err,hdrsi); |
|
|
else |
|
|
else |
|
|
{ |
|
|
{ |
|
|
//printf("Bpresave T.%d U.%d S.%d P.%d X.%d -> size.%ld firsti.%d scriptoffset.%d stacksize.%d\n",ramchain->H.data->numtxids,ramchain->H.data->numunspents,ramchain->H.data->numspends,ramchain->H.data->numpkinds,ramchain->H.data->numexternaltxids,(long)ramchain->H.data->allocsize,firsti,ramchain->H.scriptoffset,ramchain->H.stacksize);
|
|
|
printf("postiterate0.%d T.%d U.%d S.%d P.%d X.%d -> size.%ld firsti.%d scripts.%d:%d stack.%d:%d\n",bp->bundleheight,ramchain->H.data->numtxids,ramchain->H.data->numunspents,ramchain->H.data->numspends,ramchain->H.data->numpkinds,ramchain->H.data->numexternaltxids,(long)ramchain->H.data->allocsize,firsti,(int32_t)ramchain->H.scriptoffset,scriptoffset,(int32_t)ramchain->H.stacksize,stacksize); |
|
|
|
|
|
if ( ramchain->H.scriptoffset > scriptoffset || ramchain->H.stacksize > stacksize ) |
|
|
|
|
|
printf("MEMORY OVERFLOW\n"); |
|
|
if ( (err= iguana_ramchain_verify(coin,ramchain)) != 0 ) |
|
|
if ( (err= iguana_ramchain_verify(coin,ramchain)) != 0 ) |
|
|
printf("ERROR.%d verifying presave ramchain hdrsi.%d\n",err,hdrsi); |
|
|
printf("ERROR.%d verifying presave ramchain hdrsi.%d\n",err,hdrsi); |
|
|
else retval = 0; |
|
|
else retval = 0; |
|
|
} |
|
|
} |
|
|
printf("postiterateA.%d T.%d U.%d S.%d P.%d X.%d -> size.%ld firsti.%d scripts.%d:%d stack.%d:%d\n",bp->bundleheight,ramchain->H.data->numtxids,ramchain->H.data->numunspents,ramchain->H.data->numspends,ramchain->H.data->numpkinds,ramchain->H.data->numexternaltxids,(long)ramchain->H.data->allocsize,firsti,(int32_t)ramchain->H.scriptoffset,scriptoffset,(int32_t)ramchain->H.stacksize,stacksize); |
|
|
printf("postiterateA.%d T.%d U.%d S.%d P.%d X.%d -> size.%ld firsti.%d scripts.%d:%d stack.%d:%d\n",bp->bundleheight,ramchain->H.data->numtxids,ramchain->H.data->numunspents,ramchain->H.data->numspends,ramchain->H.data->numpkinds,ramchain->H.data->numexternaltxids,(long)ramchain->H.data->allocsize,firsti,(int32_t)ramchain->H.scriptoffset,scriptoffset,(int32_t)ramchain->H.stacksize,stacksize); |
|
|
ramchain->H.scriptoffset = scriptoffset; |
|
|
ramchain->H.scriptoffset = scriptoffset + stacksize; |
|
|
ramchain->H.data->scriptspace = scriptoffset + stacksize; |
|
|
ramchain->H.data->scriptspace = scriptoffset + stacksize; |
|
|
ramchain->H.stacksize = ramchain->H.data->stackspace = stacksize; |
|
|
ramchain->H.stacksize = ramchain->H.data->stackspace = stacksize; |
|
|
if ( iguana_ramchain_save(coin,RAMCHAIN_ARG,0,firsthash2,zero,0,bp) < 0 ) |
|
|
if ( iguana_ramchain_save(coin,RAMCHAIN_ARG,0,firsthash2,zero,0,bp) < 0 ) |
|
|