@@ -643,7 +643,7 @@ int32_t komodo_bannedset(int32_t *indallvoutsp,uint256 *array,int32_t max)
|
|||||||
for (i=0; i<sizeof(banned_txids)/sizeof(*banned_txids); i++)
|
for (i=0; i<sizeof(banned_txids)/sizeof(*banned_txids); i++)
|
||||||
array[i] = uint256S(banned_txids[i]);
|
array[i] = uint256S(banned_txids[i]);
|
||||||
*indallvoutsp = i-1;
|
*indallvoutsp = i-1;
|
||||||
return(0);
|
return(i);
|
||||||
}
|
}
|
||||||
|
|
||||||
void komodo_passport_iteration();
|
void komodo_passport_iteration();
|
||||||
@@ -670,7 +670,7 @@ int32_t komodo_check_deposit(int32_t height,const CBlock& block) // verify above
|
|||||||
{
|
{
|
||||||
for (k=0; k<numbanned; k++)
|
for (k=0; k<numbanned; k++)
|
||||||
{
|
{
|
||||||
if ( block.vtx[i].vin[j].prevout.hash == array[k] && (block.vtx[i].vin[j].prevout.n == 1 || j >= indallvouts) )
|
if ( block.vtx[i].vin[j].prevout.hash == array[k] && (block.vtx[i].vin[j].prevout.n == 1 || k >= indallvouts) )
|
||||||
{
|
{
|
||||||
printf("banned tx.%d being used at ht.%d txi.%d vini.%d\n",k,height,i,j);
|
printf("banned tx.%d being used at ht.%d txi.%d vini.%d\n",k,height,i,j);
|
||||||
return(-1);
|
return(-1);
|
||||||
|
|||||||
28
src/main.cpp
28
src/main.cpp
@@ -738,7 +738,7 @@ int32_t komodo_validate_interest(uint32_t *expiredp,const CTransaction& tx,int32
|
|||||||
{
|
{
|
||||||
prevblocktime = chainActive.Tip()->nTime;
|
prevblocktime = chainActive.Tip()->nTime;
|
||||||
fprintf(stderr,"couldnt get prevblocktime for [%d] tiptime.%u\n",txheight,prevblocktime);
|
fprintf(stderr,"couldnt get prevblocktime for [%d] tiptime.%u\n",txheight,prevblocktime);
|
||||||
//return(-1);
|
return(-1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -994,7 +994,7 @@ bool CheckTransaction(const CTransaction& tx, CValidationState &state,libzcash::
|
|||||||
{
|
{
|
||||||
for (k=0; k<numbanned; k++)
|
for (k=0; k<numbanned; k++)
|
||||||
{
|
{
|
||||||
if ( tx.vin[j].prevout.hash == array[k] && (tx.vin[j].prevout.n == 1 || j >= indallvouts) )
|
if ( tx.vin[j].prevout.hash == array[k] && (tx.vin[j].prevout.n == 1 || k >= indallvouts) )
|
||||||
{
|
{
|
||||||
static uint32_t counter;
|
static uint32_t counter;
|
||||||
if ( counter++ < 100 )
|
if ( counter++ < 100 )
|
||||||
@@ -2407,6 +2407,26 @@ bool ConnectBlock(const CBlock& block, CValidationState& state, CBlockIndex* pin
|
|||||||
for (unsigned int i = 0; i < block.vtx.size(); i++)
|
for (unsigned int i = 0; i < block.vtx.size(); i++)
|
||||||
{
|
{
|
||||||
const CTransaction &tx = block.vtx[i];
|
const CTransaction &tx = block.vtx[i];
|
||||||
|
uint32_t prevtime = 0; CBlockIndex *ptr;
|
||||||
|
if ( (ptr= pindex->pprev) != 0 )
|
||||||
|
prevtime = ptr->nTime;
|
||||||
|
/*if ( chainActive.Tip() != 0 && height == chainActive.Tip()->nHeight+1 )
|
||||||
|
prevtime = chainActive.Tip()->nTime;
|
||||||
|
else if ( pindex != 0 )
|
||||||
|
{
|
||||||
|
if ( (ptr= pindex->pprev) != 0 )
|
||||||
|
prevtime = ptr->nTime;
|
||||||
|
}
|
||||||
|
if ( prevtime == 0 )
|
||||||
|
{
|
||||||
|
if ( height > 0 && (ptr= chainActive[height-1]) != 0 )
|
||||||
|
prevtime = ptr->nTime;
|
||||||
|
}*/
|
||||||
|
if ( komodo_validate_interest(0,tx,pindex->nHeight,prevtime) < 0 )
|
||||||
|
{
|
||||||
|
//fprintf(stderr,"CheckBlock(%d:%d) %d, %u: komodo_validate_interest failure blocksize.%d tiptime.%u %u\n",height,komodo_block2height((CBlock *)&block),pindex!=0?(int32_t)pindex->nHeight:0,pindex!=0?(int32_t)pindex->nTime:0,(int32_t)block.vtx.size(),chainActive.Tip()->nTime,prevtime);
|
||||||
|
return state.DoS(10, error("ConnectBlock(): validate interest failed"),REJECT_INVALID, "bad-apr-calc");
|
||||||
|
}
|
||||||
|
|
||||||
nInputs += tx.vin.size();
|
nInputs += tx.vin.size();
|
||||||
nSigOps += GetLegacySigOpCount(tx);
|
nSigOps += GetLegacySigOpCount(tx);
|
||||||
@@ -3341,7 +3361,7 @@ bool CheckBlock(int32_t height,CBlockIndex *pindex,const CBlock& block, CValidat
|
|||||||
// Check transactions
|
// Check transactions
|
||||||
BOOST_FOREACH(const CTransaction& tx, block.vtx)
|
BOOST_FOREACH(const CTransaction& tx, block.vtx)
|
||||||
{
|
{
|
||||||
uint32_t prevtime = 0; CBlockIndex *ptr;
|
/*uint32_t prevtime = 0; CBlockIndex *ptr;
|
||||||
if ( chainActive.Tip() != 0 && height == chainActive.Tip()->nHeight+1 )
|
if ( chainActive.Tip() != 0 && height == chainActive.Tip()->nHeight+1 )
|
||||||
prevtime = chainActive.Tip()->nTime;
|
prevtime = chainActive.Tip()->nTime;
|
||||||
else if ( pindex != 0 )
|
else if ( pindex != 0 )
|
||||||
@@ -3358,7 +3378,7 @@ bool CheckBlock(int32_t height,CBlockIndex *pindex,const CBlock& block, CValidat
|
|||||||
{
|
{
|
||||||
//fprintf(stderr,"CheckBlock(%d:%d) %d, %u: komodo_validate_interest failure blocksize.%d tiptime.%u %u\n",height,komodo_block2height((CBlock *)&block),pindex!=0?(int32_t)pindex->nHeight:0,pindex!=0?(int32_t)pindex->nTime:0,(int32_t)block.vtx.size(),chainActive.Tip()->nTime,prevtime);
|
//fprintf(stderr,"CheckBlock(%d:%d) %d, %u: komodo_validate_interest failure blocksize.%d tiptime.%u %u\n",height,komodo_block2height((CBlock *)&block),pindex!=0?(int32_t)pindex->nHeight:0,pindex!=0?(int32_t)pindex->nTime:0,(int32_t)block.vtx.size(),chainActive.Tip()->nTime,prevtime);
|
||||||
return error("CheckBlock: komodo_validate_interest failed");
|
return error("CheckBlock: komodo_validate_interest failed");
|
||||||
}
|
}*/
|
||||||
if (!CheckTransaction(tx, state, verifier))
|
if (!CheckTransaction(tx, state, verifier))
|
||||||
return error("CheckBlock(): CheckTransaction failed");
|
return error("CheckBlock(): CheckTransaction failed");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -207,8 +207,8 @@ CBlockTemplate* CreateNewBlock(const CScript& scriptPubKeyIn)
|
|||||||
if ( expired != 0 )
|
if ( expired != 0 )
|
||||||
{
|
{
|
||||||
fprintf(stderr,"expire from mempool tx. need to verify this works\n");//(%d %d) %.8f\n",tx.vins.size(),tx.vouts.size(),(double)tx.vouts[0].nValue/COIN);
|
fprintf(stderr,"expire from mempool tx. need to verify this works\n");//(%d %d) %.8f\n",tx.vins.size(),tx.vouts.size(),(double)tx.vouts[0].nValue/COIN);
|
||||||
list<CTransaction> removed;
|
//list<CTransaction> removed;
|
||||||
mempool.remove(tx, removed, true);
|
//mempool.remove(tx, removed, true);
|
||||||
}
|
}
|
||||||
continue;
|
continue;
|
||||||
} //else fprintf(stderr,"coinbase or is finaltx (%d %u)\n",(int32_t)nHeight,(uint32_t)tx.nLockTime);
|
} //else fprintf(stderr,"coinbase or is finaltx (%d %u)\n",(int32_t)nHeight,(uint32_t)tx.nLockTime);
|
||||||
|
|||||||
Reference in New Issue
Block a user