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 ¶ added in v1.23.0
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 ¶ added in v1.23.0
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 ¶ added in v1.23.0
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 ¶ added in v1.23.0
type ChainlinkImageConfig struct { Image *string `toml:"image"` Version *string `toml:"version"` PostgresVersion *string `toml:"postgres_version,omitempty"` }
func (*ChainlinkImageConfig) Validate ¶ added in v1.23.0
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 ¶ added in v1.24.0
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 ¶ added in v1.23.0
type GrafanaConfig struct { BaseUrl *string `toml:"base_url"` DashboardUrl *string `toml:"dashboard_url"` BearerToken *string `toml:"bearer_token_secret"` }
func (*GrafanaConfig) Validate ¶ added in v1.23.0
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 ¶ added in v1.23.0
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 ¶ added in v1.23.0
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 ¶ added in v1.23.0
func (l *LoggingConfig) Validate() error
Validate executes config validation for LogStream, Grafana and Loki
type LokiConfig ¶ added in v1.23.0
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 ¶ added in v1.23.0
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 ¶ added in v1.23.0
type NetworkConfig struct { SelectedNetworks []string `toml:"selected_networks,omitempty"` // 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,omitempty"` // 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,omitempty"` // 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,omitempty"` }
NetworkConfig is the configuration for the networks to be used
func (*NetworkConfig) Default ¶ added in v1.23.0
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 ¶ added in v1.24.0
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 ¶ added in v1.23.0
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 ¶ added in v1.23.0
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 ¶ added in v1.23.0
type PyroscopeConfig struct { Enabled *bool `toml:"enabled"` ServerUrl *string `toml:"server_url"` Key *string `toml:"key_secret"` Environment *string `toml:"environment"` }
func (*PyroscopeConfig) Validate ¶ added in v1.23.0
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 ¶ added in v1.23.6
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 ¶ added in v1.23.6
func (c *WaspAutoBuildConfig) Validate() error