use SkipN method

This commit is contained in:
Sina Mahmoodi 2025-04-03 15:19:19 +02:00 committed by lightclient
parent 5348b311ca
commit e3dc6563dd
No known key found for this signature in database
GPG key ID: 657913021EF45A6A
2 changed files with 14 additions and 10 deletions

View file

@ -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
}

View file

@ -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)