@@ -3,26 +3,28 @@ package config
33import (
44 "fmt"
55 "os"
6+ "strconv"
67 "strings"
78
89 "github.com/dappnode/validator-tracker/internal/logger"
910)
1011
1112type Config struct {
12- BeaconEndpoint string
13- Web3SignerEndpoint string
14- Network string
15- SignerDnpName string
16- BeaconchaUrl string
17- DappmanagerUrl string
18- NotifierUrl string
19- BrainUrl string
13+ BeaconEndpoint string
14+ Web3SignerEndpoint string
15+ Network string
16+ SignerDnpName string
17+ BeaconchaUrl string
18+ DappmanagerUrl string
19+ NotifierUrl string
20+ BrainUrl string
21+ PollIntervalSeconds int
2022}
2123
2224func LoadConfig () Config {
2325 network := os .Getenv ("NETWORK" )
2426 if network == "" {
25- network = "hoodi" // default
27+ network = "mainnet"
2628 }
2729
2830 // Build the dynamic endpoints
@@ -49,6 +51,21 @@ func LoadConfig() Config {
4951 brainEndpoint = envBrain
5052 }
5153
54+ // Load poll interval for duties checker
55+ var pollIntervalSeconds int
56+ if network == "gnosis" {
57+ pollIntervalSeconds = 30 // default to 30 seconds for gnosis
58+ } else {
59+ pollIntervalSeconds = 60 // default to 60 seconds for other networks
60+ }
61+ if envPollInterval := os .Getenv ("DUTIES_CHECKER_POLL_INTERVAL_SECONDS" ); envPollInterval != "" {
62+ if parsed , err := strconv .Atoi (envPollInterval ); err == nil && parsed > 0 {
63+ pollIntervalSeconds = parsed
64+ } else {
65+ logger .Warn ("Invalid DUTIES_CHECKER_POLL_INTERVAL_SECONDS value '%s', using default %d seconds" , envPollInterval , pollIntervalSeconds )
66+ }
67+ }
68+
5269 // Normalize network name for logs
5370 network = strings .ToLower (network )
5471 if network != "hoodi" && network != "holesky" && network != "mainnet" && network != "gnosis" && network != "lukso" {
@@ -80,13 +97,14 @@ func LoadConfig() Config {
8097 }
8198
8299 return Config {
83- BeaconEndpoint : beaconEndpoint ,
84- Web3SignerEndpoint : web3SignerEndpoint ,
85- Network : network ,
86- SignerDnpName : dnpName ,
87- BeaconchaUrl : beaconchaUrl ,
88- DappmanagerUrl : dappmanagerEndpoint ,
89- NotifierUrl : notifierEndpoint ,
90- BrainUrl : brainEndpoint ,
100+ BeaconEndpoint : beaconEndpoint ,
101+ Web3SignerEndpoint : web3SignerEndpoint ,
102+ Network : network ,
103+ SignerDnpName : dnpName ,
104+ BeaconchaUrl : beaconchaUrl ,
105+ DappmanagerUrl : dappmanagerEndpoint ,
106+ NotifierUrl : notifierEndpoint ,
107+ BrainUrl : brainEndpoint ,
108+ PollIntervalSeconds : pollIntervalSeconds ,
91109 }
92110}
0 commit comments