Skip to content

Commit

Permalink
Merge pull request #126 from 0xPolygon/fix/port-retrieve-forkids-at-boot
Browse files Browse the repository at this point in the history
Retrieve and populate forkids table on boot
  • Loading branch information
vcastellm authored Apr 11, 2024
2 parents 2c1ed59 + 20361a9 commit bd59114
Show file tree
Hide file tree
Showing 2 changed files with 2,486 additions and 273 deletions.
24 changes: 21 additions & 3 deletions cmd/run.go
Original file line number Diff line number Diff line change
Expand Up @@ -630,7 +630,7 @@ func newState(ctx context.Context, c *config.Config, etherman *etherman.Client,
st.UpdateForkIDIntervalsInMemory(forkIDIntervals)

currentForkID := forkIDIntervals[len(forkIDIntervals)-1].ForkId
log.Infof("Fork ID read from POE SC = %v", forkIDIntervals[len(forkIDIntervals)-1].ForkId)
log.Infof("Fork ID read from POE SC = %v", currentForkID)

return st, currentForkID
}
Expand Down Expand Up @@ -784,14 +784,32 @@ func forkIDIntervals(ctx context.Context, st *state.State, etherman *etherman.Cl
}
forkIDIntervals = forkIntervals
} else {
log.Debug("Getting initial forkID")
forkIntervals, err := etherman.GetForks(ctx, genesisBlockNumber, genesisBlockNumber)
log.Debug("Getting all forkIDs")

// Get last L1 block number
bn, err := etherman.GetLatestBlockNumber(ctx)
if err != nil {
return []state.ForkIDInterval{}, fmt.Errorf("error getting latest block number. Error: %v", err)
}

// Get all forkIDs since genesis
forkIntervals, err := etherman.GetForks(ctx, genesisBlockNumber, bn)
if err != nil {
return []state.ForkIDInterval{}, fmt.Errorf("error getting forks. Please check the configuration. Error: %v", err)
} else if len(forkIntervals) == 0 {
return []state.ForkIDInterval{}, fmt.Errorf("error: no forkID received. It should receive at least one, please check the configuration...")
}
forkIDIntervals = forkIntervals

log.Debugf("Retrieved %d forkIDs", len(forkIDIntervals))

log.Debug("Adding forkIDs to db and memory")
for _, forkID := range forkIDIntervals {
err = st.AddForkIDInterval(ctx, forkID, nil)
if err != nil {
log.Fatal("error adding forkID to db. Error: ", err)
}
}
}
}
return forkIDIntervals, nil
Expand Down
Loading

0 comments on commit bd59114

Please sign in to comment.