|
|
@ -127,8 +127,14 @@ void BlockInfo::populateFromHeader(RLP const& _header, bool _checkNonce) |
|
|
|
if (gasUsed > gasLimit) |
|
|
|
BOOST_THROW_EXCEPTION(TooMuchGasUsed() << RequirementError(bigint(gasLimit), bigint(gasUsed)) ); |
|
|
|
|
|
|
|
if (difficulty < c_minimumDifficulty) |
|
|
|
BOOST_THROW_EXCEPTION(InvalidDifficulty() << RequirementError(bigint(c_minimumDifficulty), bigint(difficulty)) ); |
|
|
|
|
|
|
|
if (gasLimit < c_minGasLimit) |
|
|
|
BOOST_THROW_EXCEPTION(InvalidGasLimit() << RequirementError(bigint(c_minGasLimit), bigint(gasLimit)) ); |
|
|
|
|
|
|
|
if (number && extraData.size() > c_maximumExtraDataSize) |
|
|
|
BOOST_THROW_EXCEPTION(ExtraDataTooBig()); |
|
|
|
BOOST_THROW_EXCEPTION(ExtraDataTooBig() << RequirementError(bigint(c_maximumExtraDataSize), bigint(extraData.size()))); |
|
|
|
} |
|
|
|
|
|
|
|
void BlockInfo::populate(bytesConstRef _block, bool _checkNonce) |
|
|
@ -213,10 +219,6 @@ void BlockInfo::verifyParent(BlockInfo const& _parent) const |
|
|
|
gasLimit > _parent.gasLimit * (c_gasLimitBoundDivisor + 1) / c_gasLimitBoundDivisor) |
|
|
|
BOOST_THROW_EXCEPTION(InvalidGasLimit(gasLimit, _parent.gasLimit * (c_gasLimitBoundDivisor - 1) / c_gasLimitBoundDivisor, _parent.gasLimit * (c_gasLimitBoundDivisor + 1) / c_gasLimitBoundDivisor)); |
|
|
|
|
|
|
|
if (gasLimit < _parent.gasLimit * (c_gasLimitBoundDivisor - 1) / c_gasLimitBoundDivisor || |
|
|
|
gasLimit > _parent.gasLimit * (c_gasLimitBoundDivisor + 1) / c_gasLimitBoundDivisor) |
|
|
|
BOOST_THROW_EXCEPTION(InvalidGasLimit(gasLimit, _parent.gasLimit * (c_gasLimitBoundDivisor - 1) / c_gasLimitBoundDivisor, _parent.gasLimit * (c_gasLimitBoundDivisor + 1) / c_gasLimitBoundDivisor)); |
|
|
|
|
|
|
|
if (seedHash != calculateSeedHash(_parent)) |
|
|
|
BOOST_THROW_EXCEPTION(InvalidSeedHash()); |
|
|
|
|
|
|
|