core/types: improve accuracy of header.Size() (#25859)

The header.Size() method did not take the basefee into account.
This commit is contained in:
zhiqiangxu 2022-09-26 15:10:39 +08:00 committed by GitHub
parent 15b4a4bf2e
commit 367e60549a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -117,7 +117,11 @@ var headerSize = common.StorageSize(reflect.TypeOf(Header{}).Size())
// Size returns the approximate memory used by all internal contents. It is used // Size returns the approximate memory used by all internal contents. It is used
// to approximate and limit the memory consumption of various caches. // to approximate and limit the memory consumption of various caches.
func (h *Header) Size() common.StorageSize { func (h *Header) Size() common.StorageSize {
return headerSize + common.StorageSize(len(h.Extra)+(h.Difficulty.BitLen()+h.Number.BitLen())/8) var baseFeeBits int
if h.BaseFee != nil {
baseFeeBits = h.BaseFee.BitLen()
}
return headerSize + common.StorageSize(len(h.Extra)+(h.Difficulty.BitLen()+h.Number.BitLen()+baseFeeBits)/8)
} }
// SanityCheck checks a few basic things -- these checks are way beyond what // SanityCheck checks a few basic things -- these checks are way beyond what