Documentation ¶
Index ¶
- Constants
- Variables
- func FetchLatestEthereumClientDockerImageVersionIfNeed(dockerImageWithVersion string) (string, error)
- func FormatHttpUrl(host string, port string) string
- func FormatWsUrl(host string, port string) string
- func GetComparableVersionFromDockerImage(imageWithVersion string) (int, error)
- func GetEndpoint(ctx context.Context, container tc.Container, endpointType string) (string, error)
- func GetEthereumVersionFromImage(executionLayer config.ExecutionLayer, imageWithVersion string) (config.EthereumVersion, error)
- func GetExecutionLayerFromDockerImage(imageWithVersion string) (config.ExecutionLayer, error)
- func GetGithubRepositoryFromEthereumClientDockerImage(imageWithVersion string) (string, error)
- func GetHost(ctx context.Context, container tc.Container) (string, error)
- func IsDockerImageVersionSupported(imageWithVersion string) (bool, string, error)
- func NatPort(port string) nat.Port
- func NatPortFormat(port string) string
- func UniqueStringSlice(slice []string) []string
- type AfterGenesisHelper
- type Besu
- func (g *Besu) GetContainer() *tc.Container
- func (g *Besu) GetContainerName() string
- func (g *Besu) GetEthereumVersion() config.EthereumVersion
- func (g *Besu) GetExternalExecutionURL() string
- func (g *Besu) GetExternalHttpUrl() string
- func (g *Besu) GetExternalWsUrl() string
- func (g *Besu) GetInternalExecutionURL() string
- func (g *Besu) GetInternalHttpUrl() string
- func (g *Besu) GetInternalWsUrl() string
- func (g *Besu) GethConsensusMechanism() ConsensusMechanism
- func (g *Besu) StartContainer() (blockchain.EVMNetwork, error)
- func (g *Besu) WaitUntilChainIsReady(ctx context.Context, waitTime time.Duration) error
- func (g *Besu) WithTestInstance(t *testing.T) ExecutionClient
- type ConsensusMechanism
- type EnvComponent
- func (ec EnvComponent) ChaosNetworkDelay(l zerolog.Logger, duration time.Duration, delay time.Duration, ...) error
- func (ec EnvComponent) ChaosNetworkLoss(l zerolog.Logger, duration time.Duration, lossPercentage int, ...) error
- func (ec EnvComponent) ChaosPause(l zerolog.Logger, duration time.Duration) error
- func (ec *EnvComponent) GetImageWithVersion() string
- func (ec *EnvComponent) SetDefaultHooks()
- type EnvComponentOption
- func WithContainerImageWithVersion(imageWithVersion string) EnvComponentOption
- func WithContainerName(name string) EnvComponentOption
- func WithLogLevel(logLevel string) EnvComponentOption
- func WithLogStream(ls *logstream.LogStream) EnvComponentOption
- func WithPostStartsHooks(hooks ...tc.ContainerHook) EnvComponentOption
- func WithPostStopsHooks(hooks ...tc.ContainerHook) EnvComponentOption
- func WithPreTerminatesHooks(hooks ...tc.ContainerHook) EnvComponentOption
- func WithStartupTimeout(timeout time.Duration) EnvComponentOption
- type Erigon
- func (g *Erigon) GetContainer() *tc.Container
- func (g *Erigon) GetContainerName() string
- func (g *Erigon) GetEthereumVersion() config.EthereumVersion
- func (g *Erigon) GetExternalExecutionURL() string
- func (g *Erigon) GetExternalHttpUrl() string
- func (g *Erigon) GetExternalWsUrl() string
- func (g *Erigon) GetInternalExecutionURL() string
- func (g *Erigon) GetInternalHttpUrl() string
- func (g *Erigon) GetInternalWsUrl() string
- func (g *Erigon) GethConsensusMechanism() ConsensusMechanism
- func (g *Erigon) StartContainer() (blockchain.EVMNetwork, error)
- func (g *Erigon) WaitUntilChainIsReady(ctx context.Context, waitTime time.Duration) error
- func (g *Erigon) WithTestInstance(t *testing.T) ExecutionClient
- type EthGenesisGeneretor
- type EthereumNetwork
- type EthereumNetworkBuilder
- func (b *EthereumNetworkBuilder) Build() (EthereumNetwork, error)
- func (b *EthereumNetworkBuilder) WithConsensusLayer(consensusLayer config.ConsensusLayer) *EthereumNetworkBuilder
- func (b *EthereumNetworkBuilder) WithConsensusType(consensusType config.ConsensusType) *EthereumNetworkBuilder
- func (b *EthereumNetworkBuilder) WithCustomDockerImages(newImages map[config.ContainerType]string) *EthereumNetworkBuilder
- func (b *EthereumNetworkBuilder) WithDockerNetworks(networks []string) *EthereumNetworkBuilder
- func (b *EthereumNetworkBuilder) WithEthereumChainConfig(config config.EthereumChainConfig) *EthereumNetworkBuilder
- func (b *EthereumNetworkBuilder) WithEthereumVersion(ethereumVersion config.EthereumVersion) *EthereumNetworkBuilder
- func (b *EthereumNetworkBuilder) WithExecutionLayer(executionLayer config.ExecutionLayer) *EthereumNetworkBuilder
- func (b *EthereumNetworkBuilder) WithExistingConfig(config config.EthereumNetworkConfig) *EthereumNetworkBuilder
- func (b *EthereumNetworkBuilder) WithExistingConfigFromEnvVar() *EthereumNetworkBuilder
- func (b *EthereumNetworkBuilder) WithLogStream(ls *logstream.LogStream) *EthereumNetworkBuilder
- func (b *EthereumNetworkBuilder) WithNodeLogLevel(nodeLogLevel string) *EthereumNetworkBuilder
- func (b *EthereumNetworkBuilder) WithTest(t *testing.T) *EthereumNetworkBuilder
- func (b *EthereumNetworkBuilder) WithWaitingForFinalization() *EthereumNetworkBuilder
- type ExecutionClient
- type ExitCodeStrategy
- func (w *ExitCodeStrategy) WaitUntilReady(ctx context.Context, target tcwait.StrategyTarget) (err error)
- func (w *ExitCodeStrategy) WithExitCode(exitCode int) *ExitCodeStrategy
- func (w *ExitCodeStrategy) WithPollInterval(pollInterval time.Duration) *ExitCodeStrategy
- func (w *ExitCodeStrategy) WithTimeout(timeout time.Duration) *ExitCodeStrategy
- type Geth
- func (g *Geth) GetContainer() *tc.Container
- func (g *Geth) GetContainerName() string
- func (g *Geth) GetEthereumVersion() config.EthereumVersion
- func (g *Geth) GetExternalExecutionURL() string
- func (g *Geth) GetExternalHttpUrl() string
- func (g *Geth) GetExternalWsUrl() string
- func (g *Geth) GetInternalExecutionURL() string
- func (g *Geth) GetInternalHttpUrl() string
- func (g *Geth) GetInternalWsUrl() string
- func (g *Geth) GethConsensusMechanism() ConsensusMechanism
- func (g *Geth) StartContainer() (blockchain.EVMNetwork, error)
- func (g *Geth) WaitUntilChainIsReady(ctx context.Context, waitTime time.Duration) error
- func (g *Geth) WithTestInstance(t *testing.T) ExecutionClient
- type HTTPStrategy
- type Kafka
- func (k *Kafka) CreateLocalTopics() error
- func (k *Kafka) StartContainer() error
- func (k *Kafka) WithContainerName(name string) *Kafka
- func (k *Kafka) WithEnvVars(envVars map[string]string) *Kafka
- func (k *Kafka) WithTestInstance(t *testing.T) *Kafka
- func (k *Kafka) WithTopics(topics []KafkaTopicConfig) *Kafka
- func (k *Kafka) WithZookeeper(zookeeperUrl string) *Kafka
- type KafkaTopicConfig
- type Killgrave
- func (k *Killgrave) AddImposter(imposters []KillgraveImposter) error
- func (k *Killgrave) GetReceivedRequests() ([]RequestData, error)
- func (k *Killgrave) SetAdapterBasedAnyValuePath(path string, methods []string, v interface{}) error
- func (k *Killgrave) SetAdapterBasedIntValuePath(path string, methods []string, v int) error
- func (k *Killgrave) SetAnyValueResponse(path string, methods []string, v interface{}) error
- func (k *Killgrave) SetStringValuePath(path string, methods []string, headers map[string]string, v string) error
- func (k *Killgrave) StartContainer() error
- func (k *Killgrave) WithTestInstance(t *testing.T) *Killgrave
- type KillgraveAdapterResponse
- type KillgraveAdapterResult
- type KillgraveImposter
- type KillgraveRequest
- type KillgraveResponse
- type KillgraveResponseDelay
- type MockServer
- type Nethermind
- func (g *Nethermind) GetContainer() *tc.Container
- func (g *Nethermind) GetContainerName() string
- func (g *Nethermind) GetEthereumVersion() config.EthereumVersion
- func (g *Nethermind) GetExternalExecutionURL() string
- func (g *Nethermind) GetExternalHttpUrl() string
- func (g *Nethermind) GetExternalWsUrl() string
- func (g *Nethermind) GetInternalExecutionURL() string
- func (g *Nethermind) GetInternalHttpUrl() string
- func (g *Nethermind) GetInternalWsUrl() string
- func (g *Nethermind) GethConsensusMechanism() ConsensusMechanism
- func (g *Nethermind) StartContainer() (blockchain.EVMNetwork, error)
- func (g *Nethermind) WaitUntilChainIsReady(ctx context.Context, waitTime time.Duration) error
- func (g *Nethermind) WithTestInstance(t *testing.T) ExecutionClient
- type PostgresDb
- type PostgresDbOption
- func WithContainerEnv(key, value string) PostgresDbOption
- func WithPostgresDbContainerName(name string) PostgresDbOption
- func WithPostgresDbLogStream(ls *logstream.LogStream) PostgresDbOption
- func WithPostgresDbName(name string) PostgresDbOption
- func WithPostgresImageName(imageName string) PostgresDbOption
- func WithPostgresImageVersion(version string) PostgresDbOption
- type PrysmBeaconChain
- type PrysmValidator
- type RequestData
- type Reth
- func (g *Reth) GetContainer() *tc.Container
- func (g *Reth) GetContainerName() string
- func (g *Reth) GetEthereumVersion() config.EthereumVersion
- func (g *Reth) GetExternalExecutionURL() string
- func (g *Reth) GetExternalHttpUrl() string
- func (g *Reth) GetExternalWsUrl() string
- func (g *Reth) GetInternalExecutionURL() string
- func (g *Reth) GetInternalHttpUrl() string
- func (g *Reth) GetInternalWsUrl() string
- func (g *Reth) GethConsensusMechanism() ConsensusMechanism
- func (g *Reth) StartContainer() (blockchain.EVMNetwork, error)
- func (g *Reth) WaitUntilChainIsReady(ctx context.Context, waitTime time.Duration) error
- func (g *Reth) WithTestInstance(t *testing.T) ExecutionClient
- type RpcProvider
- type SchemaRegistry
- func (r *SchemaRegistry) StartContainer() error
- func (r *SchemaRegistry) WithContainerName(name string) *SchemaRegistry
- func (r *SchemaRegistry) WithEnvVars(envVars map[string]string) *SchemaRegistry
- func (r *SchemaRegistry) WithKafka(kafkaUrl string) *SchemaRegistry
- func (r *SchemaRegistry) WithTestInstance(t *testing.T) *SchemaRegistry
- type UnsupportedVersion
- type ValKeysGenerator
- type WebSocketStrategy
- type Zookeeper
Constants ¶
const ( RootFundingAddr = `0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266` RootFundingWallet = `` /* 491-byte string literal not displayed */ DEFAULT_EVM_NODE_HTTP_PORT = "8544" DEFAULT_EVM_NODE_WS_PORT = "8545" )
const ( MsgInvalidDockerImageFormat = "invalid docker image format: %s" MsgUnsupportedDockerImage = "unsupported docker image: %s" MsgUnsupportedExecutionLayer = "unsupported execution layer: %s" )
const ( PRYSM_QUERY_RPC_PORT = "3500" PRYSM_NODE_RPC_PORT = "4000" )
const AUTOMATIC_LATEST_TAG = "latest_available"
const AUTOMATIC_STABLE_LATEST_TAG = "latest_stable"
const (
BaseCMD = `docker run -i --rm -v /var/run/docker.sock:/var/run/docker.sock --network %s gaiaadm/pumba --log-level=info`
)
const (
CONFIG_ENV_VAR_NAME = "PRIVATE_ETHEREUM_NETWORK_CONFIG_PATH"
)
Variables ¶
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/metadata" 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 */ )
var ( ErrMissingConsensusLayer = errors.New("consensus layer is required for PoS") ErrTestConfigNotSaved = errors.New("could not save test env config") )
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}`,
}
var MsgMismatchedExecutionClient = "" /* 147-byte string literal not displayed */
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 ¶
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 ¶
func FormatWsUrl ¶
func GetComparableVersionFromDockerImage ¶
GetComparableVersionFromDockerImage returns version in xy format removing all non-numeric characters and patch version if present. So x.y.z becomes xy.
func GetEndpoint ¶
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 GetEthereumVersionFromImage ¶
func GetEthereumVersionFromImage(executionLayer config.ExecutionLayer, imageWithVersion string) (config.EthereumVersion, error)
GetEthereumVersionFromImage returns the consensus type based on the Docker image version
func GetExecutionLayerFromDockerImage ¶
func GetExecutionLayerFromDockerImage(imageWithVersion string) (config.ExecutionLayer, error)
GetExecutionLayerFromDockerImage returns the execution layer based on the Docker image
func GetGithubRepositoryFromEthereumClientDockerImage ¶
GetGithubRepositoryFromEthereumClientDockerImage returns the GitHub repository name based on the Docker image
func GetHost ¶
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 ¶
IsDockerImageVersionSupported checks if the given docker image version is supported and if not returns the reason why
func NatPortFormat ¶
func UniqueStringSlice ¶
UniqueStringSlice returns a deduplicated slice of strings
Types ¶
type AfterGenesisHelper ¶
type AfterGenesisHelper struct { EnvComponent // contains filtered or unexported fields }
func NewInitHelper ¶
func NewInitHelper(chainConfig config.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 NewBesuEth1 ¶
func NewBesuEth1(networks []string, chainConfig *config.EthereumChainConfig, opts ...EnvComponentOption) (*Besu, error)
NewBesuEth1 starts a new Besu Eth1 node running in Docker
func NewBesuEth2 ¶
func NewBesuEth2(networks []string, chainConfig *config.EthereumChainConfig, generatedDataHostDir string, consensusLayer config.ConsensusLayer, opts ...EnvComponentOption) (*Besu, error)
NewBesuEth2 starts a new Besu Eth2 node running in Docker
func (*Besu) GetContainer ¶
func (*Besu) GetContainerName ¶
func (*Besu) GetEthereumVersion ¶
func (g *Besu) GetEthereumVersion() config.EthereumVersion
func (*Besu) GetExternalExecutionURL ¶
func (*Besu) GetExternalHttpUrl ¶
func (*Besu) GetExternalWsUrl ¶
func (*Besu) GetInternalExecutionURL ¶
func (*Besu) GetInternalHttpUrl ¶
func (*Besu) GetInternalWsUrl ¶
func (*Besu) GethConsensusMechanism ¶
func (g *Besu) GethConsensusMechanism() ConsensusMechanism
func (*Besu) StartContainer ¶
func (g *Besu) StartContainer() (blockchain.EVMNetwork, error)
func (*Besu) WaitUntilChainIsReady ¶
func (*Besu) WithTestInstance ¶
func (g *Besu) WithTestInstance(t *testing.T) ExecutionClient
type ConsensusMechanism ¶
type ConsensusMechanism string
const ( ConsensusMechanism_PoW ConsensusMechanism = "pow" ConsensusMechanism_PoS ConsensusMechanism = "pos" ConsensusMechanism_PoA ConsensusMechanism = "poa" )
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:"-"` LogLevel string `json:"-"` StartupTimeout time.Duration `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 ¶
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 WithLogLevel ¶
func WithLogLevel(logLevel 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
func WithStartupTimeout ¶
func WithStartupTimeout(timeout time.Duration) 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 NewErigonEth1 ¶
func NewErigonEth1(networks []string, chainConfig *config.EthereumChainConfig, opts ...EnvComponentOption) (*Erigon, error)
NewErigonEth1 starts a new Erigon Eth1 node running in Docker
func NewErigonEth2 ¶
func NewErigonEth2(networks []string, chainConfig *config.EthereumChainConfig, generatedDataHostDir string, consensusLayer config.ConsensusLayer, opts ...EnvComponentOption) (*Erigon, error)
NewErigonEth2 starts a new Erigon Eth2 node running in Docker
func (*Erigon) GetContainer ¶
func (*Erigon) GetContainerName ¶
func (*Erigon) GetEthereumVersion ¶
func (g *Erigon) GetEthereumVersion() config.EthereumVersion
func (*Erigon) GetExternalExecutionURL ¶
func (*Erigon) GetExternalHttpUrl ¶
func (*Erigon) GetExternalWsUrl ¶
func (*Erigon) GetInternalExecutionURL ¶
func (*Erigon) GetInternalHttpUrl ¶
func (*Erigon) GetInternalWsUrl ¶
func (*Erigon) GethConsensusMechanism ¶
func (g *Erigon) GethConsensusMechanism() ConsensusMechanism
func (*Erigon) StartContainer ¶
func (g *Erigon) StartContainer() (blockchain.EVMNetwork, error)
func (*Erigon) WaitUntilChainIsReady ¶
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 config.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 EthereumNetwork ¶
type EthereumNetwork struct { config.EthereumNetworkConfig // contains filtered or unexported fields }
func NewPrivateChainEnvConfigFromFile ¶
func NewPrivateChainEnvConfigFromFile(path string) (EthereumNetwork, error)
func (*EthereumNetwork) Save ¶
func (en *EthereumNetwork) Save() error
func (*EthereumNetwork) Start ¶
func (en *EthereumNetwork) Start() (blockchain.EVMNetwork, RpcProvider, error)
type EthereumNetworkBuilder ¶
type EthereumNetworkBuilder struct {
// contains filtered or unexported fields
}
func NewEthereumNetworkBuilder ¶
func NewEthereumNetworkBuilder() EthereumNetworkBuilder
func (*EthereumNetworkBuilder) Build ¶
func (b *EthereumNetworkBuilder) Build() (EthereumNetwork, error)
func (*EthereumNetworkBuilder) WithConsensusLayer ¶
func (b *EthereumNetworkBuilder) WithConsensusLayer(consensusLayer config.ConsensusLayer) *EthereumNetworkBuilder
func (*EthereumNetworkBuilder) WithConsensusType ¶
func (b *EthereumNetworkBuilder) WithConsensusType(consensusType config.ConsensusType) *EthereumNetworkBuilder
WithConsensusType sets the consensus type for the network Deprecated: use WithEthereumVersion() instead
func (*EthereumNetworkBuilder) WithCustomDockerImages ¶
func (b *EthereumNetworkBuilder) WithCustomDockerImages(newImages map[config.ContainerType]string) *EthereumNetworkBuilder
func (*EthereumNetworkBuilder) WithDockerNetworks ¶
func (b *EthereumNetworkBuilder) WithDockerNetworks(networks []string) *EthereumNetworkBuilder
func (*EthereumNetworkBuilder) WithEthereumChainConfig ¶
func (b *EthereumNetworkBuilder) WithEthereumChainConfig(config config.EthereumChainConfig) *EthereumNetworkBuilder
func (*EthereumNetworkBuilder) WithEthereumVersion ¶
func (b *EthereumNetworkBuilder) WithEthereumVersion(ethereumVersion config.EthereumVersion) *EthereumNetworkBuilder
func (*EthereumNetworkBuilder) WithExecutionLayer ¶
func (b *EthereumNetworkBuilder) WithExecutionLayer(executionLayer config.ExecutionLayer) *EthereumNetworkBuilder
func (*EthereumNetworkBuilder) WithExistingConfig ¶
func (b *EthereumNetworkBuilder) WithExistingConfig(config config.EthereumNetworkConfig) *EthereumNetworkBuilder
func (*EthereumNetworkBuilder) WithExistingConfigFromEnvVar ¶
func (b *EthereumNetworkBuilder) WithExistingConfigFromEnvVar() *EthereumNetworkBuilder
func (*EthereumNetworkBuilder) WithLogStream ¶
func (b *EthereumNetworkBuilder) WithLogStream(ls *logstream.LogStream) *EthereumNetworkBuilder
func (*EthereumNetworkBuilder) WithNodeLogLevel ¶
func (b *EthereumNetworkBuilder) WithNodeLogLevel(nodeLogLevel string) *EthereumNetworkBuilder
func (*EthereumNetworkBuilder) WithTest ¶
func (b *EthereumNetworkBuilder) WithTest(t *testing.T) *EthereumNetworkBuilder
func (*EthereumNetworkBuilder) WithWaitingForFinalization ¶
func (b *EthereumNetworkBuilder) WithWaitingForFinalization() *EthereumNetworkBuilder
type ExecutionClient ¶
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() config.EthereumVersion GethConsensusMechanism() ConsensusMechanism WaitUntilChainIsReady(ctx context.Context, waitTime time.Duration) error WithTestInstance(t *testing.T) ExecutionClient }
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 InternalExecutionURL string ExternalExecutionURL string // contains filtered or unexported fields }
func NewGethEth1 ¶
func NewGethEth1(networks []string, chainConfig *config.EthereumChainConfig, opts ...EnvComponentOption) *Geth
NewGethEth1 starts a new Geth Eth1 node running in Docker
func NewGethEth2 ¶
func NewGethEth2(networks []string, chainConfig *config.EthereumChainConfig, generatedDataHostDir string, consensusLayer config.ConsensusLayer, opts ...EnvComponentOption) (*Geth, error)
NewGethEth2 starts a new Geth Eth2 node running in Docker
func (*Geth) GetContainer ¶
func (*Geth) GetContainerName ¶
func (*Geth) GetEthereumVersion ¶
func (g *Geth) GetEthereumVersion() config.EthereumVersion
func (*Geth) GetExternalExecutionURL ¶
func (*Geth) GetExternalHttpUrl ¶
func (*Geth) GetExternalWsUrl ¶
func (*Geth) GetInternalExecutionURL ¶
func (*Geth) GetInternalHttpUrl ¶
func (*Geth) GetInternalWsUrl ¶
func (*Geth) GethConsensusMechanism ¶
func (g *Geth) GethConsensusMechanism() ConsensusMechanism
func (*Geth) StartContainer ¶
func (g *Geth) StartContainer() (blockchain.EVMNetwork, error)
func (*Geth) WaitUntilChainIsReady ¶
func (*Geth) WithTestInstance ¶
func (g *Geth) 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 Kafka ¶
type Kafka struct { EnvComponent TopicConfigs []KafkaTopicConfig EnvVars map[string]string BootstrapServerUrl string InternalUrl string ExternalUrl string // contains filtered or unexported fields }
func (*Kafka) CreateLocalTopics ¶
func (*Kafka) StartContainer ¶
func (*Kafka) WithContainerName ¶
func (*Kafka) WithTopics ¶
func (k *Kafka) WithTopics(topics []KafkaTopicConfig) *Kafka
func (*Kafka) WithZookeeper ¶
type KafkaTopicConfig ¶
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) GetReceivedRequests ¶
func (k *Killgrave) GetReceivedRequests() ([]RequestData, error)
func (*Killgrave) SetAdapterBasedAnyValuePath ¶
SetAdapterBasedAnyValuePath sets a path to return a value as though it was from an adapter
func (*Killgrave) SetAdapterBasedIntValuePath ¶
SetAdapterBasedAnyValuePathObject sets a path to return a value as though it was from an adapter
func (*Killgrave) SetAnyValueResponse ¶
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 ¶
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 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 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 NewNethermindEth1 ¶
func NewNethermindEth1(networks []string, chainConfig *config.EthereumChainConfig, opts ...EnvComponentOption) (*Nethermind, error)
NewNethermindEth1 starts a new Nethermin Eth1 node running in Docker
func NewNethermindEth2 ¶
func NewNethermindEth2(networks []string, chainConfig *config.EthereumChainConfig, generatedDataHostDir string, consensusLayer config.ConsensusLayer, opts ...EnvComponentOption) (*Nethermind, error)
NewNethermindEth2 starts a new Nethermin Eth2 node running in Docker
func (*Nethermind) GetContainer ¶
func (g *Nethermind) GetContainer() *tc.Container
func (*Nethermind) GetContainerName ¶
func (g *Nethermind) GetContainerName() string
func (*Nethermind) GetEthereumVersion ¶
func (g *Nethermind) GetEthereumVersion() config.EthereumVersion
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) GethConsensusMechanism ¶
func (g *Nethermind) GethConsensusMechanism() ConsensusMechanism
func (*Nethermind) StartContainer ¶
func (g *Nethermind) StartContainer() (blockchain.EVMNetwork, error)
func (*Nethermind) WaitUntilChainIsReady ¶
func (*Nethermind) WithTestInstance ¶
func (g *Nethermind) WithTestInstance(t *testing.T) ExecutionClient
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) RestartContainer ¶
func (pg *PostgresDb) RestartContainer() 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 WithPostgresDbLogStream ¶
func WithPostgresDbLogStream(ls *logstream.LogStream) PostgresDbOption
func WithPostgresDbName ¶
func WithPostgresDbName(name string) PostgresDbOption
func WithPostgresImageName ¶
func WithPostgresImageName(imageName string) PostgresDbOption
func WithPostgresImageVersion ¶
func WithPostgresImageVersion(version string) PostgresDbOption
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 *config.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 *config.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 RequestData ¶
type Reth ¶
type Reth struct { EnvComponent ExternalHttpUrl string InternalHttpUrl string ExternalWsUrl string InternalWsUrl string InternalExecutionURL string ExternalExecutionURL string // contains filtered or unexported fields }
func NewRethEth2 ¶
func NewRethEth2(networks []string, chainConfig *config.EthereumChainConfig, generatedDataHostDir string, consensusLayer config.ConsensusLayer, opts ...EnvComponentOption) (*Reth, error)
NewRethEth2 starts a new Reth Eth2 node running in Docker
func (*Reth) GetContainer ¶
func (*Reth) GetContainerName ¶
func (*Reth) GetEthereumVersion ¶
func (g *Reth) GetEthereumVersion() config.EthereumVersion
func (*Reth) GetExternalExecutionURL ¶
func (*Reth) GetExternalHttpUrl ¶
func (*Reth) GetExternalWsUrl ¶
func (*Reth) GetInternalExecutionURL ¶
func (*Reth) GetInternalHttpUrl ¶
func (*Reth) GetInternalWsUrl ¶
func (*Reth) GethConsensusMechanism ¶
func (g *Reth) GethConsensusMechanism() ConsensusMechanism
func (*Reth) StartContainer ¶
func (g *Reth) StartContainer() (blockchain.EVMNetwork, error)
func (*Reth) WaitUntilChainIsReady ¶
func (*Reth) WithTestInstance ¶
func (g *Reth) WithTestInstance(t *testing.T) ExecutionClient
type RpcProvider ¶
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 ¶
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 ¶
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 UnsupportedVersion ¶
type ValKeysGenerator ¶
type ValKeysGenerator struct { EnvComponent // contains filtered or unexported fields }
func NewValKeysGeneretor ¶
func NewValKeysGeneretor(chainConfig *config.EthereumChainConfig, valKeysHostDataDir string, opts ...EnvComponentOption) (*ValKeysGenerator, error)
func (*ValKeysGenerator) StartContainer ¶
func (g *ValKeysGenerator) StartContainer() error
func (*ValKeysGenerator) WithTestInstance ¶
func (g *ValKeysGenerator) WithTestInstance(t *testing.T) *ValKeysGenerator
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 (*Zookeeper) StartContainer ¶
func (*Zookeeper) WithContainerName ¶
Source Files ¶
- besu_base.go
- besu_eth1.go
- besu_eth2.go
- env_component.go
- erigon_base.go
- erigon_eth1.go
- erigon_eth2.go
- eth1_common.go
- eth2_common.go
- eth2_init_helpers.go
- eth_common.go
- ethereum_env.go
- genesis_generator.go
- genesis_generator_helpers.go
- geth_base.go
- geth_eth1.go
- geth_eth2.go
- github_utils.go
- kafka.go
- killgrave.go
- messages.go
- mockserver.go
- nethermind_base.go
- nethermind_eth1.go
- nethermind_eth2.go
- postgres.go
- prysm.go
- reth_base.go
- reth_eth2.go
- schema_registry.go
- test_utils.go
- utils.go
- validator_keys_generator.go
- wait_strategy.go
- zookeeper.go