MCPcopy Create free account
hub / github.com/ethstorage/es-node / Check

Method Check

cmd/alert/ether_last_block_checker.go:36–64  ·  view source on GitHub ↗
(lg log.Logger)

Source from the content-addressed store, hash-verified

34}
35
36func (c *LastBlockChecker) Check(lg log.Logger) (bool, string, string) {
37 ctx := context.Background()
38 client, err := ethclient.Dial(c.RPC)
39 if err != nil {
40 lg.Error("Failed to create L1 source", "alert", c.Name, "err", err)
41 return true, fmt.Sprintf(errorContent, c.Name, err.Error()), c.EmailTo
42 }
43
44 for i := 0; i < 3; i++ {
45 header, e := client.HeaderByNumber(ctx, nil)
46 if e != nil {
47 time.Sleep(time.Minute)
48 lg.Error("Get block fail", "alert", c.Name, "rpc", c.RPC, "error", e)
49 err = e
50 continue
51 }
52
53 lastMinedTime := time.Unix(int64(header.Time), 0)
54 lg.Info("Check last block", "alert", c.Name, "time", lastMinedTime, "block", header.Number, "rpc", c.RPC)
55 targetTime := time.Now().Add(-10 * time.Minute)
56 if targetTime.After(lastMinedTime) {
57 content := fmt.Sprintf(noBlockIn10MinutesAlertContent, c.Name, header.Number, lastMinedTime, c.RPC)
58 return true, content, c.EmailTo
59 }
60 return false, "", c.EmailTo
61 }
62
63 return true, fmt.Sprintf(errorContent, c.Name, err.Error()), c.EmailTo
64}

Callers

nothing calls this directly

Calls 2

HeaderByNumberMethod · 0.65
ErrorMethod · 0.45

Tested by

no test coverage detected