Skip to content

Commit 9841713

Browse files
committed
moved safe tag calculation to tracker
1 parent 426d268 commit 9841713

File tree

4 files changed

+14
-15
lines changed

4 files changed

+14
-15
lines changed

chains/heads/tracker.go

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ type ChainConfig interface {
5151
FinalityDepth() uint32
5252
SafeDepth() uint32
5353
FinalityTagEnabled() bool
54+
SafeTagSupported() bool
5455
FinalizedBlockOffset() uint32
5556
}
5657

@@ -402,9 +403,19 @@ func (t *tracker[HTH, S, ID, BHASH]) backfillLoop(ctx context.Context) {
402403

403404
func (t *tracker[HTH, S, ID, BHASH]) LatestSafeBlock(ctx context.Context) (safe HTH, err error) {
404405
if t.config.FinalityTagEnabled() {
405-
latestSafe, err2 := t.client.LatestSafeBlock(ctx)
406-
if err2 != nil {
407-
return latestSafe, fmt.Errorf("failed to get latest finalized block: %w", err2)
406+
var latestSafe HTH
407+
if t.config.SafeTagSupported() {
408+
latestSafe, err = t.client.LatestSafeBlock(ctx)
409+
if err != nil {
410+
return latestSafe, fmt.Errorf("failed to get latest finalized block: %w", err)
411+
}
412+
} else {
413+
// return latest finalized block if safe tag is not enabled
414+
_, finalized, err2 := t.LatestAndFinalizedBlock(ctx)
415+
if err2 != nil {
416+
return finalized, fmt.Errorf("failed to get latest finalized block: %w", err2)
417+
}
418+
latestSafe = finalized
408419
}
409420

410421
if !latestSafe.IsValid() {

multinode/config/config.go

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ type MultiNode struct {
3333
NoNewFinalizedHeadsThreshold *config.Duration
3434
FinalityDepth *uint32
3535
FinalityTagEnabled *bool
36-
SafeTagEnabled *bool
3736
FinalizedBlockOffset *uint32
3837
}
3938

@@ -93,8 +92,6 @@ func (c *MultiNodeConfig) FinalityDepth() uint32 { return *c.MultiNode.FinalityD
9392

9493
func (c *MultiNodeConfig) FinalityTagEnabled() bool { return *c.MultiNode.FinalityTagEnabled }
9594

96-
func (c *MultiNodeConfig) SafeTagEnabled() bool { return *c.MultiNode.SafeTagEnabled }
97-
9895
func (c *MultiNodeConfig) FinalizedBlockOffset() uint32 { return *c.MultiNode.FinalizedBlockOffset }
9996

10097
func (c *MultiNodeConfig) SetFrom(f *MultiNodeConfig) {
@@ -150,9 +147,6 @@ func (c *MultiNodeConfig) SetFrom(f *MultiNodeConfig) {
150147
if f.MultiNode.FinalityTagEnabled != nil {
151148
c.MultiNode.FinalityTagEnabled = f.MultiNode.FinalityTagEnabled
152149
}
153-
if f.MultiNode.SafeTagEnabled != nil {
154-
c.MultiNode.SafeTagEnabled = f.MultiNode.SafeTagEnabled
155-
}
156150
if f.MultiNode.FinalizedBlockOffset != nil {
157151
c.MultiNode.FinalizedBlockOffset = f.MultiNode.FinalizedBlockOffset
158152
}

multinode/mocks/config.go

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import "time"
44

55
type ChainConfig struct {
66
IsFinalityTagEnabled bool
7-
IsSafeTagEnabled bool
87
FinalityDepthVal uint32
98
NoNewHeadsThresholdVal time.Duration
109
FinalizedBlockOffsetVal uint32
@@ -23,10 +22,6 @@ func (t ChainConfig) FinalityTagEnabled() bool {
2322
return t.IsFinalityTagEnabled
2423
}
2524

26-
func (t ChainConfig) SafeTagEnabled() bool {
27-
return t.IsSafeTagEnabled
28-
}
29-
3025
func (t ChainConfig) FinalizedBlockOffset() uint32 {
3126
return t.FinalizedBlockOffsetVal
3227
}

multinode/node.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ type ChainConfig interface {
3434
NoNewFinalizedHeadsThreshold() time.Duration
3535
FinalityDepth() uint32
3636
FinalityTagEnabled() bool
37-
SafeTagEnabled() bool
3837
FinalizedBlockOffset() uint32
3938
}
4039

0 commit comments

Comments
 (0)