Documentation ¶
Overview ¶
Package config contains the config for different kinds of agents
Index ¶
Constants ¶
This section is empty.
Variables ¶
var AllSignerTypes []SignerType
AllSignerTypes is a list of all contract types. Since we use stringer and this is a testing library, instead of manually copying all these out we pull the names out of stringer. In order to make sure stringer is updated, we panic on any method called where the index is higher than the stringer array length.
var ErrInvalidChainType error
ErrInvalidChainType indicates chain type was invalid.
var ErrInvalidDomainID = errors.New("domain ID invalid")
ErrInvalidDomainID indicates domain id is invalid.
var ErrRequiredField = errors.New("field is required")
ErrRequiredField indicates a required field was left blank.
var ErrUnsupportedSignerType = errors.New("unsupported signer type")
ErrUnsupportedSignerType indicates the signer type being used is unsupported.
Functions ¶
func SignerFromConfig ¶
SignerFromConfig creates a new signer from a signer config. TODO: this needs to be moved to some kind of common package. in the old code configs were split into responsible packages. Maybe something like that works here?
Types ¶
type AWSConfig ¶ added in v0.0.102
type AWSConfig struct { // Region is the region the signer is in. Region string `yaml:"region"` // AccessKey is the access key for the signer. AccessKey string `yaml:"access_key"` // AccessSecret is the access secret for the signer. AccessSecret string `yaml:"access_secret"` // KeyID is the key id for the signer. KeyID string `yaml:"key_id"` }
AWSConfig is the config for an AWS signer. this should match the schema of the file passed in.
func DecodeAWSConfig ¶ added in v0.0.102
DecodeAWSConfig decodes the config from a file.
type AgentConfig ¶ added in v0.0.130
type AgentConfig struct { // Domains stores all the domains Domains DomainConfigs `yaml:"domains"` // DomainID is the domain of the chain that this agent is assigned to. // For Guards, it is 0 meaning all domains. // For Notaries, it will be a specific domain greater than 0. DomainID uint32 `yaml:"domain_id"` // SummitDomainID is the domain of the chain that has the Summit contract (ie SYN chain). SummitDomainID uint32 `yaml:"summit_domain_id"` // UnbondedSigner contains the unbonded signer config for agents // (this is signer used to submit transactions) UnbondedSigner SignerConfig `yaml:"unbonded_signer"` // BondedSigner contains the bonded signer config for agents BondedSigner SignerConfig `yaml:"bonded_signer"` // RefreshIntervalSeconds is the refresh interval in seconds RefreshIntervalSeconds uint32 `yaml:"refresh_interval_seconds,omitempty"` // ScribePort is the scribe port ScribePort uint32 `yaml:"scribe_port,omitempty"` // ScribePUrl is the scribe port ScribeURL string `yaml:"scribe_url,omitempty"` // EmbeddedScribeConfig is the config for the embedded scribe. This only needs to be // included if an embedded Scribe is being used. If a remote Scribe is being used, // this can be left empty. EmbeddedScribeConfig scribeConfig.Config `yaml:"embedded_scribe_config"` }
AgentConfig is used for configuring the guard.
func DecodeAgentConfig ¶ added in v0.0.130
func DecodeAgentConfig(filePath string) (a AgentConfig, err error)
DecodeAgentConfig parses in a config from a file.
func (AgentConfig) Encode ¶ added in v0.0.130
func (a AgentConfig) Encode() ([]byte, error)
Encode gets the encoded config.yaml file.
func (*AgentConfig) IsValid ¶ added in v0.0.130
func (a *AgentConfig) IsValid(ctx context.Context) (ok bool, err error)
IsValid makes sure the config is valid. This is done by calling IsValid() on each submodule. If any method returns an error that is returned here and the entirety of IsValid returns false. Any warnings are logged by the submodules respective loggers.
type Config ¶
type Config struct { // Domains stores all domains Domains DomainConfigs `yaml:"domains"` // Signer contains the signer config for agents Signer SignerConfig `yaml:"signer"` // DbConfig is the database config Database DBConfig `yaml:"database"` }
Config is used for configuring the application. It stores the configurations defined in each module.
type DBConfig ¶
type DBConfig struct { // Type of the database to use for sql. This does not affect hte pebble db Type string `yaml:"type"` // DBPath is the db path used for the pebble db DBPath string `yaml:"db_path"` // ConnString is the connection string used for mysql ConnString string `yaml:"conn_string"` }
DBConfig is used for configuring the.
type DomainConfig ¶
type DomainConfig struct { // DomainID is the domain of the chain DomainID uint32 `yaml:"domain_id"` // Type of the chain (e.g. evm) Type string `yaml:"type"` // RequiredConfirmations is the number of confirmations to way RequiredConfirmations uint32 `yaml:"required_confirmations"` // OriginAddress gets origin contract address OriginAddress string `yaml:"origin_address"` // SummitAddress contains the summit address (if present) SummitAddress string `yaml:"summit_address"` // DestinationAddress gets destination contract address DestinationAddress string `yaml:"destination_address"` // RPCUrl to use for the chain RPCUrl string `yaml:"rpc_url"` // Minimum start height StartHeight uint32 `yaml:"start_height"` }
DomainConfig defines the config for a specific domain.
type DomainConfigs ¶
type DomainConfigs map[string]DomainConfig
DomainConfigs contains a map of name->domain config.
type GCPConfig ¶ added in v0.0.102
type GCPConfig struct { // KeyName is the name of the key to use. KeyName string `yaml:"key_name"` // CredentialFile is the path to the credentials file. // note: this is not recommended for production use. // workload identity federation is recommended. CredentialFile string `yaml:"credential_file"` // Endpoint is the endpoint to use. This is useful for testing. Endpoint string `yaml:"endpoint"` }
GCPConfig is the config for a GCP signer.
func DecodeGCPConfig ¶ added in v0.0.102
DecodeGCPConfig decodes the config from a file.
type SignerConfig ¶
type SignerConfig struct { // Type is the driver used for the signer Type string // File is the file used for the key. File string }
SignerConfig contains a signer config. Currently this config only supports local based signers due to a lack of isomorphic types when we parse yaml.
type SignerType ¶
type SignerType int
SignerType is the signer type
const ( // FileType is a file-based signer. FileType SignerType = iota + 1 // File // AWSType is an aws kms based signer. AWSType // AWS // GCPType is a gcp cloud based signer. GCPType // GCP )
func (SignerType) String ¶
func (i SignerType) String() string