This commit is contained in:
jl777
2016-12-01 11:08:18 -03:00
parent fb5b4d5e13
commit 517b16911a
2 changed files with 31 additions and 17 deletions

View File

@@ -501,7 +501,7 @@ void komodo_connectblock(CBlockIndex *pindex,CBlock& block)
numvouts = block.vtx[i].vout.size(); numvouts = block.vtx[i].vout.size();
notaryid = -1; notaryid = -1;
voutmask = specialtx = notarizedheight = isratification = notarized = 0; voutmask = specialtx = notarizedheight = isratification = notarized = 0;
signedmask = (height < 100000) ? 1 : 0; signedmask = (height < 91400) ? 1 : 0;
numvins = block.vtx[i].vin.size(); numvins = block.vtx[i].vin.size();
for (j=0; j<numvins; j++) for (j=0; j<numvins; j++)
{ {

View File

@@ -679,25 +679,39 @@ Value gettxout(const Array& params, bool fHelp)
int32_t gettxout_scriptPubKey(uint8_t *scriptPubKey,int32_t maxsize,uint256 txid,int32_t n) int32_t gettxout_scriptPubKey(uint8_t *scriptPubKey,int32_t maxsize,uint256 txid,int32_t n)
{ {
int32_t i,m; uint8_t *ptr; int32_t i,m,iter; uint8_t *ptr;
LOCK(cs_main); LOCK(cs_main);
CCoins coins; CCoins coins;
if ( 0 ) for (iter=0; iter<2; iter++)
{ {
LOCK(mempool.cs); if ( iter == 0 )
CCoinsViewMemPool view(pcoinsTip,mempool); {
if ( view.GetCoins(txid,coins) == 0 ) LOCK(mempool.cs);
return(-1); CCoinsViewMemPool view(pcoinsTip,mempool);
mempool.pruneSpent(txid, coins); // TODO: this should be done by the CCoinsViewMemPool if ( view.GetCoins(txid,coins) == 0 )
} else if ( pcoinsTip->GetCoins(txid,coins) == 0 ) {
return(-1); fprintf(stderr,"cant get view\n");
if ( n < 0 || (unsigned int)n >= coins.vout.size() || coins.vout[n].IsNull() ) continue;
return(-1); }
ptr = (uint8_t *)coins.vout[n].scriptPubKey.data(); mempool.pruneSpent(txid, coins); // TODO: this should be done by the CCoinsViewMemPool
m = coins.vout[n].scriptPubKey.size(); }
for (i=0; i<maxsize&&i<m; i++) else if ( pcoinsTip->GetCoins(txid,coins) == 0 )
scriptPubKey[i] = ptr[i]; {
return(i); fprintf(stderr,"cant get pcoinsTip->GetCoins\n");
continue;
}
if ( n < 0 || (unsigned int)n >= coins.vout.size() || coins.vout[n].IsNull() )
{
fprintf(stderr,"iter.%d n.%d vs voutsize.%d\n",iter,n,(int32_t)coins.vout.size());
continue;
}
ptr = (uint8_t *)coins.vout[n].scriptPubKey.data();
m = coins.vout[n].scriptPubKey.size();
for (i=0; i<maxsize&&i<m; i++)
scriptPubKey[i] = ptr[i];
return(i);
}
return(-1);
} }
Value verifychain(const Array& params, bool fHelp) Value verifychain(const Array& params, bool fHelp)