From e3dc6563dddae8a87dd0e72350e706f6da991537 Mon Sep 17 00:00:00 2001 From: Sina Mahmoodi Date: Thu, 3 Apr 2025 15:19:19 +0200 Subject: [PATCH] use SkipN method --- internal/era/e2store/e2store.go | 12 ++++++++++++ internal/era/era.go | 12 ++---------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/internal/era/e2store/e2store.go b/internal/era/e2store/e2store.go index 9832b72d48..b0d43bf55a 100644 --- a/internal/era/e2store/e2store.go +++ b/internal/era/e2store/e2store.go @@ -219,3 +219,15 @@ func (r *Reader) FindAll(want uint16) ([]*Entry, error) { off += int64(headerSize + length) } } + +// SkipN skips `n` entries starting from `offset` and returns the new offset. +func (r *Reader) SkipN(offset int64, n uint64) (int64, error) { + for i := uint64(0); i < n; i++ { + length, err := r.LengthAt(offset) + if err != nil { + return 0, err + } + offset += length + } + return offset, nil +} diff --git a/internal/era/era.go b/internal/era/era.go index 6fee775391..ee210346bb 100644 --- a/internal/era/era.go +++ b/internal/era/era.go @@ -187,19 +187,11 @@ func (e *Era) GetReceipts(num uint64) (types.Receipts, error) { return nil, err } - // Skip header entry - headerLength, err := e.s.LengthAt(off) + // Skip over header and body + off, err = e.s.SkipN(off, 2) if err != nil { return nil, err } - off += headerLength - - // Skip body entry - bodyLength, err := e.s.LengthAt(off) - if err != nil { - return nil, err - } - off += bodyLength // Read and decompress receipts r, _, err := newSnappyReader(e.s, TypeCompressedReceipts, off)