functions

package
v2.9.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 7, 2024 License: MIT Imports: 23 Imported by: 1

Documentation

Index

Constants

View Source
const (
	MethodSecretsSet  = "secrets_set"
	MethodSecretsList = "secrets_list"
	MethodHeartbeat   = "heartbeat"
)

Variables

View Source
var (
	ErrNotAllowlisted    = errors.New("sender not allowlisted")
	ErrRateLimited       = errors.New("rate-limited")
	ErrUnsupportedMethod = errors.New("unsupported method")
)

Functions

func NewFunctionsHandler

func NewFunctionsHandler(
	cfg FunctionsHandlerConfig,
	donConfig *config.DONConfig,
	don handlers.DON,
	pendingRequestsCache hc.RequestCache[PendingRequest],
	allowlist fallow.OnchainAllowlist,
	subscriptions fsub.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

func NewFunctionsHandlerFromConfig(handlerConfig json.RawMessage, donConfig *config.DONConfig, don handlers.DON, legacyChains legacyevm.LegacyChainContainer, db *sqlx.DB, qcfg pg.QConfig, lggr logger.Logger) (handlers.Handler, error)

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 *fallow.OnchainAllowlistConfig `json:"onchainAllowlist"`
	// Not specifying OnchainSubscriptions config disables minimum balance checks
	OnchainSubscriptions       *fsub.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 PendingRequest added in v2.8.0

type PendingRequest struct {
	// contains filtered or unexported fields
}

type ResponseBase added in v2.8.0

type ResponseBase struct {
	Success      bool   `json:"success"`
	ErrorMessage string `json:"error_message,omitempty"`
}

type SecretsListResponse added in v2.4.0

type SecretsListResponse struct {
	ResponseBase
	Rows []SecretsListRow `json:"rows,omitempty"`
}

type SecretsListRow added in v2.4.0

type SecretsListRow struct {
	SlotID     uint   `json:"slot_id"`
	Version    uint64 `json:"version"`
	Expiration int64  `json:"expiration"`
}

type SecretsSetRequest added in v2.4.0

type SecretsSetRequest struct {
	SlotID     uint   `json:"slot_id"`
	Version    uint64 `json:"version"`
	Expiration int64  `json:"expiration"`
	Payload    []byte `json:"payload"`
	Signature  []byte `json:"signature"`
}

type SecretsSetResponse added in v2.4.0

type SecretsSetResponse struct {
	ResponseBase
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL