Documentation ¶
Index ¶
- Constants
- func BytesToAnyTomlStruct(logger zerolog.Logger, filename, configurationName string, target any, ...) error
- func MightConfigOverridePyroscopeKey(config *PyroscopeConfig, target interface{})
- func MustConfigOverrideChainlinkVersion(config *ChainlinkImageConfig, target interface{})
- type ChainlinkImageConfig
- type ForkConfig
- type GrafanaConfig
- type LogStreamConfig
- type LoggingConfig
- type LokiConfig
- type NetworkConfig
- type PyroscopeConfig
- type WaspAutoBuildConfig
Constants ¶
const (
Base64NetworkConfigEnvVarName = "BASE64_NETWORK_CONFIG"
)
Variables ¶
This section is empty.
Functions ¶
func BytesToAnyTomlStruct ¶
func BytesToAnyTomlStruct(logger zerolog.Logger, filename, configurationName string, target any, content []byte) error
BytesToAnyTomlStruct unmarshals the given bytes into the given target struct, apart from unmarshalling the root it also looks for given configuration name and unmarshals it into the target struct overwriting the root. Target needs to be a struct with exported fields with `toml:"field_name"` tags.
func MightConfigOverridePyroscopeKey ¶
func MightConfigOverridePyroscopeKey(config *PyroscopeConfig, target interface{})
MightConfigOverridePyroscope will override the pyroscope config in property maps from the passed config. If the config is nil, or the enabled flag is not set, or the key is not set, then this function will do nothing.
func MustConfigOverrideChainlinkVersion ¶
func MustConfigOverrideChainlinkVersion(config *ChainlinkImageConfig, target interface{})
MustConfigOverrideChainlinkVersion will override the chainlink image and version in property maps from the passed config. It will panic if the config is nil.
Types ¶
type ChainlinkImageConfig ¶
func (*ChainlinkImageConfig) Validate ¶
func (c *ChainlinkImageConfig) Validate() error
Validate checks that the chainlink image config is valid, which means that both image and version are set and non-empty
type ForkConfig ¶
type ForkConfig struct { URL string `toml:"url"` // URL is the URL of the node to fork from. Refer to https://book.getfoundry.sh/reference/anvil/#options BlockNumber int64 `toml:"block_number"` // BlockNumber is the block number to fork from. Refer to https://book.getfoundry.sh/reference/anvil/#options BlockTime int64 `toml:"block_time"` // how frequent blocks are mined. By default, it automatically generates a new block as soon as a transaction is submitted. Refer to https://book.getfoundry.sh/reference/anvil/#options Retries int `toml:"retries,omitempty"` // Number of retry requests for spurious networks (timed out requests). Refer to https://book.getfoundry.sh/reference/anvil/#options Timeout int64 `toml:"timeout,omitempty"` // Timeout in ms for requests sent to remote JSON-RPC server in forking mode. Refer to https://book.getfoundry.sh/reference/anvil/#options ComputePerSecond int64 `toml:"compute_per_second,omitempty"` // Sets the number of assumed available compute units per second for this provider. Refer to https://book.getfoundry.sh/reference/anvil/#options RateLimitEnabled bool `toml:"rate_limit_enabled,omitempty"` // rate limiting for this node’s provider. Refer to https://book.getfoundry.sh/reference/anvil/#options }
type GrafanaConfig ¶
type GrafanaConfig struct { BaseUrl *string `toml:"base_url"` DashboardUrl *string `toml:"dashboard_url"` BearerToken *string `toml:"bearer_token_secret"` }
func (*GrafanaConfig) Validate ¶
func (c *GrafanaConfig) Validate() error
Validate checks that the grafana config is valid, which means that base url is a valid URL and dashboard url and bearer token are not empty but that only applies if they are set
type LogStreamConfig ¶
type LogStreamConfig struct { LogTargets []string `toml:"log_targets"` LogProducerTimeout *blockchain.StrDuration `toml:"log_producer_timeout"` LogProducerRetryLimit *uint `toml:"log_producer_retry_limit"` }
func (*LogStreamConfig) Validate ¶
func (l *LogStreamConfig) Validate() error
Validate checks that the log stream config is valid, which means that log targets are valid and log producer timeout is greater than 0
type LoggingConfig ¶
type LoggingConfig struct { TestLogCollect *bool `toml:"test_log_collect"` RunId *string `toml:"run_id"` Loki *LokiConfig `toml:"Loki"` Grafana *GrafanaConfig `toml:"Grafana"` LogStream *LogStreamConfig `toml:"LogStream"` }
func (*LoggingConfig) Validate ¶
func (l *LoggingConfig) Validate() error
Validate executes config validation for LogStream, Grafana and Loki
type LokiConfig ¶
type LokiConfig struct { TenantId *string `toml:"tenant_id"` Endpoint *string `toml:"endpoint"` BasicAuth *string `toml:"basic_auth_secret"` BearerToken *string `toml:"bearer_token_secret"` }
func (*LokiConfig) Validate ¶
func (l *LokiConfig) Validate() error
Validate checks that the loki config is valid, which means that endpoint is a valid URL and tenant id is not empty
type NetworkConfig ¶
type NetworkConfig struct { SelectedNetworks []string `toml:"selected_networks"` // EVMNetworks is the configuration for the EVM networks, key is the network name as declared in selected_networks slice. // if not set, it will try to find the network from defined networks in MappedNetworks under known_networks.go EVMNetworks map[string]*blockchain.EVMNetwork `toml:"EVMNetworks,omitempty"` // ForkConfigs is the configuration for forking from a node, // key is the network name as declared in selected_networks slice ForkConfigs map[string]*ForkConfig `toml:"ForkConfigs,omitempty"` // RpcHttpUrls is the RPC HTTP endpoints for each network, // key is the network name as declared in selected_networks slice RpcHttpUrls map[string][]string `toml:"RpcHttpUrls"` // RpcWsUrls is the RPC WS endpoints for each network, // key is the network name as declared in selected_networks slice RpcWsUrls map[string][]string `toml:"RpcWsUrls"` // WalletKeys is the private keys for the funding wallets for each network, // key is the network name as declared in selected_networks slice WalletKeys map[string][]string `toml:"WalletKeys"` }
NetworkConfig is the configuration for the networks to be used
func (*NetworkConfig) Default ¶
func (n *NetworkConfig) Default() error
Default applies default values to the network config after reading it from BASE64_NETWORK_CONFIG env var. It will only fill in the gaps, not override meaning that if you provided WS RPC endpoint in your network config, but not the HTTP one, then only HTTP will be taken from default config (provided it's there)
func (*NetworkConfig) OverrideURLsAndKeysFromEVMNetwork ¶
func (n *NetworkConfig) OverrideURLsAndKeysFromEVMNetwork()
OverrideURLsAndKeysFromEVMNetwork applies the URLs and keys from the EVMNetworks to the NetworkConfig it overrides the URLs and Keys present in RpcHttpUrls, RpcWsUrls and WalletKeys in the NetworkConfig with the URLs and Keys provided in the EVMNetworks
func (*NetworkConfig) UpperCaseNetworkNames ¶
func (n *NetworkConfig) UpperCaseNetworkNames()
UpperCaseNetworkNames converts all network name keys for wallet keys, rpc endpoints maps and selected network slice to upper case
func (*NetworkConfig) Validate ¶
func (n *NetworkConfig) Validate() error
Validate checks if all required fields are set, meaning that there must be at least 1 selected network and unless it's a simulated network, there must be at least 1 rpc endpoint for HTTP and WS and 1 private key for funding wallet
type PyroscopeConfig ¶
type PyroscopeConfig struct { Enabled *bool `toml:"enabled"` ServerUrl *string `toml:"server_url"` Key *string `toml:"key_secret"` Environment *string `toml:"environment"` }
func (*PyroscopeConfig) Validate ¶
func (c *PyroscopeConfig) Validate() error
Validate checks that the pyroscope config is valid, which means that server url, environment and key are set and non-empty, but only if pyroscope is enabled
type WaspAutoBuildConfig ¶
type WaspAutoBuildConfig struct { Namespace *string `toml:"namespace"` RepoImageVersionURI *string `toml:"repo_image_version_uri"` TestBinaryName *string `toml:"test_binary_name"` TestName *string `toml:"test_name"` TestTimeout *string `toml:"test_timeout"` KeepJobs bool `toml:"keep_jobs"` WaspLogLevel *string `toml:"wasp_log_level"` WaspJobs *string `toml:"wasp_jobs"` UpdateImage bool `toml:"update_image"` }
func (*WaspAutoBuildConfig) Validate ¶
func (c *WaspAutoBuildConfig) Validate() error