client

package
v1.99.3 Latest Latest
Warning

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

Go to latest
Published: Sep 2, 2024 License: MIT Imports: 28 Imported by: 5

README

Client

Contains code to interact with Chainlink nodes, and other HTTP services.

Documentation

Index

Constants

View Source
const (
	QueryMemoryUsage          = `` /* 201-byte string literal not displayed */
	QueryAllCPUBusyPercentage = `100 - (avg by (instance) (irate(node_cpu_seconds_total{mode="idle"}[%s])) * 100)`
)

Query constants

View Source
const WITHOUT_TOKEN = ""

Variables

This section is empty.

Functions

This section is empty.

Types

type AWSSecret

type AWSSecret string

AWSSecret is a wrapper preventing accidental printing or marshalling

func (AWSSecret) GoString

func (s AWSSecret) GoString() string

The GoString method is used to print values passed as an operand to a %#v format.

func (AWSSecret) MarshalJSON

func (s AWSSecret) MarshalJSON() ([]byte, error)

MarshalJSON Marshaler is the interface implemented by types that can marshal themselves into valid JSON.

func (AWSSecret) MarshalText

func (s AWSSecret) MarshalText() ([]byte, error)

MarshalText encodes the receiver into UTF-8-encoded text and returns the result.

func (AWSSecret) String

func (s AWSSecret) String() string

The String method is used to print values passed as an operand to any format that accepts a string or to an unformatted printer such as Print.

func (AWSSecret) Value

func (s AWSSecret) Value() string

Value is used to return masked secret value

type AWSSecretsManager

type AWSSecretsManager struct {
	Client         *secretsmanager.Client
	RequestTimeout time.Duration
	// contains filtered or unexported fields
}

AWSSecretsManager is an AWS Secrets Manager service wrapper

func NewAWSSecretsManager

func NewAWSSecretsManager(requestTimeout time.Duration) (*AWSSecretsManager, error)

NewAWSSecretsManager create a new connection to AWS Secrets Manager

func (*AWSSecretsManager) CreateSecret

func (sm *AWSSecretsManager) CreateSecret(key string, val string, override bool) error

CreateSecret creates a specific secret by key

func (*AWSSecretsManager) GetSecret

func (sm *AWSSecretsManager) GetSecret(key string) (AWSSecret, error)

GetSecret gets a specific secret by key

func (*AWSSecretsManager) RemoveSecret

func (sm *AWSSecretsManager) RemoveSecret(key string, noRecovery bool) error

RemoveSecret removes a specific secret by key

type AdapterResponse

type AdapterResponse struct {
	Id    string        `json:"id"`
	Data  AdapterResult `json:"data"`
	Error interface{}   `json:"error"`
}

AdapterResponse represents a response from an adapter

type AdapterResult

type AdapterResult struct {
	Result interface{} `json:"result"`
}

AdapterResult represents an int result for an adapter

type AnvilContainer

type AnvilContainer struct {
	testcontainers.Container
	URL string
}

func StartAnvil

func StartAnvil(params []string) (*AnvilContainer, error)

type ContractInfoJSON

type ContractInfoJSON struct {
	ContractAddress string `json:"contractAddress"`
	ContractVersion int    `json:"contractVersion"`
	Path            string `json:"path"`
	Status          string `json:"status"`
}

ContractInfoJSON represents an element of the contracts array used to deliver configs to otpe

type CurrentBlockResponse

type CurrentBlockResponse struct {
	Result string `json:"result"`
}

type ExplorerClient

type ExplorerClient struct {
	APIClient *resty.Client
	Config    *ExplorerConfig
}

ExplorerClient is used to call Explorer API endpoints

func NewExplorerClient

func NewExplorerClient(cfg *ExplorerConfig) (*ExplorerClient, error)

NewExplorerClient creates a new explorer mock client

func (*ExplorerClient) PostAdminNodes

func (em *ExplorerClient) PostAdminNodes(nodeName string) (NodeAccessKeys, error)

PostAdminNodes is used to exercise the POST /api/v1/admin/nodes endpoint This endpoint is used to create access keys for nodes

type ExplorerConfig

type ExplorerConfig struct {
	URL           string
	AdminUsername string
	AdminPassword string
}

ExplorerConfig holds config information for ExplorerClient

type GethContainer

type GethContainer struct {
	testcontainers.Container
	URL string
}

type GithubClient

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

func NewGithubClient

func NewGithubClient(token string) *GithubClient

func (*GithubClient) ListLatestCLCoreReleases

func (g *GithubClient) ListLatestCLCoreReleases(count int) ([]*github.RepositoryRelease, error)

ListLatestCLCoreReleases lists the latest releases for the Chainlink core repository

func (*GithubClient) ListLatestCLCoreTags

func (g *GithubClient) ListLatestCLCoreTags(count int) ([]*github.RepositoryTag, error)

ListLatestCLCoreTags lists the latest tags for the Chainlink core repository

func (*GithubClient) ListLatestReleases

func (g *GithubClient) ListLatestReleases(org, repository string, count int) ([]*github.RepositoryRelease, error)

ListLatestReleases lists the latest releases for a given repository

type HttpInitializer

type HttpInitializer struct {
	Id       string       `json:"id"`
	Request  HttpRequest  `json:"httpRequest"`
	Response HttpResponse `json:"httpResponse"`
}

HttpInitializer represents an element of the initializer array used in the mockserver initializer

type HttpInitializerTemplate

type HttpInitializerTemplate struct {
	Id       string               `json:"id"`
	Request  HttpRequest          `json:"httpRequest"`
	Response HttpResponseTemplate `json:"httpResponseTemplate"`
}

HttpInitializer represents an element of the initializer array used in the mockserver initializer

type HttpRequest

type HttpRequest struct {
	Path string `json:"path"`
}

HttpRequest represents the httpRequest json object used in the mockserver initializer

type HttpResponse

type HttpResponse struct {
	Body interface{} `json:"body"`
}

HttpResponse represents the httpResponse json object used in the mockserver initializer

type HttpResponseTemplate

type HttpResponseTemplate struct {
	Template     string `json:"template"`
	TemplateType string `json:"templateType"`
}

HttpResponse represents the httpResponse json object used in the mockserver initializer

type KafkaRestClient

type KafkaRestClient struct {
	APIClient *resty.Client
	Config    *KafkaRestConfig
}

KafkaRestClient kafka-rest client

func NewKafkaRestClient

func NewKafkaRestClient(cfg *KafkaRestConfig) (*KafkaRestClient, error)

NewKafkaRestClient creates a new KafkaRestClient

func (*KafkaRestClient) GetTopics

func (krc *KafkaRestClient) GetTopics() ([]string, error)

GetTopics Get a list of Kafka topics.

type KafkaRestConfig

type KafkaRestConfig struct {
	URL string
}

KafkaRestConfig holds config information for KafkaRestClient

type MockserverClient

type MockserverClient struct {
	APIClient *resty.Client
	Config    *MockserverConfig
}

MockserverClient mockserver client

func ConnectMockServer

func ConnectMockServer(e *environment.Environment) *MockserverClient

ConnectMockServer creates a connection to a deployed mockserver in the environment

func ConnectMockServerURL

func ConnectMockServerURL(url string) *MockserverClient

ConnectMockServerURL creates a connection to a mockserver at a given url, should only be used for inside K8s tests

func NewMockserverClient

func NewMockserverClient(cfg *MockserverConfig) *MockserverClient

NewMockserverClient returns a mockserver client

func (*MockserverClient) ClearExpectation

func (em *MockserverClient) ClearExpectation(body interface{}) error

ClearExpectation clears expectations

func (*MockserverClient) LocalURL

func (em *MockserverClient) LocalURL() string

LocalURL returns the local url of the mockserver

func (*MockserverClient) PutExpectations

func (em *MockserverClient) PutExpectations(body interface{}) error

PutExpectations sets the expectations (i.e. mocked responses)

func (*MockserverClient) SetAnyValuePath

func (em *MockserverClient) SetAnyValuePath(path string, v interface{}) error

SetAnyValuePath sets any type of value for a path

func (*MockserverClient) SetAnyValueResponse

func (em *MockserverClient) SetAnyValueResponse(path string, v interface{}) error

func (*MockserverClient) SetRandomValuePath

func (em *MockserverClient) SetRandomValuePath(path string) error

SetRandomValuePath sets a random int value for a path

func (*MockserverClient) SetStringValuePath

func (em *MockserverClient) SetStringValuePath(path string, stringValue string) error

SetStringValuePath sets a string value for a path and returns it as a raw string

func (*MockserverClient) SetValuePath

func (em *MockserverClient) SetValuePath(path string, v int) error

SetValuePath sets an int for a path

type MockserverConfig

type MockserverConfig struct {
	LocalURL   string
	ClusterURL string
	Headers    map[string]string
}

MockserverConfig holds config information for MockserverClient

type Name

type Name struct {
	Name string `json:"name"`
}

Name is the body of the request

type NodeAccessKeys

type NodeAccessKeys struct {
	ID        string `json:"id"`
	AccessKey string `json:"accessKey"`
	Secret    string `json:"secret"`
}

NodeAccessKeys is the body of the response

type NodeInfoJSON

type NodeInfoJSON struct {
	ID          string   `json:"id"`
	NodeAddress []string `json:"nodeAddress"`
}

NodeInfoJSON represents an element of the nodes array used to deliver configs to otpe

type PathSelector

type PathSelector struct {
	Path string `json:"path"`
}

PathSelector represents the json object used to find expectations by path

type PostgresConfig

type PostgresConfig struct {
	Host     string
	Port     string
	User     string
	Password string
	DBName   string
	SSLMode  string
}

PostgresConfig postgres config for connection string

type PostgresConnector

type PostgresConnector struct {
	*sqlx.DB
	Cfg *PostgresConfig
}

PostgresConnector sqlx postgres connector

func ConnectDB

func ConnectDB(nodeNum int, e *environment.Environment) (*PostgresConnector, error)

func NewPostgresConnector

func NewPostgresConnector(cfg *PostgresConfig) (*PostgresConnector, error)

NewPostgresConnector creates new sqlx postgres connector

type Prometheus

type Prometheus struct {
	v1.API
}

Prometheus ease of use for v1.API

func NewPrometheusClient

func NewPrometheusClient(url string) (*Prometheus, error)

NewPrometheusClient returns a prometheus client

func (*Prometheus) CPUBusyPercentage

func (p *Prometheus) CPUBusyPercentage() (float64, error)

CPUBusyPercentage host CPU busy percentage

func (*Prometheus) GetAlerts

func (p *Prometheus) GetAlerts() (v1.AlertsResult, error)

GetAlerts returns all firing alerts

func (*Prometheus) GetQuery

func (p *Prometheus) GetQuery(query string) (model.Value, error)

GetQuery returns the result of applying a PromQL query

func (*Prometheus) MemoryUsage

func (p *Prometheus) MemoryUsage() (float64, error)

MemoryUsage total memory used by interval

func (*Prometheus) ResourcesSummary

func (p *Prometheus) ResourcesSummary() (float64, float64, error)

ResourcesSummary returns a summary of memory and cpu used

type RPCClient

type RPCClient struct {
	URL string
	// contains filtered or unexported fields
}

RPCClient is an RPC client for various node simulators API Reference https://book.getfoundry.sh/reference/anvil/

func NewRPCClient

func NewRPCClient(url string, headers http.Header) *RPCClient

NewRPCClient creates Anvil client

func (*RPCClient) AnvilDropTransaction

func (m *RPCClient) AnvilDropTransaction(params []interface{}) error

AnvilDropTransaction removes transaction from tx pool API Reference https://book.getfoundry.sh/reference/anvil/

func (*RPCClient) AnvilMine

func (m *RPCClient) AnvilMine(params []interface{}) error

AnvilMine calls "evm_mine", mines one or more blocks, see the reference on RPCClient API Reference https://book.getfoundry.sh/reference/anvil/

func (*RPCClient) AnvilSetAutoMine

func (m *RPCClient) AnvilSetAutoMine(flag bool) error

AnvilSetAutoMine calls "evm_setAutomine", turns automatic mining on, see the reference on RPCClient API Reference https://book.getfoundry.sh/reference/anvil/

func (*RPCClient) AnvilSetBlockGasLimit

func (m *RPCClient) AnvilSetBlockGasLimit(params []interface{}) error

AnvilSetBlockGasLimit sets next block gas limit API Reference https://book.getfoundry.sh/reference/anvil/

func (*RPCClient) AnvilSetMinGasPrice

func (m *RPCClient) AnvilSetMinGasPrice(params []interface{}) error

AnvilSetMinGasPrice sets min gas price (pre-EIP-1559 anvil is required) API Reference https://book.getfoundry.sh/reference/anvil/

func (*RPCClient) AnvilSetNextBlockBaseFeePerGas

func (m *RPCClient) AnvilSetNextBlockBaseFeePerGas(params []interface{}) error

AnvilSetNextBlockBaseFeePerGas sets next block base fee per gas value API Reference https://book.getfoundry.sh/reference/anvil/

func (*RPCClient) AnvilTxPoolStatus

func (m *RPCClient) AnvilTxPoolStatus(params []interface{}) (*TxStatusResponse, error)

AnvilTxPoolStatus calls "txpool_status", returns txpool status, see the reference on RPCClient API Reference https://book.getfoundry.sh/reference/anvil/

func (*RPCClient) BlockNumber

func (m *RPCClient) BlockNumber() (int64, error)

Call "eth_blockNumber" to get the current block number

func (*RPCClient) GethSetHead

func (m *RPCClient) GethSetHead(blocksBack int) error

func (*RPCClient) ModulateBaseFeeOverDuration

func (m *RPCClient) ModulateBaseFeeOverDuration(lggr zerolog.Logger, startingBaseFee int64, percentage float64, duration time.Duration, spike bool) error

ModulateBaseFeeOverDuration will cause the gas price to rise or drop to a certain percentage of the starting gas price over the duration specified. Minimum duration is 1 s if spike is true, the gas price will rise to the target price if spike is false, the gas price will drop to the target price

type RemoteAnvilMiner

type RemoteAnvilMiner struct {
	Client *RPCClient
	// contains filtered or unexported fields
}

RemoteAnvilMiner is a remote miner for Anvil node Allows to control blocks emission more precisely to mimic real networks workload

func NewRemoteAnvilMiner

func NewRemoteAnvilMiner(url string, headers http.Header) *RemoteAnvilMiner

NewRemoteAnvilMiner creates a new remote miner client

func (*RemoteAnvilMiner) MineBatch

func (m *RemoteAnvilMiner) MineBatch(capacity int64, checkInterval time.Duration, sendInterval time.Duration)

MineBatch checks the pending transactions in the pool, if threshold is reached mines the block and repeat the process

func (*RemoteAnvilMiner) MinePeriodically

func (m *RemoteAnvilMiner) MinePeriodically(interval time.Duration)

MinePeriodically mines blocks with a specified interval should be used when Anvil mining is off

func (*RemoteAnvilMiner) Stop

func (m *RemoteAnvilMiner) Stop()

Stop stops the miner

type ResourcesSummary

type ResourcesSummary struct {
	MemoryUsage   float64
	CPUPercentage float64
}

ResourcesSummary Data for memory and cpu usage

type TxStatusResponse

type TxStatusResponse struct {
	Result struct {
		Pending string `json:"pending"`
	} `json:"result"`
}

TxStatusResponse common RPC response body

Jump to

Keyboard shortcuts

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