Skip to content

Commit

Permalink
Cached block number in logger
Browse files Browse the repository at this point in the history
  • Loading branch information
Yashk767 committed Nov 16, 2022
1 parent 2449c03 commit 760e3ad
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 9 deletions.
3 changes: 3 additions & 0 deletions core/constants.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,6 @@ var DefaultWaitTime = 1
var DefaultGasLimit = 2
var DefaultRPCTimeout = 10
var DefaultLogLevel = ""

//BlockNumberInterval is the interval in seconds after which blockNumber needs to be calculated again
var BlockNumberInterval = 5
24 changes: 15 additions & 9 deletions logger/logger.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import (
"razor/core"
"razor/path"
"runtime"
"time"
)

type StandardLogger struct {
Expand All @@ -28,6 +29,7 @@ var Epoch uint32
var BlockNumber *big.Int
var FileName string
var Client *ethclient.Client
var lastBlockNumberTimestamp time.Time

func init() {
path.PathUtilsInterface = &path.PathUtils{}
Expand Down Expand Up @@ -168,16 +170,20 @@ func (logger *StandardLogger) Fatalf(format string, args ...interface{}) {
}

func SetEpochAndBlockNumber(client *ethclient.Client) {
if client != nil {
latestHeader, err := client.HeaderByNumber(context.Background(), nil)
if err != nil {
log.Error("Error in fetching block: ", err)
return
elapsedTime := time.Since(lastBlockNumberTimestamp).Seconds()
if elapsedTime > float64(core.BlockNumberInterval) {
if client != nil {
latestHeader, err := client.HeaderByNumber(context.Background(), nil)
if err != nil {
log.Error("Error in fetching block: ", err)
return
}
BlockNumber = latestHeader.Number

epoch := latestHeader.Time / uint64(core.EpochLength)
Epoch = uint32(epoch)
lastBlockNumberTimestamp = time.Now()
}
BlockNumber = latestHeader.Number

epoch := latestHeader.Time / uint64(core.EpochLength)
Epoch = uint32(epoch)
}
}

Expand Down

0 comments on commit 760e3ad

Please sign in to comment.