presenters

package
v0.0.2 Latest Latest
Warning

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

Go to latest
Published: Mar 12, 2021 License: ISC Imports: 22 Imported by: 0

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

Constants

This section is empty.

Variables

This section is empty.

Functions

func FriendlyBigInt

func FriendlyBigInt(n *big.Int) string

FriendlyBigInt returns a string printing the integer in both decimal and hexadecimal formats.

Types

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(store *store.Store) (ConfigPrinter, error)

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 ETHKey

type ETHKey struct {
	Address     string         `json:"address"`
	EthBalance  *assets.Eth    `json:"ethBalance"`
	LinkBalance *assets.Link   `json:"linkBalance"`
	NextNonce   *int64         `json:"nextNonce"`
	LastUsed    *time.Time     `json:"lastUsed"`
	IsFunding   bool           `json:"isFunding"`
	CreatedAt   time.Time      `json:"createdAt"`
	UpdatedAt   time.Time      `json:"updatedAt"`
	DeletedAt   gorm.DeletedAt `json:"deletedAt"`
}

ETHKey holds the hex representation of the address plus it's ETH & LINK balances

func (ETHKey) GetID

func (k ETHKey) GetID() string

GetID returns the ID of this structure for jsonapi serialization.

func (*ETHKey) SetID

func (k *ETHKey) SetID(value string) error

SetID is used to set the ID of this structure when deserializing from jsonapi documents.

type EnvPrinter

type EnvPrinter struct {
	AllowOrigins                          string          `json:"allowOrigins"`
	BalanceMonitorEnabled                 bool            `json:"balanceMonitorEnabled"`
	BlockBackfillDepth                    uint64          `json:"blockBackfillDepth"`
	BridgeResponseURL                     string          `json:"bridgeResponseURL,omitempty"`
	ChainID                               *big.Int        `json:"ethChainId"`
	ClientNodeURL                         string          `json:"clientNodeUrl"`
	DatabaseTimeout                       models.Duration `json:"databaseTimeout"`
	DatabaseMaximumTxDuration             time.Duration   `json:"databaseMaximumTxDuration"`
	DefaultHTTPLimit                      int64           `json:"defaultHttpLimit"`
	DefaultHTTPTimeout                    models.Duration `json:"defaultHttpTimeout"`
	Dev                                   bool            `json:"seerlinkDev"`
	EnableExperimentalAdapters            bool            `json:"enableExperimentalAdapters"`
	EthBalanceMonitorBlockDelay           uint16          `json:"ethBalanceMonitorBlockDelay"`
	EthereumDisabled                      bool            `json:"ethereumDisabled"`
	EthFinalityDepth                      uint            `json:"ethFinalityDepth"`
	EthGasBumpThreshold                   uint64          `json:"ethGasBumpThreshold"`
	EthGasBumpTxDepth                     uint16          `json:"ethGasBumpTxDepth"`
	EthGasBumpWei                         *big.Int        `json:"ethGasBumpWei"`
	EthGasLimitDefault                    uint64          `json:"ethGasLimitDefault"`
	EthGasPriceDefault                    *big.Int        `json:"ethGasPriceDefault"`
	EthHeadTrackerHistoryDepth            uint            `json:"ethHeadTrackerHistoryDepth"`
	EthHeadTrackerMaxBufferSize           uint            `json:"ethHeadTrackerMaxBufferSize"`
	EthMaxGasPriceWei                     *big.Int        `json:"ethMaxGasPriceWei"`
	EthereumURL                           string          `json:"ethUrl"`
	EthereumSecondaryURLs                 []string        `json:"ethSecondaryUrls"`
	ExplorerURL                           string          `json:"explorerUrl"`
	FeatureExternalInitiators             bool            `json:"featureExternalInitiators"`
	FeatureFluxMonitor                    bool            `json:"featureFluxMonitor"`
	FeatureOffchainReporting              bool            `json:"featureOffchainReporting"`
	FlagsContractAddress                  string          `json:"flagsContractAddress"`
	GasUpdaterBlockDelay                  uint16          `json:"gasUpdaterBlockDelay"`
	GasUpdaterBlockHistorySize            uint16          `json:"gasUpdaterBlockHistorySize"`
	GasUpdaterEnabled                     bool            `json:"gasUpdaterEnabled"`
	GasUpdaterTransactionPercentile       uint16          `json:"gasUpdaterTransactionPercentile"`
	InsecureFastScrypt                    bool            `json:"insecureFastScrypt"`
	TriggerFallbackDBPollInterval         time.Duration   `json:"jobPipelineDBPollInterval"`
	JobPipelineMaxTaskDuration            time.Duration   `json:"jobPipelineMaxTaskDuration"`
	JobPipelineParallelism                uint8           `json:"jobPipelineParallelism"`
	JobPipelineReaperInterval             time.Duration   `json:"jobPipelineReaperInterval"`
	JobPipelineReaperThreshold            time.Duration   `json:"jobPipelineReaperThreshold"`
	JSONConsole                           bool            `json:"jsonConsole"`
	LinkContractAddress                   string          `json:"linkContractAddress"`
	LogLevel                              orm.LogLevel    `json:"logLevel"`
	LogSQLMigrations                      bool            `json:"logSqlMigrations"`
	LogSQLStatements                      bool            `json:"logSqlStatements"`
	LogToDisk                             bool            `json:"logToDisk"`
	MaximumServiceDuration                models.Duration `json:"maximumServiceDuration"`
	MinIncomingConfirmations              uint32          `json:"minIncomingConfirmations"`
	MinRequiredOutgoingConfirmations      uint64          `json:"minOutgoingConfirmations"`
	MinimumServiceDuration                models.Duration `json:"minimumServiceDuration"`
	MinimumContractPayment                *assets.Link    `json:"minimumContractPayment"`
	MinimumRequestExpiration              uint64          `json:"minimumRequestExpiration"`
	OCRBootstrapCheckInterval             time.Duration   `json:"ocrBootstrapCheckInterval"`
	OCRContractTransmitterTransmitTimeout time.Duration   `json:"ocrContractTransmitterTransmitTimeout"`
	OCRDatabaseTimeout                    time.Duration   `json:"ocrDatabaseTimeout"`
	P2PListenIP                           string          `json:"ocrListenIP"`
	P2PListenPort                         uint16          `json:"ocrListenPort"`
	OCRIncomingMessageBufferSize          int             `json:"ocrIncomingMessageBufferSize"`
	OCROutgoingMessageBufferSize          int             `json:"ocrOutgoingMessageBufferSize"`
	OCRNewStreamTimeout                   time.Duration   `json:"ocrNewStreamTimeout"`
	OCRDHTLookupInterval                  int             `json:"ocrDHTLookupInterval"`
	OCRTraceLogging                       bool            `json:"ocrTraceLogging"`
	OperatorContractAddress               common.Address  `json:"oracleContractAddress"`
	Port                                  uint16          `json:"seerlinkPort"`
	ReaperExpiration                      models.Duration `json:"reaperExpiration"`
	ReplayFromBlock                       int64           `json:"replayFromBlock"`
	RootDir                               string          `json:"root"`
	SecureCookies                         bool            `json:"secureCookies"`
	SessionTimeout                        models.Duration `json:"sessionTimeout"`
	TLSHost                               string          `json:"seerlinkTLSHost"`
	TLSPort                               uint16          `json:"seerlinkTLSPort"`
	TLSRedirect                           bool            `json:"seerlinkTLSRedirect"`
}

EnvPrinter contains the supported environment variables

type EthTx

type EthTx struct {
	ID       int64           `json:"-"`
	State    string          `json:"state,omitempty"`
	Data     hexutil.Bytes   `json:"data,omitempty"`
	From     *common.Address `json:"from,omitempty"`
	GasLimit string          `json:"gasLimit,omitempty"`
	GasPrice string          `json:"gasPrice,omitempty"`
	Hash     common.Hash     `json:"hash,omitempty"`
	Hex      string          `json:"rawHex,omitempty"`
	Nonce    string          `json:"nonce,omitempty"`
	SentAt   string          `json:"sentAt,omitempty"`
	To       *common.Address `json:"to,omitempty"`
	Value    string          `json:"value,omitempty"`
}

EthTx is a jsonapi wrapper for an Ethereum Transaction.

func NewEthTxFromAttempt

func NewEthTxFromAttempt(txa models.EthTxAttempt) EthTx

func (EthTx) GetID

func (t EthTx) GetID() string

GetID returns the jsonapi ID.

func (EthTx) GetName

func (EthTx) GetName() string

GetName returns the collection name for jsonapi.

func (*EthTx) SetID

func (t *EthTx) SetID(hex string) error

SetID is used to conform to the UnmarshallIdentifier interface for deserializing from jsonapi documents.

type ExplorerStatus

type ExplorerStatus struct {
	Status string `json:"status"`
	Url    string `json:"url"`
}

ExplorerStatus represents the connected server and status of the connection

func NewExplorerStatus

func NewExplorerStatus(statsPusher synchronization.StatsPusher) ExplorerStatus

NewExplorerStatus returns an initialized ExplorerStatus from the store

type ExternalInitiatorAuthentication

type ExternalInitiatorAuthentication struct {
	Name           string        `json:"name,omitempty"`
	URL            models.WebURL `json:"url,omitempty"`
	AccessKey      string        `json:"incomingAccessKey,omitempty"`
	Secret         string        `json:"incomingSecret,omitempty"`
	OutgoingToken  string        `json:"outgoingToken,omitempty"`
	OutgoingSecret string        `json:"outgoingSecret,omitempty"`
}

ExternalInitiatorAuthentication includes initiator and authentication details.

func NewExternalInitiatorAuthentication

func NewExternalInitiatorAuthentication(
	ei models.ExternalInitiator,
	eia auth.Token,
) *ExternalInitiatorAuthentication

NewExternalInitiatorAuthentication creates an instance of ExternalInitiatorAuthentication.

func (*ExternalInitiatorAuthentication) GetID

GetID returns the jsonapi ID.

func (*ExternalInitiatorAuthentication) GetName

GetName returns the collection name for jsonapi.

func (*ExternalInitiatorAuthentication) SetID

SetID is used to conform to the UnmarshallIdentifier interface for deserializing from jsonapi documents.

type Initiator

type Initiator struct {
	models.Initiator
}

Initiator holds the Job definition's Initiator.

func (Initiator) FriendlyAddress

func (i Initiator) FriendlyAddress() string

FriendlyAddress returns the Ethereum address if present, and a blank string if not.

func (Initiator) FriendlyRunAt

func (i Initiator) FriendlyRunAt() string

FriendlyRunAt returns a human-readable string for Cron Initiator types.

func (Initiator) MarshalJSON

func (i Initiator) MarshalJSON() ([]byte, error)

MarshalJSON returns the JSON data of the Initiator based on its Initiator Type.

type JobRun

type JobRun struct {
	models.JobRun
}

JobRun presents an API friendly version of the data.

func (JobRun) MarshalJSON

func (jr JobRun) MarshalJSON() ([]byte, error)

MarshalJSON returns the JSON data of the JobRun and its Initiator.

type JobSpec

type JobSpec struct {
	models.JobSpec
	Errors   []models.JobSpecError `json:"errors"`
	Earnings *assets.Link          `json:"earnings"`
}

JobSpec holds the JobSpec definition together with the total link earned from that job

func (JobSpec) FriendlyCreatedAt

func (job JobSpec) FriendlyCreatedAt() string

FriendlyCreatedAt returns a human-readable string of the Job's CreatedAt field.

func (JobSpec) FriendlyEndAt

func (job JobSpec) FriendlyEndAt() string

FriendlyEndAt returns a human-readable string of the Job's EndAt field.

func (JobSpec) FriendlyInitiators

func (job JobSpec) FriendlyInitiators() string

FriendlyInitiators returns the list of Initiator types as a comma separated string.

func (JobSpec) FriendlyMinPayment

func (job JobSpec) FriendlyMinPayment() string

FriendlyMinPayment returns a formatted string of the Job's Minimum Link Payment threshold

func (JobSpec) FriendlyStartAt

func (job JobSpec) FriendlyStartAt() string

FriendlyStartAt returns a human-readable string of the Job's StartAt field.

func (JobSpec) FriendlyTasks

func (job JobSpec) FriendlyTasks() string

FriendlyTasks returns the list of Task types as a comma separated string.

func (JobSpec) MarshalJSON

func (job JobSpec) MarshalJSON() ([]byte, error)

MarshalJSON returns the JSON data of the Job and its Initiators.

type NewAccount

type NewAccount struct {
	*accounts.Account
}

NewAccount is a jsonapi wrapper for an Ethereum account.

func (NewAccount) GetID

func (a NewAccount) GetID() string

GetID returns the jsonapi ID.

func (NewAccount) GetName

func (a NewAccount) GetName() string

GetName returns the collection name for jsonapi.

type ServiceAgreement

type ServiceAgreement struct {
	models.ServiceAgreement
}

ServiceAgreement presents an API friendly version of the data.

func (ServiceAgreement) FriendlyAggregator

func (sa ServiceAgreement) FriendlyAggregator() string

FriendlyAggregator returns the ServiceAgreement's aggregator address, in a human readable format.

func (ServiceAgreement) FriendlyAggregatorFulfillMethod

func (sa ServiceAgreement) FriendlyAggregatorFulfillMethod() string

FriendlyAggregatorFulfillMethod returns the ServiceAgreement's aggregator fulfillment (orcale reporting) method's function selector, in a human readable format.

func (ServiceAgreement) FriendlyAggregatorInitMethod

func (sa ServiceAgreement) FriendlyAggregatorInitMethod() string

FriendlyAggregator returns the ServiceAgreement's aggregator initialization method's function selector, in a human readable format.

func (ServiceAgreement) FriendlyCreatedAt

func (sa ServiceAgreement) FriendlyCreatedAt() string

FriendlyCreatedAt returns the ServiceAgreement's created at time in a human readable format.

func (ServiceAgreement) FriendlyExpiration

func (sa ServiceAgreement) FriendlyExpiration() string

FriendlyExpiration returns the ServiceAgreement's Encumbrance expiration time in a human readable format.

func (ServiceAgreement) FriendlyPayment

func (sa ServiceAgreement) FriendlyPayment() string

FriendlyPayment returns the ServiceAgreement's Encumbrance payment amount in a human readable format.

func (ServiceAgreement) MarshalJSON

func (sa ServiceAgreement) MarshalJSON() ([]byte, error)

MarshalJSON presents the ServiceAgreement as public JSON data

type ServiceAgreementPresentation

type ServiceAgreementPresentation struct {
	ID            string             `json:"id"`
	CreatedAt     string             `json:"createdAt"`
	Encumbrance   models.Encumbrance `json:"encumbrance"`
	EncumbranceID int64              `json:"encumbranceID"`
	RequestBody   string             `json:"requestBody"`
	Signature     string             `json:"signature"`
	JobSpec       models.JobSpec     `json:"jobSpec"`
	JobSpecID     string             `json:"jobSpecId"`
}

type TaskSpec

type TaskSpec struct {
	models.TaskSpec
}

TaskSpec holds a task specified in the Job definition.

func (TaskSpec) FriendlyParams

func (t TaskSpec) FriendlyParams() (string, string)

FriendlyParams returns a map of the TaskSpec's parameters.

type UserPresenter

type UserPresenter struct {
	*models.User
}

UserPresenter wraps the user record for shipping as a jsonapi response in the API.

func (UserPresenter) GetID

func (u UserPresenter) GetID() string

GetID returns the jsonapi ID.

func (UserPresenter) GetName

func (u UserPresenter) GetName() string

GetName returns the collection name for jsonapi.

func (UserPresenter) MarshalJSON

func (u UserPresenter) MarshalJSON() ([]byte, error)

MarshalJSON returns the User as json.

Jump to

Keyboard shortcuts

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