Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( ChainOmniEVM = EVMChain{ Name: "omni_evm", ID: 1, BlockPeriod: 2 * time.Second, FinalizationStrat: netconf.StratFinalized, } )
Functions ¶
func PublicRPCByName ¶
PublicRPCByName returns the public chain RPC address by name.
Types ¶
type AnvilChain ¶
type AnvilChain struct { Chain EVMChain // For netconf InternalIP net.IP // For docker container IP ProxyPort uint32 // For binding InternalRPC string // For JSON-RPC queries from halo/relayer ExternalRPC string // For JSON-RPC queries from e2e app. LoadState string // File path to load anvil state from }
AnvilChain represents an anvil chain instance in a omni network.
type ContractName ¶
type ContractName string
const ( ContractPortal ContractName = "portal" ContractOmniAVS ContractName = "omni_avs" ContractPingPong ContractName = "ping_pong" ContractELAVSDirectory ContractName = "el_avs_directory" ContractELDelegationManager ContractName = "el_delegation_manager" ContractELStrategyManager ContractName = "el_strategy_manager" ContractELPodManager ContractName = "el_pod_manager" ContractELWETH ContractName = "el_weth" ContractELWETHStrategy ContractName = "el_weth_strategy" ContractAVSDirectory ContractName = "el_avs_directory" ContractEIP1271SigUtils ContractName = "el_eip_1271_sig_utils" )
type DeployInfo ¶
DeployInfo contains the address and deploy height of a deployed contract.
type DeployInfos ¶
type DeployInfos map[uint64]map[ContractName]DeployInfo
DeployInfos contains the addresses of deployed xdapps and contracts by chainID.
Note that ContractPortal is duplicated both here and in netconf.Chain. That is because netconf is used by halo and relayer and other production apps.
This DeployInfos is similar to netconf, but it is only used by e2e deployment and tests. As soon as any production app needs to use any of these addresses, they should be moved to netconf.
func LoadDeployInfos ¶
func LoadDeployInfos(file string) (DeployInfos, error)
func (DeployInfos) Addr ¶
func (i DeployInfos) Addr(chainID uint64, contract ContractName) (common.Address, bool)
func (DeployInfos) Save ¶
func (i DeployInfos) Save(file string) error
func (DeployInfos) Set ¶
func (i DeployInfos) Set(chainID uint64, contract ContractName, addr common.Address, height uint64)
type EVMChain ¶
type EVMChain struct { Name string // Chain Nam. ID uint64 // Chain ID IsPublic bool IsAVSTarget bool BlockPeriod time.Duration FinalizationStrat netconf.FinalizationStrat }
EVMChain represents a EVM chain in a omni network.
func AnvilChainsByNames ¶
AnvilChainsByNames returns the Anvil evm chain definitions by names.
func PublicChainByName ¶
PublicChainByName returns the public chain definition by name.
type InfraProvider ¶
type InfrastructureData ¶
type InfrastructureData struct { e2e.InfrastructureData // VMs maps the VM name to its instance data. // Note this differs from e2e.InfrastructureData.Instances, which maps the service names to its instance data. VMs map[string]e2e.InstanceData }
InfrastructureData wraps e2e.InfrastructureData with additional omni-specific fields.
type Manifest ¶
type Manifest struct { e2e.Manifest Network string `toml:"network"` // AnvilChains defines the anvil chains to deploy; chain_a, chain_b, etc. AnvilChains []string `toml:"anvil_chains"` // PublicChains defines the public chains to connect to; arb_goerli, etc. PublicChains []string `toml:"public_chains"` // AVSTarget identifies the chain to deploy the AVS contracts to. // It must be one of the anvil or public chains. AVSTarget string `toml:"avs_target"` // MultiOmniEVMs defines whether to deploy one or multiple Omni EVMs. MultiOmniEVMs bool `toml:"multi_omni_evms"` // SlowTests defines whether to run slow tests (e.g. tests/eigen_tests.go) SlowTests bool `toml:"slow_tests"` }
Manifest wraps e2e.Manifest with additional omni-specific fields.
type OmniEVM ¶
type OmniEVM struct { Chain EVMChain // For netconf (all instances must have the same chain) InstanceName string // For docker container name InternalIP net.IP // For docker container IP ProxyPort uint32 // For binding InternalRPC string // For JSON-RPC queries from halo/relayer InternalAuthRPC string // For engine API queries from halo ExternalRPC string // For JSON-RPC queries from e2e app. // P2P networking NodeKey *ecdsa.PrivateKey // Private key Enode *enode.Node // Public key BootNodes []*enode.Node // Peer public keys }
OmniEVM represents a omni evm instance in a omni network. Similar to e2e.Node for halo instances.
func (OmniEVM) BootNodesStr ¶
func (OmniEVM) NodeKeyHex ¶
type PublicChain ¶
type PublicChain struct { Chain EVMChain // For netconf RPCAddress string // For JSON-RPC queries from halo/relayer/e2e app. }
PublicChain represents a public chain in a omni network.