|
|
@ -56,12 +56,12 @@ h256 BlockInfo::headerHashWithoutNonce() const |
|
|
|
return sha3(s.out()); |
|
|
|
} |
|
|
|
|
|
|
|
auto static const s_sha3EmptyList = sha3(RLPEmptyList); |
|
|
|
auto static const c_sha3EmptyList = sha3(RLPEmptyList); |
|
|
|
|
|
|
|
void BlockInfo::fillStream(RLPStream& _s, bool _nonce) const |
|
|
|
{ |
|
|
|
_s.appendList(_nonce ? 13 : 12) << parentHash; |
|
|
|
_s.append(sha3Uncles == s_sha3EmptyList ? h256() : sha3Uncles, false, true); |
|
|
|
_s.append(sha3Uncles == c_sha3EmptyList ? h256() : sha3Uncles, false, true); |
|
|
|
_s << coinbaseAddress; |
|
|
|
_s.append(stateRoot, false, true).append(transactionsRoot, false, true); |
|
|
|
_s << difficulty << number << minGasPrice << gasLimit << gasUsed << timestamp << extraData; |
|
|
@ -83,6 +83,8 @@ void BlockInfo::populateFromHeader(RLP const& _header, bool _checkNonce) |
|
|
|
{ |
|
|
|
parentHash = _header[field = 0].toHash<h256>(); |
|
|
|
sha3Uncles = _header[field = 1].toHash<h256>(); |
|
|
|
if (sha3Uncles == h256()) |
|
|
|
sha3Uncles = c_sha3EmptyList; |
|
|
|
coinbaseAddress = _header[field = 2].toHash<Address>(); |
|
|
|
stateRoot = _header[field = 3].toHash<h256>(); |
|
|
|
transactionsRoot = _header[field = 4].toHash<h256>(); |
|
|
|