Skip to content

Commit

Permalink
use dependentIndexers
Browse files Browse the repository at this point in the history
  • Loading branch information
envestcc committed Jul 27, 2023
1 parent 40c3b71 commit 9f4f858
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 7 deletions.
4 changes: 2 additions & 2 deletions blockindex/indexer_group.go
Original file line number Diff line number Diff line change
Expand Up @@ -110,12 +110,12 @@ func (ig *IndexerGroup) StartHeight() (uint64, error) {
// Height returns the minimum height of the indexers in the group
func (ig *IndexerGroup) Height() (uint64, error) {
var height uint64
for _, indexer := range ig.indexers {
for i, indexer := range ig.indexers {
h, err := indexer.Height()
if err != nil {
return 0, err
}
if height == 0 || h < height {
if i == 0 || h < height {
height = h
}
}
Expand Down
2 changes: 1 addition & 1 deletion blockindex/indexer_group_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ func TestIndexerGroup_StartHeight(t *testing.T) {
for _, indexer := range c.indexers {
if indexer[0] > 0 {
mockIndexerWithStart := mock_blockdao.NewMockBlockIndexerWithStart(ctrl)
mockIndexerWithStart.EXPECT().StartHeight().Return(indexer[0]).Times(1)
mockIndexerWithStart.EXPECT().StartHeight().Return(indexer[0], nil).Times(1)
mockIndexerWithStart.EXPECT().Height().Return(indexer[1], nil).Times(1)
indexers = append(indexers, mockIndexerWithStart)
} else {
Expand Down
16 changes: 12 additions & 4 deletions chainservice/builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -257,8 +257,19 @@ func (builder *Builder) buildBlockDAO(forTest bool) error {
}

var indexers []blockdao.BlockIndexer
dependencies := [][2]blockdao.BlockIndexer{}
if builder.cs.contractStakingIndexer != nil {
indexers = append(indexers, blockindex.NewIndexerGroup(builder.cs.factory, builder.cs.contractStakingIndexer))
dependencies = append(dependencies, [2]blockdao.BlockIndexer{builder.cs.factory, builder.cs.contractStakingIndexer})
}
if builder.cs.sgdIndexer != nil {
dependencies = append(dependencies, [2]blockdao.BlockIndexer{builder.cs.factory, builder.cs.sgdIndexer})
}
if len(dependencies) > 0 {
dependentIndexer, err := blockindex.NewDependentIndexers(dependencies...)
if err != nil {
return errors.Wrapf(err, "failed to create dependent indexers")
}
indexers = append(indexers, dependentIndexer)
} else {
indexers = append(indexers, builder.cs.factory)
}
Expand All @@ -268,9 +279,6 @@ func (builder *Builder) buildBlockDAO(forTest bool) error {
if builder.cs.bfIndexer != nil {
indexers = append(indexers, builder.cs.bfIndexer)
}
if builder.cs.sgdIndexer != nil {
indexers = append(indexers, builder.cs.sgdIndexer)
}
if forTest {
builder.cs.blockdao = blockdao.NewBlockDAOInMemForTest(indexers)
} else {
Expand Down

0 comments on commit 9f4f858

Please sign in to comment.