Skip to content

Commit 7370997

Browse files
committed
ethfinalizer: use ethmonitor cached base fee first
1 parent 388fcc8 commit 7370997

1 file changed

Lines changed: 18 additions & 8 deletions

File tree

ethfinalizer/chain.go

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -149,21 +149,31 @@ func (c *ethkitChain) GasPrice(ctx context.Context) (*big.Int, error) {
149149
}
150150

151151
func (c *ethkitChain) BaseFee(ctx context.Context) (*big.Int, error) {
152-
block, err := c.Provider.BlockByNumber(ctx, nil)
153-
if err != nil {
154-
return nil, fmt.Errorf("unable to get latest block: %w", err)
155-
}
152+
var baseFee, number *big.Int
153+
154+
block := c.Monitor.LatestBlock()
155+
if block == nil || block.BaseFee() == nil {
156+
block, err := c.Provider.BlockByNumber(ctx, nil)
157+
if err != nil {
158+
return nil, fmt.Errorf("unable to get latest block: %w", err)
159+
}
160+
161+
baseFee = block.BaseFee()
162+
if baseFee == nil {
163+
return nil, fmt.Errorf("no base fee")
164+
}
156165

157-
baseFee := block.BaseFee()
158-
if baseFee == nil {
159-
return nil, fmt.Errorf("no base fee")
166+
number = block.Number()
167+
} else {
168+
baseFee = new(big.Int).Set(block.BaseFee())
169+
number = block.Number()
160170
}
161171

162172
c.mu.Lock()
163173
defer c.mu.Unlock()
164174

165175
if c.baseFee == nil || baseFee.Cmp(c.baseFee) != 0 {
166-
c.Logger.DebugContext(ctx, "base fee", slog.String("baseFee", baseFee.String()), slog.String("block", block.Number().String()))
176+
c.Logger.DebugContext(ctx, "base fee", slog.String("baseFee", baseFee.String()), slog.String("block", number.String()))
167177
c.baseFee = new(big.Int).Set(baseFee)
168178
}
169179

0 commit comments

Comments
 (0)