test_env

package
v1.28.7 Latest Latest
Warning

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

Go to latest
Published: Apr 29, 2024 License: MIT Imports: 48 Imported by: 19

Documentation

Index

Constants

View Source
const (
	RootFundingAddr   = `0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266`
	RootFundingWallet = `` /* 491-byte string literal not displayed */

	DEFAULT_EVM_NODE_HTTP_PORT = "8544"
	DEFAULT_EVM_NODE_WS_PORT   = "8545"
)
View Source
const (
	CONFIG_ENV_VAR_NAME      = "PRIVATE_ETHEREUM_NETWORK_CONFIG_PATH"
	EXEC_CLIENT_ENV_VAR_NAME = "ETH2_EL_CLIENT"
)
View Source
const (
	MsgInvalidDockerImageFormat  = "invalid docker image format: %s"
	MsgUnsupportedDockerImage    = "unsupported docker image: %s"
	MsgUnsupportedExecutionLayer = "unsupported execution layer: %s"
)
View Source
const (
	PRYSM_QUERY_RPC_PORT = "3500"
	PRYSM_NODE_RPC_PORT  = "4000"
)
View Source
const AUTOMATIC_LATEST_TAG = "latest_available"
View Source
const AUTOMATIC_STABLE_LATEST_TAG = "latest_stable"
View Source
const (
	BaseCMD = `docker run -i --rm -v /var/run/docker.sock:/var/run/docker.sock --network %s gaiaadm/pumba --log-level=info`
)
View Source
const (
	UnsopportedForkErr = "only Deneb hard fork is supported"
)

Variables

View Source
var (
	ETH2_EXECUTION_PORT                             = "8551"
	WALLET_PASSWORD                                 = "password"
	VALIDATOR_WALLET_PASSWORD_FILE_INSIDE_CONTAINER = fmt.Sprintf("%s/wallet_password.txt", GENERATED_DATA_DIR_INSIDE_CONTAINER)
	ACCOUNT_PASSWORD_FILE_INSIDE_CONTAINER          = fmt.Sprintf("%s/account_password.txt", GENERATED_DATA_DIR_INSIDE_CONTAINER)
	ACCOUNT_KEYSTORE_FILE_INSIDE_CONTAINER          = fmt.Sprintf("%s/account_key", KEYSTORE_DIR_LOCATION_INSIDE_CONTAINER)
	KEYSTORE_DIR_LOCATION_INSIDE_CONTAINER          = fmt.Sprintf("%s/keystore", GENERATED_DATA_DIR_INSIDE_CONTAINER)
	GENERATED_VALIDATOR_KEYS_DIR_INSIDE_CONTAINER   = "/keys"
	NODE_0_DIR_INSIDE_CONTAINER                     = fmt.Sprintf("%s/node-0", GENERATED_VALIDATOR_KEYS_DIR_INSIDE_CONTAINER)
	GENERATED_DATA_DIR_INSIDE_CONTAINER             = "/data/custom_config_data"
	JWT_SECRET_FILE_LOCATION_INSIDE_CONTAINER       = fmt.Sprintf("%s/jwtsecret", GENERATED_DATA_DIR_INSIDE_CONTAINER) // #nosec G101
	VALIDATOR_BIP39_MNEMONIC                        = ""                                                               /* 152-byte string literal not displayed */
)
View Source
var (
	ErrMissingEthereumVersion   = errors.New("ethereum version is required")
	ErrMissingExecutionLayer    = errors.New("execution layer is required")
	ErrMissingConsensusLayer    = errors.New("consensus layer is required for PoS")
	ErrConsensusLayerNotAllowed = errors.New("consensus layer is not allowed for PoW")
	ErrTestConfigNotSaved       = errors.New("could not save test env config")
)
View Source
var FundingAddresses = map[string]string{
	"f39fd6e51aad88f6f4ce6ab8827279cfffb92266": `{"address":"f39fd6e51aad88f6f4ce6ab8827279cfffb92266","crypto":{"cipher":"aes-128-ctr","ciphertext":"c36afd6e60b82d6844530bd6ab44dbc3b85a53e826c3a7f6fc6a75ce38c1e4c6","cipherparams":{"iv":"f69d2bb8cd0cb6274535656553b61806"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"80d5f5e38ba175b6b89acfc8ea62a6f163970504af301292377ff7baafedab53"},"mac":"f2ecec2c4d05aacc10eba5235354c2fcc3776824f81ec6de98022f704efbf065"},"id":"e5c124e9-e280-4b10-a27b-d7f3e516b408","version":3}`,
	"70997970c51812dc3a010c7d01b50e0d17dc79c8": `{"address":"70997970c51812dc3a010c7d01b50e0d17dc79c8","crypto":{"cipher":"aes-128-ctr","ciphertext":"f8183fa00bc112645d3e23e29a233e214f7c708bf49d72750c08af88ad76c980","cipherparams":{"iv":"796d08e3e1f71bde89ed826abda96cda"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"03c864a22a1f7b06b1da12d8b93e024ac144f898285907c58b2abc135fc8a35c"},"mac":"5fe91b1a1821c0d9f85dfd582354ead9612e9a7e9adc38b06a2beff558c119ac"},"id":"d2cab765-5e30-42ae-bb91-f090d9574fae","version":3}`,
	"3c44cdddb6a900fa2b585dd299e03d12fa4293bc": `{"address":"3c44cdddb6a900fa2b585dd299e03d12fa4293bc","crypto":{"cipher":"aes-128-ctr","ciphertext":"2cd6ab87086c47f343f2c4d957eace7986f3b3c87fc35a2aafbefb57a06d9f1c","cipherparams":{"iv":"4e16b6cd580866c1aa642fb4d7312c9b"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"0cabde93877f6e9a59070f9992f7a01848618263124835c90d4d07a0041fc57c"},"mac":"94b7776ea95b0ecd8406c7755acf17b389b7ebe489a8942e32082dfdc1f04f57"},"id":"ade1484b-a3bb-426f-9223-a1f5e3bde2e8","version":3}`,
	"90f79bf6eb2c4f870365e785982e1f101e93b906": `{"address":"90f79bf6eb2c4f870365e785982e1f101e93b906","crypto":{"cipher":"aes-128-ctr","ciphertext":"15144214d323871e00f7b205368128061c91b77a27b7deec935f8f5b734f0d42","cipherparams":{"iv":"bb22ba8051ef9f60abded7a9f4f2c6ae"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"07331ef3035567c00830b4e50d5dd68bc877974b4ce38cd42fef755be01556c9"},"mac":"2294eacadaf2761851814451d8c7dcca20a606a0344335d98f09403aba4e82ca"},"id":"96af8cc7-97e1-4bba-8968-632b034986c2","version":3}`,
	"15d34aaf54267db7d7c367839aaf71a00a2c6a65": `{"address":"15d34aaf54267db7d7c367839aaf71a00a2c6a65","crypto":{"cipher":"aes-128-ctr","ciphertext":"057878284a6c74d3ad99910adddd6b477b383837dbf2280efea585f0f0fdb012","cipherparams":{"iv":"e6eab29d60b526f305f8d47badf48687"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"dfdca8066d2486da5cb9a909d03744e2a8c6537930271e85e7cd8a5d952c0f22"},"mac":"f8352be41c9a06d69111ca4d8fcff0eef079b68b1173cad99803538991716c5d"},"id":"a35bb452-0d57-42d5-8d25-5a00a40a4db8","version":3}`,
	"9965507d1a55bcc2695c58ba16fb37d819b0a4dc": `{"address":"9965507d1a55bcc2695c58ba16fb37d819b0a4dc","crypto":{"cipher":"aes-128-ctr","ciphertext":"5a73201500307c6aa98edd44d962b344a893768331454a61595ec848e738e9d2","cipherparams":{"iv":"5282de2b3e2b305019a2fed5c62f3383"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"6ad001831d097f175fff7d6cf61301e9620b32afd9a7a6437e6030af14576a96"},"mac":"0a55eddbd13c713aa8b8c4106b2fb62bc1d1e18e7177207a444f83a4d8426ed5"},"id":"27aed2b2-cb94-4d37-8819-b15219187bb5","version":3}`,
	"976ea74026e726554db657fa54763abd0c3a0aa9": `{"address":"976ea74026e726554db657fa54763abd0c3a0aa9","crypto":{"cipher":"aes-128-ctr","ciphertext":"a6edf11e81b38e60a549696236cb9efc026e87adc45a9521ea7b2c45a2a9fbb9","cipherparams":{"iv":"82f4c79cd4b28a8585a9c78d758f832b"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"87400e16ecc320dadff85eccbf4dbaaea2dd91e50047e4aa391799bb319c1fd8"},"mac":"80c83dad05998db6c673a97096fcfad54636458f4a3c82483686b253f8cc9b69"},"id":"fc7d7694-6206-48fc-bb25-36b523f90df6","version":3}`,
	"14dc79964da2c08b23698b3d3cc7ca32193d9955": `{"address":"14dc79964da2c08b23698b3d3cc7ca32193d9955","crypto":{"cipher":"aes-128-ctr","ciphertext":"410f258bc8b12a0250cba22cbc5e413534fcf90bf322ced6943189ad9e43b4b9","cipherparams":{"iv":"1dd6077a8bee9b3bf2ca90e6abc8a237"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"5d3358bf99bbcb82354f40e5501abf4336bc141ee05d8feed4fbe7eb8c08c917"},"mac":"9cd959fa1e8129a8deb86e0264ec81d6cde79b5a19ae259b7d00543c9037908a"},"id":"689d7ad2-fe46-4c09-9c2a-a50e607989b8","version":3}`,
	"23618e81e3f5cdf7f54c3d65f7fbc0abf5b21e8f": `{"address":"23618e81e3f5cdf7f54c3d65f7fbc0abf5b21e8f","crypto":{"cipher":"aes-128-ctr","ciphertext":"13dccac740314edea20d44e6f3592575bbcb739ec5892d635326cff3c386eb86","cipherparams":{"iv":"bf42d811cd41fa97ddcae3425f8c3211"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"d2fa67cbb5e86d5bf9a90e27b8747bac493614b45778d43e9da1c14e06b2401d"},"mac":"7d2797cf344704d8f36265238d3938e06952c78ab7dfcbac53dc7f472c93d933"},"id":"4c8e899e-80f0-4417-9b1e-c5e29049f1e7","version":3}`,
	"a0ee7a142d267c1f36714e4a8f75612f20a79720": `{"address":"a0ee7a142d267c1f36714e4a8f75612f20a79720","crypto":{"cipher":"aes-128-ctr","ciphertext":"56bc8766f47aeafae74eea333e1e890a3776d7fae6c48cbdbffb270655ce050d","cipherparams":{"iv":"a66129e6a110b3ddf93b4355aa147c58"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"15c4e8bcc80920139eb236d91194825f1fce27dd2af281e0f2752d8a5dbc48bd"},"mac":"db01e720866ce8bb7897dfc7773e064003ad53429a79732ee769cf6d02273570"},"id":"87b2d76f-1b70-4e4f-8b2a-5d1915c1177c","version":3}`,
	"bcd4042de499d14e55001ccbb24a551f3b954096": `{"address":"bcd4042de499d14e55001ccbb24a551f3b954096","crypto":{"cipher":"aes-128-ctr","ciphertext":"e455eda6e38d246c03b930f845adfc8721ca75e9f47135cd4c18dbc3e5c5440a","cipherparams":{"iv":"0b1a0a24acc1ad25b0f170f751c2cb27"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"69f324ed0787794878bf5f84d4dbbc70dec1274cad666399edc48640605f64c8"},"mac":"f07da09c460a69f943f5639545d2b3f72c1e9789f0421ad41d3078ea3db12c96"},"id":"7ec7bb3c-c486-4785-a4fc-f8f4b2fc7764","version":3}`,
	"71be63f3384f5fb98995898a86b02fb2426c5788": `{"address":"71be63f3384f5fb98995898a86b02fb2426c5788","crypto":{"cipher":"aes-128-ctr","ciphertext":"4194377a05fd3d13e0a3155dad974a003fe5f7a3b5acb35d7d97c50daa8990d4","cipherparams":{"iv":"607670778baf62b1e86394cf1980487a"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"d63b890ad7f4fcc857681faabe9319dffc53893966ef0810bf64c4f319b0ffc5"},"mac":"bfaf924959e65c8030ece259d52ed52d5d21bd74f1a67ae545d4bb289a479e16"},"id":"0c6af842-384f-49b6-b5b7-199a1e05486b","version":3}`,
}
View Source
var MsgMismatchedExecutionClient = "" /* 147-byte string literal not displayed */
View Source
var UNSUPPORTED_VERSIONS = []UnsupportedVersion{
	{DockerImage: fmt.Sprintf("%s:1.20.0", nethermindBaseImageName),
		Reason: "1.20.0 was replaced with 1.20.1, for more info check https://github.com/NethermindEth/nethermind/releases/tag/1.20.0",
	},
	{DockerImage: fmt.Sprintf("%s:v1.9.0", gethBaseImageName),
		Reason: "v1.9.0 randomly drops websocket connections, for more info check https://github.com/ethereum/go-ethereum/issues/19001",
	},
}

Functions

func FetchLatestEthereumClientDockerImageVersionIfNeed added in v1.27.0

func FetchLatestEthereumClientDockerImageVersionIfNeed(dockerImageWithVersion string) (string, error)

FetchLatestEthereumClientDockerImageVersionIfNeed fetches the latest release version from Github if the version is set to AUTOMATIC_LATEST_TAG or AUTOMATIC_STABLE_LATEST_TAG and returns the full docker image with the latest version. Works only for supported Ethereum clients: Geth, Erigon, Besu and Nethermind.

func FormatHttpUrl added in v1.18.6

func FormatHttpUrl(host string, port string) string

func FormatWsUrl added in v1.18.6

func FormatWsUrl(host string, port string) string

func GetComparableVersionFromDockerImage added in v1.27.0

func GetComparableVersionFromDockerImage(imageWithVersion string) (int, error)

GetComparableVersionFromDockerImage returns version in xy format removing all non-numeric characters and patch version if present. So x.y.z becomes xy.

func GetEndpoint added in v1.17.11

func GetEndpoint(ctx context.Context, container tc.Container, endpointType string) (string, error)

GetEndpoint returns the endpoint of a container, if localhost then force ipv4 localhost to avoid ipv6 docker bugs https://github.com/moby/moby/issues/42442 https://github.com/moby/moby/issues/42375

func GetGithubRepositoryFromEthereumClientDockerImage added in v1.27.0

func GetGithubRepositoryFromEthereumClientDockerImage(imageWithVersion string) (string, error)

GetGithubRepositoryFromEthereumClientDockerImage returns the GitHub repository name based on the Docker image

func GetHost added in v1.17.11

func GetHost(ctx context.Context, container tc.Container) (string, error)

GetHost returns the host of a container, if localhost then force ipv4 localhost to avoid ipv6 docker bugs https://github.com/moby/moby/issues/42442 https://github.com/moby/moby/issues/42375

func IsDockerImageVersionSupported added in v1.27.0

func IsDockerImageVersionSupported(imageWithVersion string) (bool, string, error)

IsDockerImageVersionSupported checks if the given docker image version is supported and if not returns the reason why

func NatPort added in v1.17.3

func NatPort(port string) nat.Port

func NatPortFormat added in v1.17.3

func NatPortFormat(port string) string

func UniqueStringSlice added in v1.27.0

func UniqueStringSlice(slice []string) []string

UniqueStringSlice returns a deduplicated slice of strings

Types

type AfterGenesisHelper added in v1.22.0

type AfterGenesisHelper struct {
	EnvComponent
	// contains filtered or unexported fields
}

func NewInitHelper added in v1.22.0

func NewInitHelper(chainConfig EthereumChainConfig, customConfigDataDir string, opts ...EnvComponentOption) *AfterGenesisHelper

func (*AfterGenesisHelper) StartContainer added in v1.22.0

func (g *AfterGenesisHelper) StartContainer() error

func (*AfterGenesisHelper) WithTestInstance added in v1.22.0

func (g *AfterGenesisHelper) WithTestInstance(t *testing.T) *AfterGenesisHelper

type Besu added in v1.22.0

type Besu struct {
	EnvComponent
	ExternalHttpUrl      string
	InternalHttpUrl      string
	ExternalWsUrl        string
	InternalWsUrl        string
	InternalExecutionURL string
	ExternalExecutionURL string
	// contains filtered or unexported fields
}

func NewBesuEth1 added in v1.27.0

func NewBesuEth1(networks []string, chainConfig *EthereumChainConfig, opts ...EnvComponentOption) (*Besu, error)

NewBesuEth1 starts a new Besu Eth1 node running in Docker

func NewBesuEth2 added in v1.27.0

func NewBesuEth2(networks []string, chainConfig *EthereumChainConfig, generatedDataHostDir string, consensusLayer ConsensusLayer, opts ...EnvComponentOption) (*Besu, error)

NewBesuEth2 starts a new Besu Eth2 node running in Docker

func (*Besu) GetContainer added in v1.22.0

func (g *Besu) GetContainer() *tc.Container

func (*Besu) GetContainerName added in v1.22.0

func (g *Besu) GetContainerName() string

func (*Besu) GetEthereumVersion added in v1.27.0

func (g *Besu) GetEthereumVersion() EthereumVersion

func (*Besu) GetExternalExecutionURL added in v1.22.0

func (g *Besu) GetExternalExecutionURL() string

func (*Besu) GetExternalHttpUrl added in v1.22.0

func (g *Besu) GetExternalHttpUrl() string

func (*Besu) GetExternalWsUrl added in v1.22.0

func (g *Besu) GetExternalWsUrl() string

func (*Besu) GetInternalExecutionURL added in v1.22.0

func (g *Besu) GetInternalExecutionURL() string

func (*Besu) GetInternalHttpUrl added in v1.22.0

func (g *Besu) GetInternalHttpUrl() string

func (*Besu) GetInternalWsUrl added in v1.22.0

func (g *Besu) GetInternalWsUrl() string

func (*Besu) GethConsensusMechanism added in v1.27.0

func (g *Besu) GethConsensusMechanism() ConsensusMechanism

func (*Besu) StartContainer added in v1.22.0

func (g *Besu) StartContainer() (blockchain.EVMNetwork, error)

func (*Besu) WaitUntilChainIsReady added in v1.22.0

func (g *Besu) WaitUntilChainIsReady(ctx context.Context, waitTime time.Duration) error

func (*Besu) WithTestInstance added in v1.22.0

func (g *Besu) WithTestInstance(t *testing.T) ExecutionClient

type ConsensusLayer added in v1.18.6

type ConsensusLayer string
var ConsensusLayer_Prysm ConsensusLayer = "prysm"

type ConsensusMechanism added in v1.27.0

type ConsensusMechanism string
const (
	ConsensusMechanism_PoW ConsensusMechanism = "pow"
	ConsensusMechanism_PoS ConsensusMechanism = "pos"
	ConsensusMechanism_PoA ConsensusMechanism = "poa"
)

type ConsensusType deprecated added in v1.18.6

type ConsensusType string

Deprecated: use EthereumVersion instead

const (
	// Deprecated: use EthereumVersion_Eth2 instead
	ConsensusType_PoS ConsensusType = "pos"
	// Deprecated: use EthereumVersion_Eth1 instead
	ConsensusType_PoW ConsensusType = "pow"
)

type ContainerType added in v1.18.6

type ContainerType string
const (
	// ContainerType_Geth               ContainerType = "geth"
	// ContainerType_Erigon             ContainerType = "erigon"
	// ContainerType_Besu               ContainerType = "besu"
	// ContainerType_Nethermind         ContainerType = "nethermind"
	ContainerType_ExecutionLayer     ContainerType = "execution_layer"
	ContainerType_ConsensusLayer     ContainerType = "consensus_layer"
	ContainerType_ConsensusValidator ContainerType = "consensus_validator"
	ContainerType_GenesisGenerator   ContainerType = "genesis_generator"
	ContainerType_ValKeysGenerator   ContainerType = "val_keys_generator"
)

type EnvComponent

type EnvComponent struct {
	ContainerName      string               `json:"containerName"`
	ContainerImage     string               `json:"containerImage"`
	ContainerVersion   string               `json:"containerVersion"`
	ContainerEnvs      map[string]string    `json:"containerEnvs"`
	WasRecreated       bool                 `json:"wasRecreated"`
	Networks           []string             `json:"networks"`
	Container          tc.Container         `json:"-"`
	LogStream          *logstream.LogStream `json:"-"`
	PostStartsHooks    []tc.ContainerHook   `json:"-"`
	PostStopsHooks     []tc.ContainerHook   `json:"-"`
	PreTerminatesHooks []tc.ContainerHook   `json:"-"`
}

func (EnvComponent) ChaosNetworkDelay added in v1.18.5

func (ec EnvComponent) ChaosNetworkDelay(
	l zerolog.Logger,
	duration time.Duration,
	delay time.Duration,
	targetInterfaceName string,
	targetIPs []string,
	targetIngressPorts []string,
	targetEgressPorts []string,
) error

ChaosNetworkDelay delays the container's network traffic for the specified duration

func (EnvComponent) ChaosNetworkLoss added in v1.18.5

func (ec EnvComponent) ChaosNetworkLoss(
	l zerolog.Logger,
	duration time.Duration,
	lossPercentage int,
	targetInterfaceName string,
	targetIPs []string,
	targetIngressPorts []string,
	targetEgressPorts []string,
) error

ChaosNetworkLoss causes the container to lose the specified percentage of network traffic for the specified duration

func (EnvComponent) ChaosPause added in v1.18.5

func (ec EnvComponent) ChaosPause(
	l zerolog.Logger,
	duration time.Duration,
) error

ChaosPause pauses the container for the specified duration

func (*EnvComponent) GetImageWithVersion added in v1.23.0

func (ec *EnvComponent) GetImageWithVersion() string

func (*EnvComponent) SetDefaultHooks added in v1.22.5

func (ec *EnvComponent) SetDefaultHooks()

type EnvComponentOption

type EnvComponentOption = func(c *EnvComponent)

func WithContainerImageWithVersion added in v1.23.0

func WithContainerImageWithVersion(imageWithVersion string) EnvComponentOption

func WithContainerName

func WithContainerName(name string) EnvComponentOption

func WithLogStream added in v1.22.5

func WithLogStream(ls *logstream.LogStream) EnvComponentOption

func WithPostStartsHooks added in v1.22.5

func WithPostStartsHooks(hooks ...tc.ContainerHook) EnvComponentOption

func WithPostStopsHooks added in v1.22.5

func WithPostStopsHooks(hooks ...tc.ContainerHook) EnvComponentOption

func WithPreTerminatesHooks added in v1.22.5

func WithPreTerminatesHooks(hooks ...tc.ContainerHook) EnvComponentOption

type Erigon added in v1.22.0

type Erigon struct {
	EnvComponent
	ExternalHttpUrl      string
	InternalHttpUrl      string
	ExternalWsUrl        string
	InternalWsUrl        string
	InternalExecutionURL string
	ExternalExecutionURL string
	// contains filtered or unexported fields
}

func NewErigonEth1 added in v1.27.0

func NewErigonEth1(networks []string, chainConfig *EthereumChainConfig, opts ...EnvComponentOption) (*Erigon, error)

NewErigonEth1 starts a new Erigon Eth1 node running in Docker

func NewErigonEth2 added in v1.27.0

func NewErigonEth2(networks []string, chainConfig *EthereumChainConfig, generatedDataHostDir string, consensusLayer ConsensusLayer, opts ...EnvComponentOption) (*Erigon, error)

NewErigonEth2 starts a new Erigon Eth2 node running in Docker

func (*Erigon) GetContainer added in v1.22.0

func (g *Erigon) GetContainer() *tc.Container

func (*Erigon) GetContainerName added in v1.22.0

func (g *Erigon) GetContainerName() string

func (*Erigon) GetEthereumVersion added in v1.27.0

func (g *Erigon) GetEthereumVersion() EthereumVersion

func (*Erigon) GetExternalExecutionURL added in v1.22.0

func (g *Erigon) GetExternalExecutionURL() string

func (*Erigon) GetExternalHttpUrl added in v1.22.0

func (g *Erigon) GetExternalHttpUrl() string

func (*Erigon) GetExternalWsUrl added in v1.22.0

func (g *Erigon) GetExternalWsUrl() string

func (*Erigon) GetInternalExecutionURL added in v1.22.0

func (g *Erigon) GetInternalExecutionURL() string

func (*Erigon) GetInternalHttpUrl added in v1.22.0

func (g *Erigon) GetInternalHttpUrl() string

func (*Erigon) GetInternalWsUrl added in v1.22.0

func (g *Erigon) GetInternalWsUrl() string

func (*Erigon) GethConsensusMechanism added in v1.27.0

func (g *Erigon) GethConsensusMechanism() ConsensusMechanism

func (*Erigon) StartContainer added in v1.22.0

func (g *Erigon) StartContainer() (blockchain.EVMNetwork, error)

func (*Erigon) WaitUntilChainIsReady added in v1.22.0

func (g *Erigon) WaitUntilChainIsReady(ctx context.Context, waitTime time.Duration) error

func (*Erigon) WithTestInstance added in v1.22.0

func (g *Erigon) WithTestInstance(t *testing.T) ExecutionClient

type EthGenesisGeneretor added in v1.22.0

type EthGenesisGeneretor struct {
	EnvComponent
	// contains filtered or unexported fields
}

func NewEthGenesisGenerator added in v1.22.0

func NewEthGenesisGenerator(chainConfig EthereumChainConfig, generatedDataHostDir string, opts ...EnvComponentOption) (*EthGenesisGeneretor, error)

func (*EthGenesisGeneretor) StartContainer added in v1.22.0

func (g *EthGenesisGeneretor) StartContainer() error

func (*EthGenesisGeneretor) WithTestInstance added in v1.22.0

func (g *EthGenesisGeneretor) WithTestInstance(t *testing.T) *EthGenesisGeneretor

type EthereumChainConfig added in v1.22.0

type EthereumChainConfig struct {
	SecondsPerSlot int `json:"seconds_per_slot" toml:"seconds_per_slot"`
	SlotsPerEpoch  int `json:"slots_per_epoch" toml:"slots_per_epoch"`
	GenesisDelay   int `json:"genesis_delay" toml:"genesis_delay"`
	ValidatorCount int `json:"validator_count" toml:"validator_count"`
	ChainID        int `json:"chain_id" toml:"chain_id"`

	AddressesToFund []string       `json:"addresses_to_fund" toml:"addresses_to_fund"`
	HardForkEpochs  map[string]int `json:"HardForkEpochs" toml:"HardForkEpochs"`
	// contains filtered or unexported fields
}

func GetDefaultChainConfig added in v1.22.0

func GetDefaultChainConfig() EthereumChainConfig

func (*EthereumChainConfig) ApplyOverrides added in v1.23.0

func (c *EthereumChainConfig) ApplyOverrides(from *EthereumChainConfig) error

func (*EthereumChainConfig) Default added in v1.23.0

func (c *EthereumChainConfig) Default() error

func (*EthereumChainConfig) GenerateGenesisTimestamp added in v1.22.0

func (c *EthereumChainConfig) GenerateGenesisTimestamp()

func (*EthereumChainConfig) GetDefaultFinalizationWaitDuration added in v1.22.0

func (c *EthereumChainConfig) GetDefaultFinalizationWaitDuration() time.Duration

func (*EthereumChainConfig) GetDefaultWaitDuration added in v1.22.0

func (c *EthereumChainConfig) GetDefaultWaitDuration() time.Duration

func (*EthereumChainConfig) GetValidatorBasedGenesisDelay added in v1.22.0

func (c *EthereumChainConfig) GetValidatorBasedGenesisDelay() int

func (*EthereumChainConfig) Validate added in v1.22.0

func (c *EthereumChainConfig) Validate(logger zerolog.Logger, ethereumVersion *EthereumVersion) error

func (*EthereumChainConfig) ValidateHardForks added in v1.24.2

func (c *EthereumChainConfig) ValidateHardForks() error

type EthereumNetwork added in v1.18.6

type EthereumNetwork struct {
	ConsensusType        *EthereumVersion          `toml:"consensus_type"`
	EthereumVersion      *EthereumVersion          `toml:"ethereum_version"`
	ConsensusLayer       *ConsensusLayer           `toml:"consensus_layer"`
	ExecutionLayer       *ExecutionLayer           `toml:"execution_layer"`
	DockerNetworkNames   []string                  `toml:"docker_network_names"`
	Containers           EthereumNetworkContainers `toml:"containers"`
	WaitForFinalization  *bool                     `toml:"wait_for_finalization"`
	GeneratedDataHostDir *string                   `toml:"generated_data_host_dir"`
	ValKeysDir           *string                   `toml:"val_keys_dir"`
	EthereumChainConfig  *EthereumChainConfig      `toml:"EthereumChainConfig"`
	CustomDockerImages   map[ContainerType]string  `toml:"CustomDockerImages"`
	// contains filtered or unexported fields
}

func NewPrivateChainEnvConfigFromFile added in v1.22.0

func NewPrivateChainEnvConfigFromFile(path string) (EthereumNetwork, error)

func (*EthereumNetwork) ApplyOverrides added in v1.23.0

func (en *EthereumNetwork) ApplyOverrides(from *EthereumNetwork) error

func (*EthereumNetwork) Describe added in v1.18.6

func (en *EthereumNetwork) Describe() string

func (*EthereumNetwork) Save added in v1.22.0

func (en *EthereumNetwork) Save() error

func (*EthereumNetwork) Start added in v1.18.6

func (*EthereumNetwork) Validate added in v1.23.0

func (en *EthereumNetwork) Validate() error

type EthereumNetworkBuilder added in v1.18.6

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

func NewEthereumNetworkBuilder added in v1.18.6

func NewEthereumNetworkBuilder() EthereumNetworkBuilder

func (*EthereumNetworkBuilder) Build added in v1.18.6

func (*EthereumNetworkBuilder) WihtExistingConfigFromEnvVar added in v1.22.0

func (b *EthereumNetworkBuilder) WihtExistingConfigFromEnvVar() *EthereumNetworkBuilder

func (*EthereumNetworkBuilder) WithConsensusLayer added in v1.18.6

func (b *EthereumNetworkBuilder) WithConsensusLayer(consensusLayer ConsensusLayer) *EthereumNetworkBuilder

func (*EthereumNetworkBuilder) WithConsensusType added in v1.18.6

func (b *EthereumNetworkBuilder) WithConsensusType(consensusType ConsensusType) *EthereumNetworkBuilder

WithConsensusType sets the consensus type for the network Deprecated: use WithEthereumVersion() instead

func (*EthereumNetworkBuilder) WithCustomDockerImages added in v1.23.0

func (b *EthereumNetworkBuilder) WithCustomDockerImages(newImages map[ContainerType]string) *EthereumNetworkBuilder

func (*EthereumNetworkBuilder) WithDockerNetworks added in v1.18.6

func (b *EthereumNetworkBuilder) WithDockerNetworks(networks []string) *EthereumNetworkBuilder

func (*EthereumNetworkBuilder) WithEthereumChainConfig added in v1.22.0

func (b *EthereumNetworkBuilder) WithEthereumChainConfig(config EthereumChainConfig) *EthereumNetworkBuilder

func (*EthereumNetworkBuilder) WithEthereumVersion added in v1.27.0

func (b *EthereumNetworkBuilder) WithEthereumVersion(ethereumVersion EthereumVersion) *EthereumNetworkBuilder

func (*EthereumNetworkBuilder) WithExecutionLayer added in v1.18.6

func (b *EthereumNetworkBuilder) WithExecutionLayer(executionLayer ExecutionLayer) *EthereumNetworkBuilder

func (*EthereumNetworkBuilder) WithExistingConfig added in v1.18.6

func (b *EthereumNetworkBuilder) WithExistingConfig(config EthereumNetwork) *EthereumNetworkBuilder

func (*EthereumNetworkBuilder) WithLogStream added in v1.28.1

func (*EthereumNetworkBuilder) WithTest added in v1.18.6

func (*EthereumNetworkBuilder) WithWaitingForFinalization added in v1.22.0

func (b *EthereumNetworkBuilder) WithWaitingForFinalization() *EthereumNetworkBuilder

type EthereumNetworkContainer added in v1.18.6

type EthereumNetworkContainer struct {
	ContainerName string        `toml:"container_name"`
	ContainerType ContainerType `toml:"container_type"`
	Container     *tc.Container `toml:"-"`
}

type EthereumNetworkContainers added in v1.18.6

type EthereumNetworkContainers []EthereumNetworkContainer

type EthereumVersion added in v1.27.0

type EthereumVersion string
const (
	EthereumVersion_Eth2 EthereumVersion = "eth2"
	// Deprecated: use EthereumVersion_Eth2 instead
	EthereumVersion_Eth2_Legacy EthereumVersion = "pos"
	EthereumVersion_Eth1        EthereumVersion = "eth1"
	// Deprecated: use EthereumVersion_Eth1 instead
	EthereumVersion_Eth1_Legacy EthereumVersion = "pow"
)

func GetEthereumVersionFromImage added in v1.27.0

func GetEthereumVersionFromImage(executionLayer ExecutionLayer, imageWithVersion string) (EthereumVersion, error)

GetEthereumVersionFromImage returns the consensus type based on the Docker image version

type ExecutionClient added in v1.22.0

type ExecutionClient interface {
	GetContainerName() string
	StartContainer() (blockchain.EVMNetwork, error)
	GetContainer() *tc.Container
	GetInternalExecutionURL() string
	GetExternalExecutionURL() string
	GetInternalHttpUrl() string
	GetInternalWsUrl() string
	GetExternalHttpUrl() string
	GetExternalWsUrl() string
	GetEthereumVersion() EthereumVersion
	GethConsensusMechanism() ConsensusMechanism
	WaitUntilChainIsReady(ctx context.Context, waitTime time.Duration) error
	WithTestInstance(t *testing.T) ExecutionClient
}

type ExecutionLayer added in v1.18.6

type ExecutionLayer string
const (
	ExecutionLayer_Geth       ExecutionLayer = "geth"
	ExecutionLayer_Nethermind ExecutionLayer = "nethermind"
	ExecutionLayer_Erigon     ExecutionLayer = "erigon"
	ExecutionLayer_Besu       ExecutionLayer = "besu"
)

func GetExecutionLayerFromDockerImage added in v1.27.0

func GetExecutionLayerFromDockerImage(imageWithVersion string) (ExecutionLayer, error)

GetExecutionLayerFromDockerImage returns the execution layer based on the Docker image

type ExitCodeStrategy added in v1.22.0

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

func NewExitCodeStrategy added in v1.22.0

func NewExitCodeStrategy() *ExitCodeStrategy

func (*ExitCodeStrategy) WaitUntilReady added in v1.22.0

func (w *ExitCodeStrategy) WaitUntilReady(ctx context.Context, target tcwait.StrategyTarget) (err error)

WaitUntilReady implements Strategy.WaitUntilReady

func (*ExitCodeStrategy) WithExitCode added in v1.22.0

func (w *ExitCodeStrategy) WithExitCode(exitCode int) *ExitCodeStrategy

func (*ExitCodeStrategy) WithPollInterval added in v1.22.0

func (w *ExitCodeStrategy) WithPollInterval(pollInterval time.Duration) *ExitCodeStrategy

func (*ExitCodeStrategy) WithTimeout added in v1.22.0

func (w *ExitCodeStrategy) WithTimeout(timeout time.Duration) *ExitCodeStrategy

type Geth added in v1.16.1

type Geth struct {
	EnvComponent
	ExternalHttpUrl      string
	InternalHttpUrl      string
	ExternalWsUrl        string
	InternalWsUrl        string
	InternalExecutionURL string
	ExternalExecutionURL string
	// contains filtered or unexported fields
}

func NewGethEth1 added in v1.27.0

func NewGethEth1(networks []string, chainConfig *EthereumChainConfig, opts ...EnvComponentOption) *Geth

NewGethEth1 starts a new Geth Eth1 node running in Docker

func NewGethEth2 added in v1.27.0

func NewGethEth2(networks []string, chainConfig *EthereumChainConfig, generatedDataHostDir string, consensusLayer ConsensusLayer, opts ...EnvComponentOption) (*Geth, error)

NewGethEth2 starts a new Geth Eth2 node running in Docker

func (*Geth) GetContainer added in v1.27.0

func (g *Geth) GetContainer() *tc.Container

func (*Geth) GetContainerName added in v1.27.0

func (g *Geth) GetContainerName() string

func (*Geth) GetEthereumVersion added in v1.27.0

func (g *Geth) GetEthereumVersion() EthereumVersion

func (*Geth) GetExternalExecutionURL added in v1.27.0

func (g *Geth) GetExternalExecutionURL() string

func (*Geth) GetExternalHttpUrl added in v1.27.0

func (g *Geth) GetExternalHttpUrl() string

func (*Geth) GetExternalWsUrl added in v1.27.0

func (g *Geth) GetExternalWsUrl() string

func (*Geth) GetInternalExecutionURL added in v1.27.0

func (g *Geth) GetInternalExecutionURL() string

func (*Geth) GetInternalHttpUrl added in v1.27.0

func (g *Geth) GetInternalHttpUrl() string

func (*Geth) GetInternalWsUrl added in v1.27.0

func (g *Geth) GetInternalWsUrl() string

func (*Geth) GethConsensusMechanism added in v1.27.0

func (g *Geth) GethConsensusMechanism() ConsensusMechanism

func (*Geth) StartContainer added in v1.16.1

func (g *Geth) StartContainer() (blockchain.EVMNetwork, error)

func (*Geth) WaitUntilChainIsReady added in v1.27.0

func (g *Geth) WaitUntilChainIsReady(ctx context.Context, waitTime time.Duration) error

func (*Geth) WithTestInstance added in v1.22.0

func (g *Geth) WithTestInstance(t *testing.T) ExecutionClient

type HTTPStrategy added in v1.17.11

type HTTPStrategy struct {
	Path               string
	Port               nat.Port
	RetryDelay         time.Duration
	ExpectedStatusCode int
	// contains filtered or unexported fields
}

func NewHTTPStrategy added in v1.17.11

func NewHTTPStrategy(path string, port nat.Port) *HTTPStrategy

func (*HTTPStrategy) WaitUntilReady added in v1.17.11

func (w *HTTPStrategy) WaitUntilReady(ctx context.Context, target tcwait.StrategyTarget) (err error)

WaitUntilReady implements Strategy.WaitUntilReady

func (*HTTPStrategy) WithStatusCode added in v1.17.11

func (w *HTTPStrategy) WithStatusCode(statusCode int) *HTTPStrategy

func (*HTTPStrategy) WithTimeout added in v1.17.11

func (w *HTTPStrategy) WithTimeout(timeout time.Duration) *HTTPStrategy

type Kafka added in v1.17.11

type Kafka struct {
	EnvComponent
	TopicConfigs       []KafkaTopicConfig
	EnvVars            map[string]string
	BootstrapServerUrl string
	InternalUrl        string
	ExternalUrl        string
	// contains filtered or unexported fields
}

func NewKafka added in v1.17.11

func NewKafka(networks []string) *Kafka

func (*Kafka) CreateLocalTopics added in v1.17.11

func (k *Kafka) CreateLocalTopics() error

func (*Kafka) StartContainer added in v1.17.11

func (k *Kafka) StartContainer() error

func (*Kafka) WithContainerName added in v1.17.11

func (k *Kafka) WithContainerName(name string) *Kafka

func (*Kafka) WithEnvVars added in v1.17.11

func (k *Kafka) WithEnvVars(envVars map[string]string) *Kafka

func (*Kafka) WithTestInstance added in v1.22.0

func (k *Kafka) WithTestInstance(t *testing.T) *Kafka

func (*Kafka) WithTopics added in v1.17.11

func (k *Kafka) WithTopics(topics []KafkaTopicConfig) *Kafka

func (*Kafka) WithZookeeper added in v1.17.11

func (k *Kafka) WithZookeeper(zookeeperUrl string) *Kafka

type KafkaTopicConfig added in v1.17.11

type KafkaTopicConfig struct {
	TopicName     string `json:"topic_name"`
	Partitions    int    `json:"partitions"`
	Replication   int    `json:"replication"`
	CleanupPolicy string `json:"cleanup_policy"`
}

type Killgrave added in v1.17.5

type Killgrave struct {
	EnvComponent
	ExternalEndpoint string
	InternalPort     string
	InternalEndpoint string
	// contains filtered or unexported fields
}

func NewKillgrave added in v1.17.5

func NewKillgrave(networks []string, impostersDirectoryPath string, opts ...EnvComponentOption) *Killgrave

func (*Killgrave) AddImposter added in v1.17.5

func (k *Killgrave) AddImposter(imposters []KillgraveImposter) error

AddImposter adds an imposter to the killgrave container

func (*Killgrave) SetAdapterBasedAnyValuePath added in v1.17.5

func (k *Killgrave) SetAdapterBasedAnyValuePath(path string, methods []string, v interface{}) error

SetAdapterBasedAnyValuePath sets a path to return a value as though it was from an adapter

func (*Killgrave) SetAdapterBasedIntValuePath added in v1.17.5

func (k *Killgrave) SetAdapterBasedIntValuePath(path string, methods []string, v int) error

SetAdapterBasedAnyValuePathObject sets a path to return a value as though it was from an adapter

func (*Killgrave) SetAnyValueResponse added in v1.22.7

func (k *Killgrave) SetAnyValueResponse(path string, methods []string, v interface{}) error

func (*Killgrave) SetStringValuePath added in v1.17.5

func (k *Killgrave) SetStringValuePath(path string, methods []string, headers map[string]string, v string) error

SetStringValuePath sets a path to return a string value

func (*Killgrave) StartContainer added in v1.17.5

func (k *Killgrave) StartContainer() error

func (*Killgrave) WithTestInstance added in v1.22.0

func (k *Killgrave) WithTestInstance(t *testing.T) *Killgrave

type KillgraveAdapterResponse added in v1.17.5

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

AdapterResponse represents a response from an adapter

type KillgraveAdapterResult added in v1.17.5

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

AdapterResult represents an int result for an adapter

type KillgraveImposter added in v1.17.5

type KillgraveImposter struct {
	Request  KillgraveRequest  `json:"request"`
	Response KillgraveResponse `json:"response"`
}

Imposter define an imposter structure

type KillgraveRequest added in v1.17.5

type KillgraveRequest struct {
	Method     string             `json:"method"`
	Endpoint   string             `json:"endpoint,omitempty"`
	SchemaFile *string            `json:"schemaFile,omitempty"`
	Params     *map[string]string `json:"params,omitempty"`
	Headers    *map[string]string `json:"headers"`
}

type KillgraveResponse added in v1.17.5

type KillgraveResponse struct {
	Status   int                     `json:"status"`
	Body     string                  `json:"body,omitempty"`
	BodyFile *string                 `json:"bodyFile,omitempty"`
	Headers  *map[string]string      `json:"headers,omitempty"`
	Delay    *KillgraveResponseDelay `json:"delay,omitempty"`
}

Response represent the structure of real response

type KillgraveResponseDelay added in v1.17.5

type KillgraveResponseDelay struct {
	Delay  int64 `json:"delay,omitempty"`
	Offset int64 `json:"offset,omitempty"`
}

ResponseDelay represent time delay before server responds.

type MockServer added in v1.16.1

type MockServer struct {
	EnvComponent
	Client           *ctfClient.MockserverClient
	Endpoint         string
	InternalEndpoint string
	EAMockUrls       []*url.URL
	// contains filtered or unexported fields
}

func NewMockServer added in v1.16.1

func NewMockServer(networks []string, opts ...EnvComponentOption) *MockServer

func (*MockServer) SetExternalAdapterMocks added in v1.16.1

func (ms *MockServer) SetExternalAdapterMocks(count int) error

func (*MockServer) StartContainer added in v1.16.1

func (ms *MockServer) StartContainer() error

func (*MockServer) WithTestInstance added in v1.22.0

func (ms *MockServer) WithTestInstance(t *testing.T) *MockServer

type Nethermind added in v1.22.0

type Nethermind struct {
	EnvComponent
	ExternalHttpUrl      string
	InternalHttpUrl      string
	ExternalWsUrl        string
	InternalWsUrl        string
	InternalExecutionURL string
	ExternalExecutionURL string
	// contains filtered or unexported fields
}

func NewNethermindEth1 added in v1.27.0

func NewNethermindEth1(networks []string, chainConfig *EthereumChainConfig, opts ...EnvComponentOption) (*Nethermind, error)

NewNethermindEth1 starts a new Nethermin Eth1 node running in Docker

func NewNethermindEth2 added in v1.27.0

func NewNethermindEth2(networks []string, generatedDataHostDir string, consensusLayer ConsensusLayer, opts ...EnvComponentOption) (*Nethermind, error)

NewNethermindEth2 starts a new Nethermin Eth2 node running in Docker

func (*Nethermind) GetContainer added in v1.22.0

func (g *Nethermind) GetContainer() *tc.Container

func (*Nethermind) GetContainerName added in v1.22.0

func (g *Nethermind) GetContainerName() string

func (*Nethermind) GetEthereumVersion added in v1.27.0

func (g *Nethermind) GetEthereumVersion() EthereumVersion

func (*Nethermind) GetExternalExecutionURL added in v1.22.0

func (g *Nethermind) GetExternalExecutionURL() string

func (*Nethermind) GetExternalHttpUrl added in v1.22.0

func (g *Nethermind) GetExternalHttpUrl() string

func (*Nethermind) GetExternalWsUrl added in v1.22.0

func (g *Nethermind) GetExternalWsUrl() string

func (*Nethermind) GetInternalExecutionURL added in v1.22.0

func (g *Nethermind) GetInternalExecutionURL() string

func (*Nethermind) GetInternalHttpUrl added in v1.22.0

func (g *Nethermind) GetInternalHttpUrl() string

func (*Nethermind) GetInternalWsUrl added in v1.22.0

func (g *Nethermind) GetInternalWsUrl() string

func (*Nethermind) GethConsensusMechanism added in v1.27.0

func (g *Nethermind) GethConsensusMechanism() ConsensusMechanism

func (*Nethermind) StartContainer added in v1.22.0

func (g *Nethermind) StartContainer() (blockchain.EVMNetwork, error)

func (*Nethermind) WaitUntilChainIsReady added in v1.22.0

func (g *Nethermind) WaitUntilChainIsReady(ctx context.Context, waitTime time.Duration) error

func (*Nethermind) WithTestInstance added in v1.22.0

func (g *Nethermind) WithTestInstance(t *testing.T) ExecutionClient

type PostgresDb added in v1.16.1

type PostgresDb struct {
	EnvComponent
	User         string   `json:"user"`
	Password     string   `json:"password"`
	DbName       string   `json:"dbName"`
	InternalPort string   `json:"internalPort"`
	ExternalPort string   `json:"-"`
	InternalURL  *url.URL `json:"-"`
	ExternalURL  *url.URL `json:"-"`
	// contains filtered or unexported fields
}

func NewPostgresDb added in v1.16.1

func NewPostgresDb(networks []string, opts ...PostgresDbOption) (*PostgresDb, error)

func (*PostgresDb) ExecPgDump added in v1.17.9

func (pg *PostgresDb) ExecPgDump(stdout io.Writer) error

func (*PostgresDb) RestartContainer added in v1.27.0

func (pg *PostgresDb) RestartContainer() error

func (*PostgresDb) StartContainer added in v1.16.1

func (pg *PostgresDb) StartContainer() error

func (*PostgresDb) WithTestInstance added in v1.22.0

func (pg *PostgresDb) WithTestInstance(t *testing.T) *PostgresDb

type PostgresDbOption added in v1.16.1

type PostgresDbOption = func(c *PostgresDb)

func WithContainerEnv added in v1.18.6

func WithContainerEnv(key, value string) PostgresDbOption

func WithPostgresDbContainerName added in v1.16.1

func WithPostgresDbContainerName(name string) PostgresDbOption

Sets custom container name if name is not empty

func WithPostgresDbName added in v1.17.9

func WithPostgresDbName(name string) PostgresDbOption

func WithPostgresImageName added in v1.18.6

func WithPostgresImageName(imageName string) PostgresDbOption

func WithPostgresImageVersion added in v1.17.8

func WithPostgresImageVersion(version string) PostgresDbOption

type PrysmBeaconChain added in v1.18.6

type PrysmBeaconChain struct {
	EnvComponent
	InternalBeaconRpcProvider string
	InternalQueryRpcUrl       string
	ExternalBeaconRpcProvider string
	ExternalQueryRpcUrl       string
	// contains filtered or unexported fields
}

func NewPrysmBeaconChain added in v1.18.6

func NewPrysmBeaconChain(networks []string, chainConfig *EthereumChainConfig, customConfigDataDir, gethExecutionURL string, opts ...EnvComponentOption) (*PrysmBeaconChain, error)

func (*PrysmBeaconChain) StartContainer added in v1.18.6

func (g *PrysmBeaconChain) StartContainer() error

func (*PrysmBeaconChain) WithTestInstance added in v1.22.0

func (g *PrysmBeaconChain) WithTestInstance(t *testing.T) *PrysmBeaconChain

type PrysmValidator added in v1.18.6

type PrysmValidator struct {
	EnvComponent
	// contains filtered or unexported fields
}

func NewPrysmValidator added in v1.18.6

func NewPrysmValidator(networks []string, chainConfig *EthereumChainConfig, generatedDataHostDir, valKeysDir, internalBeaconRpcProvider string, opts ...EnvComponentOption) (*PrysmValidator, error)

func (*PrysmValidator) StartContainer added in v1.18.6

func (g *PrysmValidator) StartContainer() error

func (*PrysmValidator) WithTestInstance added in v1.22.0

func (g *PrysmValidator) WithTestInstance(t *testing.T) *PrysmValidator

type RpcProvider added in v1.18.6

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

RpcProvider holds all necessary URLs to connect to a simulated chain or a real RPC provider connected to a live chain maybe only store ports here and depending on where the test is executed return different URLs? maybe 3 different constructors for each "perspective"? (docker, k8s with local runner, k8s with remote runner)

func NewRPCProvider added in v1.27.6

func NewRPCProvider(
	privateHttpUrls,
	privateWsUrls,
	publiclHttpUrls,
	publicWsUrls []string,
) RpcProvider

NewRPCProvider creates a new RpcProvider, and should only be used for custom network connections e.g. to a live testnet chain

func (*RpcProvider) PrivateHttpUrls added in v1.18.6

func (s *RpcProvider) PrivateHttpUrls() []string

func (*RpcProvider) PrivateWsUrsl added in v1.18.6

func (s *RpcProvider) PrivateWsUrsl() []string

func (*RpcProvider) PublicHttpUrls added in v1.18.6

func (s *RpcProvider) PublicHttpUrls() []string

func (*RpcProvider) PublicWsUrls added in v1.19.0

func (s *RpcProvider) PublicWsUrls() []string

type SchemaRegistry added in v1.17.11

type SchemaRegistry struct {
	EnvComponent
	EnvVars     map[string]string
	InternalUrl string
	ExternalUrl string
	// contains filtered or unexported fields
}

func NewSchemaRegistry added in v1.17.11

func NewSchemaRegistry(networks []string) *SchemaRegistry

func (*SchemaRegistry) StartContainer added in v1.17.11

func (r *SchemaRegistry) StartContainer() error

func (*SchemaRegistry) WithContainerName added in v1.17.11

func (r *SchemaRegistry) WithContainerName(name string) *SchemaRegistry

func (*SchemaRegistry) WithEnvVars added in v1.17.11

func (r *SchemaRegistry) WithEnvVars(envVars map[string]string) *SchemaRegistry

func (*SchemaRegistry) WithKafka added in v1.17.11

func (r *SchemaRegistry) WithKafka(kafkaUrl string) *SchemaRegistry

func (*SchemaRegistry) WithTestInstance added in v1.22.0

func (r *SchemaRegistry) WithTestInstance(t *testing.T) *SchemaRegistry

type UnsupportedVersion added in v1.27.0

type UnsupportedVersion struct {
	DockerImage string
	Reason      string
}

type ValKeysGenerator added in v1.27.0

type ValKeysGenerator struct {
	EnvComponent
	// contains filtered or unexported fields
}

func NewValKeysGeneretor added in v1.22.0

func NewValKeysGeneretor(chainConfig *EthereumChainConfig, valKeysHostDataDir string, opts ...EnvComponentOption) (*ValKeysGenerator, error)

func (*ValKeysGenerator) StartContainer added in v1.27.0

func (g *ValKeysGenerator) StartContainer() error

func (*ValKeysGenerator) WithTestInstance added in v1.27.0

func (g *ValKeysGenerator) WithTestInstance(t *testing.T) *ValKeysGenerator

type WebSocketStrategy added in v1.16.1

type WebSocketStrategy struct {
	Port       nat.Port
	RetryDelay time.Duration
	// contains filtered or unexported fields
}

func NewWebSocketStrategy added in v1.16.1

func NewWebSocketStrategy(port nat.Port, l zerolog.Logger) *WebSocketStrategy

func (*WebSocketStrategy) WaitUntilReady added in v1.16.1

func (w *WebSocketStrategy) WaitUntilReady(ctx context.Context, target tcwait.StrategyTarget) (err error)

func (*WebSocketStrategy) WithTimeout added in v1.16.2

func (w *WebSocketStrategy) WithTimeout(timeout time.Duration) *WebSocketStrategy

type Zookeeper added in v1.17.11

type Zookeeper struct {
	EnvComponent
	InternalUrl string
	// contains filtered or unexported fields
}

func NewZookeeper added in v1.17.11

func NewZookeeper(networks []string) *Zookeeper

func (*Zookeeper) StartContainer added in v1.17.11

func (z *Zookeeper) StartContainer() error

func (*Zookeeper) WithContainerName added in v1.17.11

func (z *Zookeeper) WithContainerName(name string) *Zookeeper

func (*Zookeeper) WithTestInstance added in v1.22.0

func (z *Zookeeper) WithTestInstance(t *testing.T) *Zookeeper

Directories

Path Synopsis
cmd

Jump to

Keyboard shortcuts

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