Documentation ¶
Index ¶
- Constants
- Variables
- func NewFunctionsHandler(cfg FunctionsHandlerConfig, donConfig *config.DONConfig, don handlers.DON, ...) handlers.Handler
- func NewFunctionsHandlerFromConfig(handlerConfig json.RawMessage, donConfig *config.DONConfig, don handlers.DON, ...) (handlers.Handler, error)
- type CombinedResponse
- type FunctionsHandlerConfig
- type OnchainAllowlist
- type OnchainAllowlistConfig
- type OnchainSubscriptions
- type OnchainSubscriptionsConfig
- type PendingRequest
- type ResponseBase
- type SecretsListResponse
- type SecretsListRow
- type SecretsSetRequest
- type SecretsSetResponse
- type UserSubscriptions
Constants ¶
View Source
const ( MethodSecretsSet = "secrets_set" MethodSecretsList = "secrets_list" MethodHeartbeat = "heartbeat" )
Variables ¶
Functions ¶
func NewFunctionsHandler ¶
func NewFunctionsHandler( cfg FunctionsHandlerConfig, donConfig *config.DONConfig, don handlers.DON, pendingRequestsCache hc.RequestCache[PendingRequest], allowlist OnchainAllowlist, subscriptions OnchainSubscriptions, minimumBalance *assets.Link, userRateLimiter *hc.RateLimiter, nodeRateLimiter *hc.RateLimiter, allowedHeartbeatInitiators map[string]struct{}, lggr logger.Logger) handlers.Handler
func NewFunctionsHandlerFromConfig ¶ added in v2.4.0
Types ¶
type CombinedResponse ¶ added in v2.8.0
type CombinedResponse struct { ResponseBase NodeResponses []*api.Message `json:"node_responses"` }
Gateway -> User response, which combines responses from several nodes
type FunctionsHandlerConfig ¶
type FunctionsHandlerConfig struct { ChainID string `json:"chainId"` // Not specifying OnchainAllowlist config disables allowlist checks OnchainAllowlist *OnchainAllowlistConfig `json:"onchainAllowlist"` // Not specifying OnchainSubscriptions config disables minimum balance checks OnchainSubscriptions *OnchainSubscriptionsConfig `json:"onchainSubscriptions"` MinimumSubscriptionBalance *assets.Link `json:"minimumSubscriptionBalance"` // Not specifying RateLimiter config disables rate limiting UserRateLimiter *hc.RateLimiterConfig `json:"userRateLimiter"` NodeRateLimiter *hc.RateLimiterConfig `json:"nodeRateLimiter"` MaxPendingRequests uint32 `json:"maxPendingRequests"` RequestTimeoutMillis int64 `json:"requestTimeoutMillis"` AllowedHeartbeatInitiators []string `json:"allowedHeartbeatInitiators"` }
type OnchainAllowlist ¶
type OnchainAllowlist interface { job.ServiceCtx Allow(common.Address) bool UpdateFromContract(ctx context.Context) error }
OnchainAllowlist maintains an allowlist of addresses fetched from the blockchain (EVM-only). Use UpdateFromContract() for a one-time update or set OnchainAllowlistConfig.UpdateFrequencySec for repeated updates. All methods are thread-safe.
func NewOnchainAllowlist ¶
func NewOnchainAllowlist(client evmclient.Client, config OnchainAllowlistConfig, lggr logger.Logger) (OnchainAllowlist, error)
type OnchainAllowlistConfig ¶ added in v2.4.0
type OnchainAllowlistConfig struct { // ContractAddress is required ContractAddress common.Address `json:"contractAddress"` ContractVersion uint32 `json:"contractVersion"` BlockConfirmations uint `json:"blockConfirmations"` // UpdateFrequencySec can be zero to disable periodic updates UpdateFrequencySec uint `json:"updateFrequencySec"` UpdateTimeoutSec uint `json:"updateTimeoutSec"` }
type OnchainSubscriptions ¶ added in v2.6.0
type OnchainSubscriptions interface { job.ServiceCtx // GetMaxUserBalance returns a maximum subscription balance (juels), or error if user has no subscriptions. GetMaxUserBalance(common.Address) (*big.Int, error) }
OnchainSubscriptions maintains a mirror of all subscriptions fetched from the blockchain (EVM-only). All methods are thread-safe.
func NewOnchainSubscriptions ¶ added in v2.6.0
func NewOnchainSubscriptions(client evmclient.Client, config OnchainSubscriptionsConfig, lggr logger.Logger) (OnchainSubscriptions, error)
type OnchainSubscriptionsConfig ¶ added in v2.6.0
type PendingRequest ¶ added in v2.8.0
type PendingRequest struct {
// contains filtered or unexported fields
}
type ResponseBase ¶ added in v2.8.0
type SecretsListResponse ¶ added in v2.4.0
type SecretsListResponse struct { ResponseBase Rows []SecretsListRow `json:"rows,omitempty"` }
type SecretsListRow ¶ added in v2.4.0
type SecretsSetRequest ¶ added in v2.4.0
type SecretsSetResponse ¶ added in v2.4.0
type SecretsSetResponse struct {
ResponseBase
}
type UserSubscriptions ¶ added in v2.6.0
type UserSubscriptions interface { UpdateSubscription(subscriptionId uint64, subscription *functions_router.IFunctionsSubscriptionsSubscription) GetMaxUserBalance(user common.Address) (*big.Int, error) }
func NewUserSubscriptions ¶ added in v2.6.0
func NewUserSubscriptions() UserSubscriptions
Source Files ¶
Click to show internal directories.
Click to hide internal directories.