Browse Source

test

release/v0.1
jl777 9 years ago
parent
commit
740b42e4eb
  1. 22
      iguana/iguana_ramchain.c

22
iguana/iguana_ramchain.c

@ -750,11 +750,17 @@ int32_t iguana_vinscriptdecode(struct iguana_info *coin,struct iguana_ramchain *
if ( stacksize < diff )
{
if ( ramchain->sigsfileptr != 0 && stacksize < ramchain->sigsfilesize )
{
memcpy(&_script[scriptlen],(void *)((long)ramchain->sigsfileptr + ramchain->sigsfilesize - stacksize),sigslen);
else memcpy(&_script[scriptlen],&Kspace[diff - stacksize],sigslen);
//printf("emit.%p from.%ld sigslen.%d [%02x] stacksize.%d\n",&Kspace[diff - stacksize],diff - stacksize,sigslen,Kspace[diff - stacksize + sigslen - 1],stacksize);
printf("emit.%p from.%ld sigslen.%d [%02x] stacksize.%d\n",&Kspace[diff - stacksize],diff - stacksize,sigslen,*(uint8_t *)((long)ramchain->sigsfileptr + ramchain->sigsfilesize - stacksize + sigslen - 1),stacksize);
}
else
{
memcpy(&_script[scriptlen],&Kspace[diff - stacksize],sigslen);
printf("emit.%p from.%ld sigslen.%d [%02x] stacksize.%d\n",&Kspace[diff - stacksize],diff - stacksize,sigslen,Kspace[diff - stacksize + sigslen - 1],stacksize);
}
scriptlen += sigslen;
}
scriptlen += sigslen;
}
if ( s->numpubkeys > 0 )
{
@ -855,7 +861,9 @@ uint32_t iguana_ramchain_addspend(struct iguana_info *coin,RAMCHAIN_FUNC,bits256
}
if ( s->sighash != iguana_vinscriptparse(coin,&V,&sigsize,&pubkeysize,&p2shsize,&suffixlen,vinscript,vinscriptlen) )
{
printf("ramchain_addspend RO sighash mismatch %d\n",s->sighash);
for (i=0; i<vinscriptlen; i++)
printf("%02x",vinscript[i]);
printf(" ramchain_addspend RO sighash mismatch %d\n",s->sighash);
return(spendind);
}
//ramchain->H.stacksize += sigsize;// + 1 + (sigsize >= 0xfd)*2;
@ -2297,7 +2305,7 @@ int32_t iguana_ramchain_expandedsave(struct iguana_info *coin,RAMCHAIN_FUNC,stru
scriptoffset = ramchain->H.scriptoffset;
stacksize = ramchain->H.stacksize;
//ramchain->H.scriptoffset = scriptoffset;
//ramchain->H.data->scriptspace = scriptoffset;
ramchain->H.data->scriptspace = scriptoffset;
ramchain->H.stacksize = ramchain->H.data->stackspace = stacksize;
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);
@ -2321,7 +2329,7 @@ int32_t iguana_ramchain_expandedsave(struct iguana_info *coin,RAMCHAIN_FUNC,stru
}
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.data->scriptspace = scriptspace;
ramchain->H.data->scriptspace = scriptoffset;
ramchain->H.stacksize = ramchain->H.data->stackspace = stacksize;
if ( iguana_ramchain_save(coin,RAMCHAIN_ARG,0,firsthash2,zero,0,bp) < 0 )
printf("ERROR saving ramchain hdrsi.%d\n",hdrsi);
@ -2330,6 +2338,8 @@ int32_t iguana_ramchain_expandedsave(struct iguana_info *coin,RAMCHAIN_FUNC,stru
//printf("DEST T.%d U.%d S.%d P.%d X.%d -> size.%ld Xoffset.%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,(int32_t)ramchain->H.data->Xoffset);
//printf("free dest hdrs.%d retval.%d\n",bp->hdrsi,retval);
memset(&checkR,0,sizeof(checkR));
checkR.sigsfileptr = ramchain->sigsfileptr;
checkR.sigsfilesize = ramchain->sigsfilesize;
bundlei = 0;
if ( cmpflag == 0 )
iguana_memreset(hashmem);

Loading…
Cancel
Save