Skip to content
24 changes: 24 additions & 0 deletions block/internal/cache/manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -77,10 +77,14 @@ type PendingManager interface {
GetPendingData(ctx context.Context) ([]*types.SignedData, [][]byte, error)
SetLastSubmittedHeaderHeight(ctx context.Context, height uint64)
GetLastSubmittedHeaderHeight() uint64
ResetInFlightHeaderRange(start, end uint64)
SetLastSubmittedDataHeight(ctx context.Context, height uint64)
GetLastSubmittedDataHeight() uint64
ResetInFlightDataRange(start, end uint64)
NumPendingHeaders() uint64
NumPendingData() uint64
NumPendingHeadersTotal() uint64
NumPendingDataTotal() uint64
}

// Manager combines CacheManager and PendingManager.
Expand Down Expand Up @@ -311,6 +315,14 @@ func (m *implementation) SetLastSubmittedHeaderHeight(ctx context.Context, heigh
m.pendingHeaders.SetLastSubmittedHeaderHeight(ctx, height)
}

func (m *implementation) ResetInFlightHeaderHeight() {
m.pendingHeaders.ResetInFlightHeaderRange(0, 0)
}

func (m *implementation) ResetInFlightHeaderRange(start, end uint64) {
m.pendingHeaders.ResetInFlightHeaderRange(start, end)
}

func (m *implementation) GetLastSubmittedDataHeight() uint64 {
return m.pendingData.GetLastSubmittedDataHeight()
}
Expand All @@ -319,6 +331,10 @@ func (m *implementation) SetLastSubmittedDataHeight(ctx context.Context, height
m.pendingData.SetLastSubmittedDataHeight(ctx, height)
}

func (m *implementation) ResetInFlightDataRange(start, end uint64) {
m.pendingData.ResetInFlightDataRange(start, end)
}

func (m *implementation) NumPendingHeaders() uint64 {
return m.pendingHeaders.NumPendingHeaders()
}
Expand All @@ -327,6 +343,14 @@ func (m *implementation) NumPendingData() uint64 {
return m.pendingData.NumPendingData()
}

func (m *implementation) NumPendingHeadersTotal() uint64 {
return m.pendingHeaders.NumPendingHeadersTotal()
}

func (m *implementation) NumPendingDataTotal() uint64 {
return m.pendingData.NumPendingDataTotal()
}

// SetPendingEvent sets the event at the specified height.
func (m *implementation) SetPendingEvent(height uint64, event *common.DAHeightEvent) {
m.pendingMu.Lock()
Expand Down
10 changes: 6 additions & 4 deletions block/internal/cache/manager_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -221,6 +221,12 @@ func TestPendingHeadersAndData_Flow(t *testing.T) {
// update last submitted heights and re-check
cm.SetLastSubmittedHeaderHeight(ctx, 1)
cm.SetLastSubmittedDataHeight(ctx, 2)
cm.ResetInFlightHeaderRange(1, 3)
cm.ResetInFlightDataRange(2, 3)

// numPending views (before getPending claims items)
assert.Equal(t, uint64(2), cm.NumPendingHeaders())
assert.Equal(t, uint64(1), cm.NumPendingData())

headers, _, err = cm.GetPendingHeaders(ctx)
require.NoError(t, err)
Expand All @@ -231,10 +237,6 @@ func TestPendingHeadersAndData_Flow(t *testing.T) {
require.NoError(t, err)
require.Len(t, signedData, 1)
assert.Equal(t, uint64(3), signedData[0].Height())

// numPending views
assert.Equal(t, uint64(2), cm.NumPendingHeaders())
assert.Equal(t, uint64(1), cm.NumPendingData())
}

func TestManager_TxOperations(t *testing.T) {
Expand Down
Loading
Loading