test_env

package
v0.0.0-...-ec710b4 Latest Latest
Warning

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

Go to latest
Published: Feb 27, 2024 License: MIT Imports: 44 Imported by: 0

Documentation

Index

Constants

View Source
const (
	CONFIG_ENV_VAR_NAME      = "PRIVATE_ETHEREUM_NETWORK_CONFIG_PATH"
	EXEC_CLIENT_ENV_VAR_NAME = "ETH2_EL_CLIENT"
)
View Source
const (
	// RootFundingAddr is the static key that hardhat is using
	// https://hardhat.org/hardhat-runner/docs/getting-started
	// if you need more keys, keep them compatible, so we can swap Geth to Ganache/Hardhat in the future
	RootFundingAddr   = `0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266`
	RootFundingWallet = `` /* 491-byte string literal not displayed */

	TX_GETH_HTTP_PORT = "8544"
	TX_GETH_WS_PORT   = "8545"
)
View Source
const (
	TX_NON_DEV_GETH_WS_PORT = "8546"
	BOOTNODE_PORT           = "30301"
)
View Source
const (
	PRYSM_QUERY_RPC_PORT = "3500"
	PRYSM_NODE_RPC_PORT  = "4000"
)
View Source
const (
	BESU_IMAGE = "hyperledger/besu"
)
View Source
const (
	BaseCMD = `docker run -i --rm -v /var/run/docker.sock:/var/run/docker.sock --network %s gaiaadm/pumba --log-level=info`
)

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 (
	ErrMissingConsensusType     = errors.New("consensus type 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}`,
	}
)

Functions

func FormatHttpUrl

func FormatHttpUrl(host string, port string) string

func FormatWsUrl

func FormatWsUrl(host string, port string) string

func GetEndpoint

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 GetHost

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 NatPort

func NatPort(port string) nat.Port

func NatPortFormat

func NatPortFormat(port string) string

Types

type AfterGenesisHelper

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

func NewInitHelper

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

func (*AfterGenesisHelper) StartContainer

func (g *AfterGenesisHelper) StartContainer() error

func (*AfterGenesisHelper) WithTestInstance

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

type Besu

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

func NewBesu

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

func (*Besu) GetContainer

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

func (*Besu) GetContainerName

func (g *Besu) GetContainerName() string

func (*Besu) GetContainerType

func (g *Besu) GetContainerType() ContainerType

func (*Besu) GetExternalExecutionURL

func (g *Besu) GetExternalExecutionURL() string

func (*Besu) GetExternalHttpUrl

func (g *Besu) GetExternalHttpUrl() string

func (*Besu) GetExternalWsUrl

func (g *Besu) GetExternalWsUrl() string

func (*Besu) GetInternalExecutionURL

func (g *Besu) GetInternalExecutionURL() string

func (*Besu) GetInternalHttpUrl

func (g *Besu) GetInternalHttpUrl() string

func (*Besu) GetInternalWsUrl

func (g *Besu) GetInternalWsUrl() string

func (*Besu) StartContainer

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

func (*Besu) WaitUntilChainIsReady

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

func (*Besu) WithTestInstance

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

type ConsensusLayer

type ConsensusLayer string
const (
	ConsensusLayer_Prysm ConsensusLayer = "prysm"
)

type ConsensusType

type ConsensusType string
const (
	ConsensusType_PoS ConsensusType = "pos"
	ConsensusType_PoW ConsensusType = "pow"
)

type ContainerType

type ContainerType string
const (
	ContainerType_Geth             ContainerType = "geth"
	ContainerType_Erigon           ContainerType = "erigon"
	ContainerType_Besu             ContainerType = "besu"
	ContainerType_Nethermind       ContainerType = "nethermind"
	ContainerType_PrysmBeacon      ContainerType = "prysm-beacon"
	ContainerType_PrysmVal         ContainerType = "prysm-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"`
	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

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

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

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

ChaosPause pauses the container for the specified duration

func (*EnvComponent) GetImageWithVersion

func (ec *EnvComponent) GetImageWithVersion() string

func (*EnvComponent) SetDefaultHooks

func (ec *EnvComponent) SetDefaultHooks()

type EnvComponentOption

type EnvComponentOption = func(c *EnvComponent)

func WithContainerImageWithVersion

func WithContainerImageWithVersion(imageWithVersion string) EnvComponentOption

func WithContainerName

func WithContainerName(name string) EnvComponentOption

func WithLogStream

func WithLogStream(ls *logstream.LogStream) EnvComponentOption

func WithPostStartsHooks

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

func WithPostStopsHooks

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

func WithPreTerminatesHooks

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

type Erigon

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

func NewErigon

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

func (*Erigon) GetContainer

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

func (*Erigon) GetContainerName

func (g *Erigon) GetContainerName() string

func (*Erigon) GetContainerType

func (g *Erigon) GetContainerType() ContainerType

func (*Erigon) GetExternalExecutionURL

func (g *Erigon) GetExternalExecutionURL() string

func (*Erigon) GetExternalHttpUrl

func (g *Erigon) GetExternalHttpUrl() string

func (*Erigon) GetExternalWsUrl

func (g *Erigon) GetExternalWsUrl() string

func (*Erigon) GetInternalExecutionURL

func (g *Erigon) GetInternalExecutionURL() string

func (*Erigon) GetInternalHttpUrl

func (g *Erigon) GetInternalHttpUrl() string

func (*Erigon) GetInternalWsUrl

func (g *Erigon) GetInternalWsUrl() string

func (*Erigon) StartContainer

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

func (*Erigon) WaitUntilChainIsReady

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

func (*Erigon) WithTestInstance

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

type EthGenesisGeneretor

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

func NewEthGenesisGenerator

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

func (*EthGenesisGeneretor) StartContainer

func (g *EthGenesisGeneretor) StartContainer() error

func (*EthGenesisGeneretor) WithTestInstance

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

type EthereumChainConfig

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"`
	// contains filtered or unexported fields
}

func GetDefaultChainConfig

func GetDefaultChainConfig() EthereumChainConfig

func (*EthereumChainConfig) ApplyOverrides

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

func (*EthereumChainConfig) Default

func (c *EthereumChainConfig) Default() error

func (*EthereumChainConfig) GenerateGenesisTimestamp

func (c *EthereumChainConfig) GenerateGenesisTimestamp()

func (*EthereumChainConfig) GetDefaultFinalizationWaitDuration

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

func (*EthereumChainConfig) GetDefaultWaitDuration

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

func (*EthereumChainConfig) GetValidatorBasedGenesisDelay

func (c *EthereumChainConfig) GetValidatorBasedGenesisDelay() int

func (*EthereumChainConfig) Validate

func (c *EthereumChainConfig) Validate(logger zerolog.Logger, consensusType ConsensusType) error

type EthereumNetwork

type EthereumNetwork struct {
	ConsensusType        *ConsensusType            `toml:"consensus_type"`
	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

func NewPrivateChainEnvConfigFromFile(path string) (EthereumNetwork, error)

func (*EthereumNetwork) ApplyOverrides

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

func (*EthereumNetwork) Describe

func (en *EthereumNetwork) Describe() string

func (*EthereumNetwork) Save

func (en *EthereumNetwork) Save() error

func (*EthereumNetwork) Start

func (*EthereumNetwork) Validate

func (en *EthereumNetwork) Validate() error

type EthereumNetworkBuilder

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

func NewEthereumNetworkBuilder

func NewEthereumNetworkBuilder() EthereumNetworkBuilder

func (*EthereumNetworkBuilder) Build

func (*EthereumNetworkBuilder) WihtExistingConfigFromEnvVar

func (b *EthereumNetworkBuilder) WihtExistingConfigFromEnvVar() *EthereumNetworkBuilder

func (*EthereumNetworkBuilder) WithConsensusLayer

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

func (*EthereumNetworkBuilder) WithConsensusType

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

func (*EthereumNetworkBuilder) WithCustomDockerImages

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

func (*EthereumNetworkBuilder) WithDockerNetworks

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

func (*EthereumNetworkBuilder) WithEthereumChainConfig

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

func (*EthereumNetworkBuilder) WithExecutionLayer

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

func (*EthereumNetworkBuilder) WithExistingConfig

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

func (*EthereumNetworkBuilder) WithTest

func (*EthereumNetworkBuilder) WithWaitingForFinalization

func (b *EthereumNetworkBuilder) WithWaitingForFinalization() *EthereumNetworkBuilder

type EthereumNetworkContainer

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

type EthereumNetworkContainers

type EthereumNetworkContainers []EthereumNetworkContainer

type ExecutionClient

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

type ExecutionLayer

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

type ExitCodeStrategy

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

func NewExitCodeStrategy

func NewExitCodeStrategy() *ExitCodeStrategy

func (*ExitCodeStrategy) WaitUntilReady

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

WaitUntilReady implements Strategy.WaitUntilReady

func (*ExitCodeStrategy) WithExitCode

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

func (*ExitCodeStrategy) WithPollInterval

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

func (*ExitCodeStrategy) WithTimeout

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

type Geth

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

func NewGeth

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

func (*Geth) StartContainer

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

func (*Geth) WithLogger

func (g *Geth) WithLogger(l zerolog.Logger) *Geth

func (*Geth) WithTestInstance

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

type Geth2

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

func NewGeth2

func NewGeth2(networks []string, chainConfg *EthereumChainConfig, generatedDataHostDir string, consensusLayer ConsensusLayer, opts ...EnvComponentOption) (*Geth2, error)

func (*Geth2) GetContainer

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

func (*Geth2) GetContainerName

func (g *Geth2) GetContainerName() string

func (*Geth2) GetContainerType

func (g *Geth2) GetContainerType() ContainerType

func (*Geth2) GetExternalExecutionURL

func (g *Geth2) GetExternalExecutionURL() string

func (*Geth2) GetExternalHttpUrl

func (g *Geth2) GetExternalHttpUrl() string

func (*Geth2) GetExternalWsUrl

func (g *Geth2) GetExternalWsUrl() string

func (*Geth2) GetInternalExecutionURL

func (g *Geth2) GetInternalExecutionURL() string

func (*Geth2) GetInternalHttpUrl

func (g *Geth2) GetInternalHttpUrl() string

func (*Geth2) GetInternalWsUrl

func (g *Geth2) GetInternalWsUrl() string

func (*Geth2) StartContainer

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

func (*Geth2) WaitUntilChainIsReady

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

func (*Geth2) WithTestInstance

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

type HTTPStrategy

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

func NewHTTPStrategy

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

func (*HTTPStrategy) WaitUntilReady

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

WaitUntilReady implements Strategy.WaitUntilReady

func (*HTTPStrategy) WithStatusCode

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

func (*HTTPStrategy) WithTimeout

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

type InternalDockerUrls

type InternalDockerUrls struct {
	HttpUrl string
	WsUrl   string
}

type Kafka

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

func NewKafka

func NewKafka(networks []string) *Kafka

func (*Kafka) CreateLocalTopics

func (k *Kafka) CreateLocalTopics() error

func (*Kafka) StartContainer

func (k *Kafka) StartContainer() error

func (*Kafka) WithContainerName

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

func (*Kafka) WithEnvVars

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

func (*Kafka) WithTestInstance

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

func (*Kafka) WithTopics

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

func (*Kafka) WithZookeeper

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

type KafkaTopicConfig

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

type Killgrave

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

func NewKillgrave

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

func (*Killgrave) AddImposter

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

AddImposter adds an imposter to the killgrave container

func (*Killgrave) SetAdapterBasedAnyValuePath

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

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

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

func (*Killgrave) SetStringValuePath

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

func (k *Killgrave) StartContainer() error

func (*Killgrave) WithTestInstance

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

type KillgraveAdapterResponse

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

AdapterResponse represents a response from an adapter

type KillgraveAdapterResult

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

AdapterResult represents an int result for an adapter

type KillgraveImposter

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

Imposter define an imposter structure

type KillgraveRequest

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

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

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

ResponseDelay represent time delay before server responds.

type LogRegexStrategy

type LogRegexStrategy struct {
	Pattern      *regexp.Regexp
	Occurrence   int
	PollInterval time.Duration
	// contains filtered or unexported fields
}

func NewLogRegexStrategy

func NewLogRegexStrategy(pattern *regexp.Regexp) *LogRegexStrategy

func (*LogRegexStrategy) WaitUntilReady

func (ws *LogRegexStrategy) WaitUntilReady(ctx context.Context, target tcwait.StrategyTarget) (err error)

WaitUntilReady implements Strategy.WaitUntilReady

func (*LogRegexStrategy) WithOccurrence

func (ws *LogRegexStrategy) WithOccurrence(o int) *LogRegexStrategy

func (*LogRegexStrategy) WithPollInterval

func (ws *LogRegexStrategy) WithPollInterval(pollInterval time.Duration) *LogRegexStrategy

WithPollInterval can be used to override the default polling interval of 100 milliseconds

func (*LogRegexStrategy) WithStartupTimeout

func (ws *LogRegexStrategy) WithStartupTimeout(timeout time.Duration) *LogRegexStrategy

type MockServer

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

func NewMockServer

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

func (*MockServer) SetExternalAdapterMocks

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

func (*MockServer) StartContainer

func (ms *MockServer) StartContainer() error

func (*MockServer) WithTestInstance

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

type Nethermind

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

func NewNethermind

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

func (*Nethermind) GetContainer

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

func (*Nethermind) GetContainerName

func (g *Nethermind) GetContainerName() string

func (*Nethermind) GetContainerType

func (g *Nethermind) GetContainerType() ContainerType

func (*Nethermind) GetExternalExecutionURL

func (g *Nethermind) GetExternalExecutionURL() string

func (*Nethermind) GetExternalHttpUrl

func (g *Nethermind) GetExternalHttpUrl() string

func (*Nethermind) GetExternalWsUrl

func (g *Nethermind) GetExternalWsUrl() string

func (*Nethermind) GetInternalExecutionURL

func (g *Nethermind) GetInternalExecutionURL() string

func (*Nethermind) GetInternalHttpUrl

func (g *Nethermind) GetInternalHttpUrl() string

func (*Nethermind) GetInternalWsUrl

func (g *Nethermind) GetInternalWsUrl() string

func (*Nethermind) StartContainer

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

func (*Nethermind) WaitUntilChainIsReady

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

func (*Nethermind) WithTestInstance

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

type NonDevBesuNode

type NonDevBesuNode struct {
	EnvComponent
	Config          gethTxNodeConfig
	ExternalHttpUrl string
	InternalHttpUrl string
	ExternalWsUrl   string
	InternalWsUrl   string
	EVMClient       blockchain.EVMClient
	EthClient       *ethclient.Client
	// contains filtered or unexported fields
}

func NewNonDevBesuNode

func NewNonDevBesuNode(networks []string, networkCfg *blockchain.EVMNetwork) *NonDevBesuNode

func (*NonDevBesuNode) ConnectToClient

func (g *NonDevBesuNode) ConnectToClient() error

func (*NonDevBesuNode) GetEVMClient

func (g *NonDevBesuNode) GetEVMClient() blockchain.EVMClient

func (*NonDevBesuNode) GetInternalHttpUrl

func (g *NonDevBesuNode) GetInternalHttpUrl() string

func (*NonDevBesuNode) GetInternalWsUrl

func (g *NonDevBesuNode) GetInternalWsUrl() string

func (*NonDevBesuNode) Start

func (g *NonDevBesuNode) Start() error

func (*NonDevBesuNode) WithTestInstance

func (g *NonDevBesuNode) WithTestInstance(t *testing.T) NonDevNode

type NonDevGethNode

type NonDevGethNode struct {
	EnvComponent
	Config          gethTxNodeConfig
	ExternalHttpUrl string
	InternalHttpUrl string
	ExternalWsUrl   string
	InternalWsUrl   string
	EVMClient       blockchain.EVMClient
	EthClient       *ethclient.Client
	// contains filtered or unexported fields
}

func NewNonDevGethNode

func NewNonDevGethNode(networks []string, networkCfg *blockchain.EVMNetwork) *NonDevGethNode

func (*NonDevGethNode) ConnectToClient

func (g *NonDevGethNode) ConnectToClient() error

func (*NonDevGethNode) GetEVMClient

func (g *NonDevGethNode) GetEVMClient() blockchain.EVMClient

func (*NonDevGethNode) GetInternalHttpUrl

func (g *NonDevGethNode) GetInternalHttpUrl() string

func (*NonDevGethNode) GetInternalWsUrl

func (g *NonDevGethNode) GetInternalWsUrl() string

func (*NonDevGethNode) Start

func (g *NonDevGethNode) Start() error

func (*NonDevGethNode) WithTestInstance

func (g *NonDevGethNode) WithTestInstance(t *testing.T) NonDevNode

type NonDevNode

type NonDevNode interface {
	GetInternalHttpUrl() string
	GetInternalWsUrl() string
	GetEVMClient() blockchain.EVMClient
	WithTestInstance(t *testing.T) NonDevNode
	Start() error
	ConnectToClient() error
}

type PostgresDb

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

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

func (*PostgresDb) ExecPgDump

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

func (*PostgresDb) StartContainer

func (pg *PostgresDb) StartContainer() error

func (*PostgresDb) WithTestInstance

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

type PostgresDbOption

type PostgresDbOption = func(c *PostgresDb)

func WithContainerEnv

func WithContainerEnv(key, value string) PostgresDbOption

func WithPostgresDbContainerName

func WithPostgresDbContainerName(name string) PostgresDbOption

Sets custom container name if name is not empty

func WithPostgresDbName

func WithPostgresDbName(name string) PostgresDbOption

func WithPostgresImageName

func WithPostgresImageName(imageName string) PostgresDbOption

func WithPostgresImageVersion

func WithPostgresImageVersion(version string) PostgresDbOption

type PrivateBesuChain

type PrivateBesuChain struct {
	PrimaryNode    *NonDevBesuNode
	Nodes          []*NonDevBesuNode
	NetworkConfig  *blockchain.EVMNetwork
	DockerNetworks []string
}

func (*PrivateBesuChain) GetDockerNetworks

func (p *PrivateBesuChain) GetDockerNetworks() []string

func (*PrivateBesuChain) GetNetworkConfig

func (p *PrivateBesuChain) GetNetworkConfig() *blockchain.EVMNetwork

func (*PrivateBesuChain) GetNodes

func (p *PrivateBesuChain) GetNodes() []NonDevNode

func (*PrivateBesuChain) GetPrimaryNode

func (p *PrivateBesuChain) GetPrimaryNode() NonDevNode

type PrivateChain

type PrivateChain interface {
	GetPrimaryNode() NonDevNode
	GetNodes() []NonDevNode
	GetNetworkConfig() *blockchain.EVMNetwork
	GetDockerNetworks() []string
}

func NewPrivateBesuChain

func NewPrivateBesuChain(networkCfg *blockchain.EVMNetwork, dockerNetworks []string) PrivateChain

func NewPrivateGethChain

func NewPrivateGethChain(networkCfg *blockchain.EVMNetwork, dockerNetworks []string) PrivateChain

type PrivateGethChain

type PrivateGethChain struct {
	PrimaryNode    *NonDevGethNode
	Nodes          []*NonDevGethNode
	NetworkConfig  *blockchain.EVMNetwork
	DockerNetworks []string
}

func (*PrivateGethChain) GetDockerNetworks

func (p *PrivateGethChain) GetDockerNetworks() []string

func (*PrivateGethChain) GetNetworkConfig

func (p *PrivateGethChain) GetNetworkConfig() *blockchain.EVMNetwork

func (*PrivateGethChain) GetNodes

func (p *PrivateGethChain) GetNodes() []NonDevNode

func (*PrivateGethChain) GetPrimaryNode

func (p *PrivateGethChain) GetPrimaryNode() NonDevNode

func (*PrivateGethChain) WithTestInstance

func (p *PrivateGethChain) WithTestInstance(t *testing.T) *PrivateGethChain

type PrysmBeaconChain

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

func NewPrysmBeaconChain

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

func (*PrysmBeaconChain) StartContainer

func (g *PrysmBeaconChain) StartContainer() error

func (*PrysmBeaconChain) WithTestInstance

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

type PrysmValidator

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

func NewPrysmValidator

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

func (*PrysmValidator) StartContainer

func (g *PrysmValidator) StartContainer() error

func (*PrysmValidator) WithTestInstance

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

type RpcProvider

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

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 (*RpcProvider) PrivateHttpUrls

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

func (*RpcProvider) PrivateWsUrsl

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

func (*RpcProvider) PublicHttpUrls

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

func (*RpcProvider) PublicWsUrls

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

type SchemaRegistry

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

func NewSchemaRegistry

func NewSchemaRegistry(networks []string) *SchemaRegistry

func (*SchemaRegistry) StartContainer

func (r *SchemaRegistry) StartContainer() error

func (*SchemaRegistry) WithContainerName

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

func (*SchemaRegistry) WithEnvVars

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

func (*SchemaRegistry) WithKafka

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

func (*SchemaRegistry) WithTestInstance

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

type ValKeysGeneretor

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

func NewValKeysGeneretor

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

func (*ValKeysGeneretor) StartContainer

func (g *ValKeysGeneretor) StartContainer() error

func (*ValKeysGeneretor) WithTestInstance

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

type WebSocketStrategy

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

func NewWebSocketStrategy

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

func (*WebSocketStrategy) WaitUntilReady

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

func (*WebSocketStrategy) WithTimeout

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

type Zookeeper

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

func NewZookeeper

func NewZookeeper(networks []string) *Zookeeper

func (*Zookeeper) StartContainer

func (z *Zookeeper) StartContainer() error

func (*Zookeeper) WithContainerName

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

func (*Zookeeper) WithTestInstance

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