From b5060847be0aad8a76be7cad27a2b2cab742383d Mon Sep 17 00:00:00 2001
From: Oleg Kovalov <oleg@hey.com>
Date: Thu, 23 Jan 2025 16:34:02 +0100
Subject: [PATCH] do 1 more fetch before subscribe

---
 store/store.go | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/store/store.go b/store/store.go
index 287acef1..d7962bc8 100644
--- a/store/store.go
+++ b/store/store.go
@@ -231,6 +231,10 @@ func (s *Store[H]) GetByHeight(ctx context.Context, height uint64) (H, error) {
 		return zero, errors.New("header/store: height must be bigger than zero")
 	}
 
+	if h, err := s.getByHeight(ctx, height); err == nil || ctx.Err() != nil {
+		return h, err
+	}
+
 	// if the requested 'height' was not yet published
 	// we subscribe to it
 	if head := s.contiguousHead.Load(); head == nil || height > (*head).Height() {