Documentation ¶
Index ¶
- Constants
- type AdapterResponse
- type AdapterResult
- type AnvilContainer
- type ContractInfoJSON
- type CurrentBlockResponse
- type ExplorerClient
- type ExplorerConfig
- type GethContainer
- type GithubClient
- type HttpInitializer
- type HttpInitializerTemplate
- type HttpRequest
- type HttpResponse
- type HttpResponseTemplate
- type KafkaRestClient
- type KafkaRestConfig
- type MockserverClient
- func (em *MockserverClient) ClearExpectation(body interface{}) error
- func (em *MockserverClient) LocalURL() string
- func (em *MockserverClient) PutExpectations(body interface{}) error
- func (em *MockserverClient) SetAnyValuePath(path string, v interface{}) error
- func (em *MockserverClient) SetAnyValueResponse(path string, v interface{}) error
- func (em *MockserverClient) SetRandomValuePath(path string) error
- func (em *MockserverClient) SetStringValuePath(path string, stringValue string) error
- func (em *MockserverClient) SetValuePath(path string, v int) error
- type MockserverConfig
- type Name
- type NodeAccessKeys
- type NodeInfoJSON
- type PathSelector
- type PostgresConfig
- type PostgresConnector
- type Prometheus
- type RPCClient
- func (m *RPCClient) AnvilDropTransaction(params []interface{}) error
- func (m *RPCClient) AnvilMine(params []interface{}) error
- func (m *RPCClient) AnvilSetAutoMine(flag bool) error
- func (m *RPCClient) AnvilSetBlockGasLimit(params []interface{}) error
- func (m *RPCClient) AnvilSetMinGasPrice(params []interface{}) error
- func (m *RPCClient) AnvilSetNextBlockBaseFeePerGas(params []interface{}) error
- func (m *RPCClient) AnvilTxPoolStatus(params []interface{}) (*TxStatusResponse, error)
- func (m *RPCClient) BlockNumber() (int64, error)
- func (m *RPCClient) GethSetHead(blocksBack int) error
- func (m *RPCClient) ModulateBaseFeeOverDuration(lggr zerolog.Logger, startingBaseFee int64, percentage float64, ...) error
- type RemoteAnvilMiner
- type ResourcesSummary
- type TxStatusResponse
Constants ¶
const ( QueryMemoryUsage = `` /* 201-byte string literal not displayed */ QueryAllCPUBusyPercentage = `100 - (avg by (instance) (irate(node_cpu_seconds_total{mode="idle"}[%s])) * 100)` )
Query constants
const WITHOUT_TOKEN = ""
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
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
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 ¶
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 Plugin core repository
func (*GithubClient) ListLatestCLCoreTags ¶
func (g *GithubClient) ListLatestCLCoreTags(count int) ([]*github.RepositoryTag, error)
ListLatestCLCoreTags lists the latest tags for the Plugin 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
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, error)
ConnectMockServer creates a connection to a deployed mockserver in the environment
func ConnectMockServerURL ¶
func ConnectMockServerURL(url string) (*MockserverClient, error)
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 ¶
MockserverConfig holds config information for MockserverClient
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 ¶
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 ¶
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 (*RPCClient) AnvilDropTransaction ¶
AnvilDropTransaction removes transaction from tx pool API Reference https://book.getfoundry.sh/reference/anvil/
func (*RPCClient) AnvilMine ¶
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 ¶
AnvilSetAutoMine calls "evm_setAutomine", turns automatic mining on, see the reference on RPCClient API Reference https://book.getfoundry.sh/reference/anvil/
func (*RPCClient) AnvilSetBlockGasLimit ¶
AnvilSetBlockGasLimit sets next block gas limit API Reference https://book.getfoundry.sh/reference/anvil/
func (*RPCClient) AnvilSetMinGasPrice ¶
AnvilSetMinGasPrice sets min gas price (pre-EIP-1559 anvil is required) API Reference https://book.getfoundry.sh/reference/anvil/
func (*RPCClient) AnvilSetNextBlockBaseFeePerGas ¶
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 ¶
Call "eth_blockNumber" to get the current block number
func (*RPCClient) GethSetHead ¶
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) *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
type ResourcesSummary ¶
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