diff --git a/internal/era/era.go b/internal/era/era.go index bb9b202464..38bebfced0 100644 --- a/internal/era/era.go +++ b/internal/era/era.go @@ -181,7 +181,7 @@ func (e *Era) InitialTD() (*big.Int, error) { if r, n, err = newSnappyReader(e.s, TypeCompressedHeader, off); err != nil { return nil, err } - if err := rlp.Decode(r, header); err != nil { + if err := rlp.Decode(r, &header); err != nil { return nil, err } off += n @@ -199,7 +199,8 @@ func (e *Era) InitialTD() (*big.Int, error) { if r, _, err = e.s.ReaderAt(TypeTotalDifficulty, off); err != nil { return nil, err } - if err := rlp.Decode(r, rawTd); err != nil { + rawTd, err = io.ReadAll(r) + if err != nil { return nil, err } td := new(big.Int).SetBytes(reverseOrder(rawTd)) diff --git a/internal/era/iterator.go b/internal/era/iterator.go index 291d55a27d..e74a8154b1 100644 --- a/internal/era/iterator.go +++ b/internal/era/iterator.go @@ -103,8 +103,8 @@ func (it *Iterator) BlockAndReceipts() (*types.Block, types.Receipts, error) { // TotalDifficulty returns the total difficulty for the iterator's current // position. func (it *Iterator) TotalDifficulty() (*big.Int, error) { - var td []byte - if err := rlp.Decode(it.inner.TotalDifficulty, td); err != nil { + td, err := io.ReadAll(it.inner.TotalDifficulty) + if err != nil { return nil, err } return new(big.Int).SetBytes(reverseOrder(td)), nil