Documentation
¶
Overview ¶
Package presenters allow for the specification and result of a Job, its associated TaskSpecs, and every JobRun and TaskRun to be returned in a user friendly human readable format.
Index ¶
- Variables
- func FriendlyBigInt(n *big.Int) string
- func ValidateDBURL(dbURI url.URL) error
- type BasicConfig
- type ChainType
- type ConfigPrinter
- type DatabaseBackupMode
- type EnvPrinter
- type FeatureFlags
- type GeneralConfig
- type GlobalConfig
- type LogFn
- type OCR1Config
- type OCR2Config
- type P2PDeprecated
- type P2PNetworking
- type P2PV1Networking
- type P2PV2Networking
Constants ¶
This section is empty.
Variables ¶
var ( ErrEnvUnset = errors.New("env var unset") ErrEnvInvalid = errors.New("env var invalid") )
nolint
var DatabaseBackupModeEnvVar = envvar.New("DatabaseBackupMode", parseDatabaseBackupMode)
var ErrInvalidChainType = fmt.Errorf("must be one of %s or omitted", strings.Join([]string{ string(ChainArbitrum), string(ChainMetis), string(ChainOptimism), string(ChainXDai), string(ChainOptimismBedrock), }, ", "))
Functions ¶
func FriendlyBigInt ¶
FriendlyBigInt returns a string printing the integer in both decimal and hexadecimal formats.
func ValidateDBURL ¶
Types ¶
type BasicConfig ¶
type BasicConfig interface {
Validate() error
LogConfiguration(log LogFn)
SetLogLevel(lvl zapcore.Level) error
SetLogSQL(logSQL bool)
SetPasswords(keystore, vrf *string)
FeatureFlags
audit.Config
AdvisoryLockCheckInterval() time.Duration
AdvisoryLockID() int64
AllowOrigins() string
AppID() uuid.UUID
AuthenticatedRateLimit() int64
AuthenticatedRateLimitPeriod() models.Duration
AutoPprofBlockProfileRate() int
AutoPprofCPUProfileRate() int
AutoPprofGatherDuration() models.Duration
AutoPprofGatherTraceDuration() models.Duration
AutoPprofGoroutineThreshold() int
AutoPprofMaxProfileSize() utils.FileSize
AutoPprofMemProfileRate() int
AutoPprofMemThreshold() utils.FileSize
AutoPprofMutexProfileFraction() int
AutoPprofPollInterval() models.Duration
AutoPprofProfileRoot() string
BlockBackfillDepth() uint64
BlockBackfillSkip() bool
BridgeResponseURL() *url.URL
BridgeCacheTTL() time.Duration
CertFile() string
DatabaseBackupDir() string
DatabaseBackupFrequency() time.Duration
DatabaseBackupMode() DatabaseBackupMode
DatabaseBackupOnVersionUpgrade() bool
DatabaseBackupURL() *url.URL
DatabaseDefaultIdleInTxSessionTimeout() time.Duration
DatabaseDefaultLockTimeout() time.Duration
DatabaseDefaultQueryTimeout() time.Duration
DatabaseListenerMaxReconnectDuration() time.Duration
DatabaseListenerMinReconnectInterval() time.Duration
DatabaseLockingMode() string
DatabaseURL() url.URL
DefaultChainID() *big.Int
DefaultHTTPLimit() int64
DefaultHTTPTimeout() models.Duration
DefaultLogLevel() zapcore.Level
Dev() bool
ShutdownGracePeriod() time.Duration
EthereumHTTPURL() *url.URL
EthereumNodes() string
EthereumSecondaryURLs() []url.URL
EthereumURL() string
ExplorerAccessKey() string
ExplorerSecret() string
ExplorerURL() *url.URL
FMDefaultTransactionQueueDepth() uint32
FMSimulateTransactions() bool
GetAdvisoryLockIDConfiguredOrDefault() int64
GetDatabaseDialectConfiguredOrDefault() dialects.DialectName
HTTPServerWriteTimeout() time.Duration
InsecureFastScrypt() bool
JSONConsole() bool
JobPipelineMaxRunDuration() time.Duration
JobPipelineMaxSuccessfulRuns() uint64
JobPipelineReaperInterval() time.Duration
JobPipelineReaperThreshold() time.Duration
JobPipelineResultWriteQueueDepth() uint64
KeeperDefaultTransactionQueueDepth() uint32
KeeperGasPriceBufferPercent() uint16
KeeperGasTipCapBufferPercent() uint16
KeeperBaseFeeBufferPercent() uint16
KeeperMaximumGracePeriod() int64
KeeperRegistryCheckGasOverhead() uint32
KeeperRegistryPerformGasOverhead() uint32
KeeperRegistryMaxPerformDataSize() uint32
KeeperRegistrySyncInterval() time.Duration
KeeperRegistrySyncUpkeepQueueSize() uint32
KeeperTurnLookBack() int64
KeyFile() string
KeystorePassword() string
LeaseLockDuration() time.Duration
LeaseLockRefreshInterval() time.Duration
LogFileDir() string
LogLevel() zapcore.Level
LogSQL() bool
LogFileMaxSize() utils.FileSize
LogFileMaxAge() int64
LogFileMaxBackups() int64
LogUnixTimestamps() bool
MercuryCredentials(url string) (username, password string, err error)
MigrateDatabase() bool
ORMMaxIdleConns() int
ORMMaxOpenConns() int
Port() uint16
PyroscopeAuthToken() string
PyroscopeServerAddress() string
PyroscopeEnvironment() string
RPID() string
RPOrigin() string
ReaperExpiration() models.Duration
RootDir() string
SecureCookies() bool
SentryDSN() string
SentryDebug() bool
SentryEnvironment() string
SentryRelease() string
SessionOptions() sessions.Options
SessionTimeout() models.Duration
SolanaNodes() string
StarkNetNodes() string
TLSCertPath() string
TLSDir() string
TLSHost() string
TLSKeyPath() string
TLSPort() uint16
TLSRedirect() bool
TelemetryIngressLogging() bool
TelemetryIngressUniConn() bool
TelemetryIngressServerPubKey() string
TelemetryIngressURL() *url.URL
TelemetryIngressBufferSize() uint
TelemetryIngressMaxBatchSize() uint
TelemetryIngressSendInterval() time.Duration
TelemetryIngressSendTimeout() time.Duration
TelemetryIngressUseBatchSend() bool
TriggerFallbackDBPollInterval() time.Duration
UnAuthenticatedRateLimit() int64
UnAuthenticatedRateLimitPeriod() models.Duration
VRFPassword() string
OCR1Config
OCR2Config
P2PNetworking
P2PV1Networking
P2PV2Networking
}
type ChainType ¶
type ChainType string
ChainType denotes the chain or network to work with
const ( ChainArbitrum ChainType = "arbitrum" ChainMetis ChainType = "metis" ChainOptimism ChainType = "optimism" ChainOptimismBedrock ChainType = "optimismBedrock" ChainXDai ChainType = "xdai" )
nolint
type ConfigPrinter ¶
type ConfigPrinter struct {
EnvPrinter
}
ConfigPrinter are the non-secret values of the node
If you add an entry here, you should update NewConfigPrinter and ConfigPrinter#String accordingly.
func NewConfigPrinter ¶
func NewConfigPrinter(cfg GeneralConfig) ConfigPrinter
NewConfigPrinter creates an instance of ConfigPrinter
func (ConfigPrinter) GetID ¶
func (c ConfigPrinter) GetID() string
GetID generates a new ID for jsonapi serialization.
func (*ConfigPrinter) SetID ¶
func (c *ConfigPrinter) SetID(value string) error
SetID is used to conform to the UnmarshallIdentifier interface for deserializing from jsonapi documents.
func (ConfigPrinter) String ¶
func (c ConfigPrinter) String() string
String returns the values as a newline delimited string
type DatabaseBackupMode ¶
type DatabaseBackupMode string
var ( DatabaseBackupModeNone DatabaseBackupMode = "none" DatabaseBackupModeLite DatabaseBackupMode = "lite" DatabaseBackupModeFull DatabaseBackupMode = "full" )
type EnvPrinter ¶
type EnvPrinter struct {
AdvisoryLockCheckInterval time.Duration `json:"ADVISORY_LOCK_CHECK_INTERVAL"`
AdvisoryLockID int64 `json:"ADVISORY_LOCK_ID"`
AllowOrigins string `json:"ALLOW_ORIGINS"`
BlockBackfillDepth uint64 `json:"BLOCK_BACKFILL_DEPTH"`
BlockHistoryEstimatorBlockDelay uint16 `json:"GAS_UPDATER_BLOCK_DELAY"`
BlockHistoryEstimatorBlockHistorySize uint16 `json:"GAS_UPDATER_BLOCK_HISTORY_SIZE"`
BlockHistoryEstimatorTransactionPercentile uint16 `json:"GAS_UPDATER_TRANSACTION_PERCENTILE"`
BridgeResponseURL string `json:"BRIDGE_RESPONSE_URL,omitempty"`
BridgeCacheTTL time.Duration `json:"BRIDGE_CACHE_TTL"`
ChainType string `json:"CHAIN_TYPE"`
DatabaseBackupFrequency time.Duration `json:"DATABASE_BACKUP_FREQUENCY"`
DatabaseBackupMode string `json:"DATABASE_BACKUP_MODE"`
DatabaseBackupOnVersionUpgrade bool `json:"DATABASE_BACKUP_ON_VERSION_UPGRADE"`
DatabaseLockingMode string `json:"DATABASE_LOCKING_MODE"`
DefaultChainID string `json:"ETH_CHAIN_ID"`
DefaultHTTPLimit int64 `json:"DEFAULT_HTTP_LIMIT"`
DefaultHTTPTimeout models.Duration `json:"DEFAULT_HTTP_TIMEOUT"`
Dev bool `json:"CHAINLINK_DEV"`
ShutdownGracePeriod time.Duration `json:"SHUTDOWN_GRACE_PERIOD"`
EVMRPCEnabled bool `json:"EVM_RPC_ENABLED"`
EthereumHTTPURL string `json:"ETH_HTTP_URL"`
EthereumSecondaryURLs []string `json:"ETH_SECONDARY_URLS"`
EthereumURL string `json:"ETH_URL"`
ExplorerURL string `json:"EXPLORER_URL"`
FMDefaultTransactionQueueDepth uint32 `json:"FM_DEFAULT_TRANSACTION_QUEUE_DEPTH"`
FeatureExternalInitiators bool `json:"FEATURE_EXTERNAL_INITIATORS"`
FeatureOffchainReporting bool `json:"FEATURE_OFFCHAIN_REPORTING"`
GasEstimatorMode string `json:"GAS_ESTIMATOR_MODE"`
InsecureFastScrypt bool `json:"INSECURE_FAST_SCRYPT"`
JSONConsole bool `json:"JSON_CONSOLE"`
JobPipelineReaperInterval time.Duration `json:"JOB_PIPELINE_REAPER_INTERVAL"`
JobPipelineReaperThreshold time.Duration `json:"JOB_PIPELINE_REAPER_THRESHOLD"`
KeeperDefaultTransactionQueueDepth uint32 `json:"KEEPER_DEFAULT_TRANSACTION_QUEUE_DEPTH"`
KeeperGasPriceBufferPercent uint16 `json:"KEEPER_GAS_PRICE_BUFFER_PERCENT"`
KeeperGasTipCapBufferPercent uint16 `json:"KEEPER_GAS_TIP_CAP_BUFFER_PERCENT"`
KeeperBaseFeeBufferPercent uint16 `json:"KEEPER_BASE_FEE_BUFFER_PERCENT"`
KeeperMaximumGracePeriod int64 `json:"KEEPER_MAXIMUM_GRACE_PERIOD"`
KeeperRegistryCheckGasOverhead uint32 `json:"KEEPER_REGISTRY_CHECK_GAS_OVERHEAD"`
KeeperRegistryPerformGasOverhead uint32 `json:"KEEPER_REGISTRY_PERFORM_GAS_OVERHEAD"`
KeeperRegistryMaxPerformDataSize uint32 `json:"KEEPER_REGISTRY_MAX_PERFORM_DATA_SIZE"`
KeeperRegistrySyncInterval time.Duration `json:"KEEPER_REGISTRY_SYNC_INTERVAL"`
KeeperRegistrySyncUpkeepQueueSize uint32 `json:"KEEPER_REGISTRY_SYNC_UPKEEP_QUEUE_SIZE"`
KeeperTurnLookBack int64 `json:"KEEPER_TURN_LOOK_BACK"`
LeaseLockDuration time.Duration `json:"LEASE_LOCK_DURATION"`
LeaseLockRefreshInterval time.Duration `json:"LEASE_LOCK_REFRESH_INTERVAL"`
FlagsContractAddress string `json:"FLAGS_CONTRACT_ADDRESS"`
LinkContractAddress string `json:"LINK_CONTRACT_ADDRESS"`
LogFileDir string `json:"LOG_FILE_DIR"`
LogLevel zapcore.Level `json:"LOG_LEVEL"`
LogSQL bool `json:"LOG_SQL"`
LogFileMaxSize utils.FileSize `json:"LOG_FILE_MAX_SIZE"`
LogFileMaxAge int64 `json:"LOG_FILE_MAX_AGE"`
LogFileMaxBackups int64 `json:"LOG_FILE_MAX_BACKUPS"`
TriggerFallbackDBPollInterval time.Duration `json:"JOB_PIPELINE_DB_POLL_INTERVAL"`
// AuditLogger
AuditLoggerEnabled bool `json:"AUDIT_LOGGER_ENABLED"`
AuditLoggerForwardToUrl string `json:"AUDIT_LOGGER_FORWARD_TO_URL"`
AuditLoggerJsonWrapperKey string `json:"AUDIT_LOGGER_JSON_WRAPPER_KEY"`
AuditLoggerHeaders string `json:"AUDIT_LOGGER_HEADERS"`
// OCR1
OCRContractTransmitterTransmitTimeout time.Duration `json:"OCR_CONTRACT_TRANSMITTER_TRANSMIT_TIMEOUT"`
OCRDatabaseTimeout time.Duration `json:"OCR_DATABASE_TIMEOUT"`
OCRDefaultTransactionQueueDepth uint32 `json:"OCR_DEFAULT_TRANSACTION_QUEUE_DEPTH"`
OCRTraceLogging bool `json:"OCR_TRACE_LOGGING"`
// P2P General
P2PNetworkingStack string `json:"P2P_NETWORKING_STACK"`
P2PPeerID string `json:"P2P_PEER_ID"`
P2PIncomingMessageBufferSize int `json:"P2P_INCOMING_MESSAGE_BUFFER_SIZE"`
P2POutgoingMessageBufferSize int `json:"P2P_OUTGOING_MESSAGE_BUFFER_SIZE"`
// P2P V1
P2PBootstrapPeers []string `json:"P2P_BOOTSTRAP_PEERS"`
P2PListenIP string `json:"P2P_LISTEN_IP"`
P2PListenPort string `json:"P2P_LISTEN_PORT"`
P2PNewStreamTimeout time.Duration `json:"P2P_NEW_STREAM_TIMEOUT"`
P2PDHTLookupInterval int `json:"P2P_DHT_LOOKUP_INTERVAL"`
P2PBootstrapCheckInterval time.Duration `json:"P2P_BOOTSTRAP_CHECK_INTERVAL"`
// P2P V2
P2PV2AnnounceAddresses []string `json:"P2PV2_ANNOUNCE_ADDRESSES"`
P2PV2Bootstrappers []string `json:"P2PV2_BOOTSTRAPPERS"`
P2PV2DeltaDial models.Duration `json:"P2PV2_DELTA_DIAL"`
P2PV2DeltaReconcile models.Duration `json:"P2PV2_DELTA_RECONCILE"`
P2PV2ListenAddresses []string `json:"P2PV2_LISTEN_ADDRESSES"`
Port uint16 `json:"CHAINLINK_PORT"`
ReaperExpiration models.Duration `json:"REAPER_EXPIRATION"`
RootDir string `json:"ROOT"`
SecureCookies bool `json:"SECURE_COOKIES"`
SessionTimeout models.Duration `json:"SESSION_TIMEOUT"`
TelemetryIngressLogging bool `json:"TELEMETRY_INGRESS_LOGGING"`
TelemetryIngressServerPubKey string `json:"TELEMETRY_INGRESS_SERVER_PUB_KEY"`
TelemetryIngressURL string `json:"TELEMETRY_INGRESS_URL"`
TLSHost string `json:"CHAINLINK_TLS_HOST"`
TLSPort uint16 `json:"CHAINLINK_TLS_PORT"`
TLSRedirect bool `json:"CHAINLINK_TLS_REDIRECT"`
}
EnvPrinter contains the supported environment variables
type FeatureFlags ¶
type FeatureFlags interface {
FeatureExternalInitiators() bool
FeatureFeedsManager() bool
FeatureOffchainReporting() bool
FeatureOffchainReporting2() bool
FeatureUICSAKeys() bool
FeatureLogPoller() bool
AutoPprofEnabled() bool
EVMEnabled() bool
EVMRPCEnabled() bool
P2PEnabled() bool
SolanaEnabled() bool
StarkNetEnabled() bool
}
FeatureFlags contains bools that toggle various features or chains TODO: document the new ones
type GeneralConfig ¶
type GeneralConfig interface {
BasicConfig
GlobalConfig
}
func NewGeneralConfig ¶
func NewGeneralConfig(lggr logger.Logger) GeneralConfig
NewGeneralConfig returns the config with the environment variables set to their respective fields, or their defaults if environment variables are not set. https://app.shortcut.com/chainlinklabs/story/33622/remove-legacy-config
type GlobalConfig ¶
type GlobalConfig interface {
GlobalBalanceMonitorEnabled() (bool, bool)
GlobalBlockEmissionIdleWarningThreshold() (time.Duration, bool)
GlobalBlockHistoryEstimatorBatchSize() (uint32, bool)
GlobalBlockHistoryEstimatorBlockDelay() (uint16, bool)
GlobalBlockHistoryEstimatorBlockHistorySize() (uint16, bool)
GlobalBlockHistoryEstimatorEIP1559FeeCapBufferBlocks() (uint16, bool)
GlobalBlockHistoryEstimatorCheckInclusionBlocks() (uint16, bool)
GlobalBlockHistoryEstimatorCheckInclusionPercentile() (uint16, bool)
GlobalBlockHistoryEstimatorTransactionPercentile() (uint16, bool)
GlobalChainType() (string, bool)
GlobalEthTxReaperInterval() (time.Duration, bool)
GlobalEthTxReaperThreshold() (time.Duration, bool)
GlobalEthTxResendAfterThreshold() (time.Duration, bool)
GlobalEvmEIP1559DynamicFees() (bool, bool)
GlobalEvmFinalityDepth() (uint32, bool)
GlobalEvmGasBumpPercent() (uint16, bool)
GlobalEvmGasBumpThreshold() (uint64, bool)
GlobalEvmGasBumpTxDepth() (uint16, bool)
GlobalEvmGasBumpWei() (*assets.Wei, bool)
GlobalEvmGasFeeCapDefault() (*assets.Wei, bool)
GlobalEvmGasLimitDefault() (uint32, bool)
GlobalEvmGasLimitMax() (uint32, bool)
GlobalEvmGasLimitMultiplier() (float32, bool)
GlobalEvmGasLimitTransfer() (uint32, bool)
GlobalEvmGasLimitOCRJobType() (uint32, bool)
GlobalEvmGasLimitDRJobType() (uint32, bool)
GlobalEvmGasLimitVRFJobType() (uint32, bool)
GlobalEvmGasLimitFMJobType() (uint32, bool)
GlobalEvmGasLimitKeeperJobType() (uint32, bool)
GlobalEvmGasPriceDefault() (*assets.Wei, bool)
GlobalEvmGasTipCapDefault() (*assets.Wei, bool)
GlobalEvmGasTipCapMinimum() (*assets.Wei, bool)
GlobalEvmHeadTrackerHistoryDepth() (uint32, bool)
GlobalEvmHeadTrackerMaxBufferSize() (uint32, bool)
GlobalEvmHeadTrackerSamplingInterval() (time.Duration, bool)
GlobalEvmLogBackfillBatchSize() (uint32, bool)
GlobalEvmLogPollInterval() (time.Duration, bool)
GlobalEvmLogKeepBlocksDepth() (uint32, bool)
GlobalEvmMaxGasPriceWei() (*assets.Wei, bool)
GlobalEvmMaxInFlightTransactions() (uint32, bool)
GlobalEvmMaxQueuedTransactions() (uint64, bool)
GlobalEvmMinGasPriceWei() (*assets.Wei, bool)
GlobalEvmNonceAutoSync() (bool, bool)
GlobalEvmUseForwarders() (bool, bool)
GlobalEvmRPCDefaultBatchSize() (uint32, bool)
GlobalFlagsContractAddress() (string, bool)
GlobalGasEstimatorMode() (string, bool)
GlobalLinkContractAddress() (string, bool)
GlobalOCRContractConfirmations() (uint16, bool)
GlobalOCRContractTransmitterTransmitTimeout() (time.Duration, bool)
GlobalOCRDatabaseTimeout() (time.Duration, bool)
GlobalOCRObservationGracePeriod() (time.Duration, bool)
GlobalOCR2AutomationGasLimit() (uint32, bool)
GlobalOperatorFactoryAddress() (string, bool)
GlobalMinIncomingConfirmations() (uint32, bool)
GlobalMinimumContractPayment() (*assets.Link, bool)
GlobalNodeNoNewHeadsThreshold() (time.Duration, bool)
GlobalNodePollFailureThreshold() (uint32, bool)
GlobalNodePollInterval() (time.Duration, bool)
GlobalNodeSelectionMode() (string, bool)
GlobalNodeSyncThreshold() (uint32, bool)
}
GlobalConfig holds global ENV overrides for EVM chains If set the global ENV will override everything The second bool indicates if it is set or not
type OCR1Config ¶
type OCR1Config interface {
// OCR1 config, can override in jobs, only ethereum.
OCRBlockchainTimeout() time.Duration
OCRContractPollInterval() time.Duration
OCRContractSubscribeInterval() time.Duration
OCRKeyBundleID() (string, error)
OCRObservationTimeout() time.Duration
OCRSimulateTransactions() bool
OCRTransmitterAddress() (ethkey.EIP55Address, error) // OCR2 can support non-evm changes
// OCR1 config, cannot override in jobs
OCRTraceLogging() bool
OCRDefaultTransactionQueueDepth() uint32
}
OCR1Config is a subset of global config relevant to OCR v1.
type OCR2Config ¶
type OCR2Config interface {
// OCR2 config, can override in jobs, all chains
OCR2ContractConfirmations() uint16
OCR2ContractTransmitterTransmitTimeout() time.Duration
OCR2BlockchainTimeout() time.Duration
OCR2DatabaseTimeout() time.Duration
OCR2ContractPollInterval() time.Duration
OCR2ContractSubscribeInterval() time.Duration
OCR2KeyBundleID() (string, error)
// OCR2 config, cannot override in jobs
OCR2TraceLogging() bool
}
OCR2Config is a subset of global config relevant to OCR v2.
type P2PDeprecated ¶
type P2PDeprecated interface {
// contains filtered or unexported methods
}
type P2PNetworking ¶
type P2PNetworking interface {
P2PNetworkingStack() (n ocrnetworking.NetworkingStack)
P2PNetworkingStackRaw() string
P2PPeerID() p2pkey.PeerID
P2PPeerIDRaw() string
P2PIncomingMessageBufferSize() int
P2POutgoingMessageBufferSize() int
}
P2PNetworking is a subset of global config relevant to p2p networking.
type P2PV1Networking ¶
type P2PV1Networking interface {
P2PAnnounceIP() net.IP
P2PAnnouncePort() uint16
P2PBootstrapPeers() ([]string, error)
P2PDHTAnnouncementCounterUserPrefix() uint32
P2PListenIP() net.IP
P2PListenPort() uint16
P2PListenPortRaw() string
P2PNewStreamTimeout() time.Duration
P2PBootstrapCheckInterval() time.Duration
P2PDHTLookupInterval() int
P2PPeerstoreWriteInterval() time.Duration
}
P2PV1Networking is a subset of global config relevant to p2p v1 networking.
type P2PV2Networking ¶
type P2PV2Networking interface {
P2PV2AnnounceAddresses() []string
P2PV2Bootstrappers() (locators []ocrcommontypes.BootstrapperLocator)
P2PV2BootstrappersRaw() []string
P2PV2DeltaDial() models.Duration
P2PV2DeltaReconcile() models.Duration
P2PV2ListenAddresses() []string
}
P2PV2Networking is a subset of global config relevant to p2p v2 networking.