Skip to content

Conversation

ethenotethan
Copy link
Contributor

Summary

Add support for EigenDA mainnet network configuration in the proxy service.

Changes

  • Added mainnet network enum: Extended EigenDANetwork type to include
    MainnetEigenDANetwork constant
  • Added mainnet contract addresses:
    • EigenDADirectory: 0x64AB2e9A86FA2E183CB6f01B2D4050c1c2dFAad4
    • ServiceManager: 0x870679E138bCdf293b7Ff14dD44b70FC97e12fc0
    • BLSOperatorStateRetriever: 0xEC35aa6521d23479318104E10B4aA216DBBE63Ce
  • Added mainnet disperser endpoint: disperser.eigenda.xyz:443
  • Updated chain ID mapping: Added Ethereum mainnet (chain ID: 1) to network
    mapping
  • Added mainnet example config: Created .env.exampleV2.mainnet with complete
    mainnet configuration
  • Updated CLI documentation: Added mainnet to the list of permitted network
    values
  • Updated CI: Added mainnet config to GitHub Actions test matrix

@Copilot Copilot AI review requested due to automatic review settings July 11, 2025 18:17
@ethenotethan ethenotethan requested a review from a team as a code owner July 11, 2025 18:17
@ethenotethan ethenotethan changed the title feat: Add mainnet network enum feat(api/proxy): Add mainnet network enum Jul 11, 2025
Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds support for the EigenDA mainnet network in the proxy service.

  • Introduces MainnetEigenDANetwork in the network enum and adds its associated contract addresses, disperser endpoint, and chain ID mapping.
  • Updates CLI messaging and GitHub Actions to include the new mainnet configuration.
  • Adds a dedicated .env.exampleV2.mainnet with full mainnet settings.

Reviewed Changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.

File Description
api/proxy/config/v2/eigendaflags/cli.go Updated CLI help text to list four allowed networks including mainnet
api/proxy/common/eigenda_network.go Added mainnet constant, address mappings, chainID map, and parser case
api/proxy/.env.exampleV2.mainnet New example config file for mainnet
.github/workflows/test-proxy.yml Included .env.exampleV2.mainnet in the CI test matrix
Comments suppressed due to low confidence (2)

api/proxy/.env.exampleV2.mainnet:1

  • The header comment still refers to "Holesky Testnet" but this file is for mainnet. Update it to reflect mainnet.
# V2 Configuration for Holesky Testnet

api/proxy/common/eigenda_network.go:17

  • There are no existing unit tests for the new mainnet case in methods like GetEigenDADirectory, GetServiceManagerAddress, GetDisperserAddress, and GetBLSOperatorStateRetrieverAddress. Consider adding tests to cover these code paths.
	case MainnetEigenDANetwork:

)

// GetEigenDADirectory returns, as a string, the address of the EigenDADirectory contract for the network.
func (n EigenDANetwork) GetEigenDADirectory() (string, error) {
switch n {
case MainnetEigenDANetwork:
return "0x64AB2e9A86FA2E183CB6f01B2D4050c1c2dFAad4", nil
Copy link
Preview

Copilot AI Jul 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] Hardcoded contract addresses are repeated across multiple methods. You could extract these values into package-level constants or a single mapping to reduce duplication and ease future updates.

Copilot uses AI. Check for mistakes.

@ethenotethan ethenotethan changed the title feat(api/proxy): Add mainnet network enum feat(proxy): Add mainnet network enum Jul 12, 2025
samlaf
samlaf previously approved these changes Jul 15, 2025
@@ -57,6 +64,8 @@ func (n EigenDANetwork) GetDisperserAddress() (string, error) {
// network
func (n EigenDANetwork) GetBLSOperatorStateRetrieverAddress() (string, error) {
switch n {
case MainnetEigenDANetwork:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add TODO to get rid of this function and fetch via directory instead

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@@ -27,6 +30,8 @@ func (n EigenDANetwork) GetEigenDADirectory() (string, error) {
// GetServiceManagerAddress returns, as a string, the address of the EigenDAServiceManager contract for the network.
func (n EigenDANetwork) GetServiceManagerAddress() (string, error) {
switch n {
case MainnetEigenDANetwork:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add todo to get rid of this function and fetch from directory instead

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

)

// GetEigenDADirectory returns, as a string, the address of the EigenDADirectory contract for the network.
func (n EigenDANetwork) GetEigenDADirectory() (string, error) {
switch n {
case MainnetEigenDANetwork:
return "0x64AB2e9A86FA2E183CB6f01B2D4050c1c2dFAad4", nil
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mention is function comment that these addresses should always match with https://docs.eigencloud.xyz/products/eigenda/networks/mainnet

this way llm can catch bugs in future if we redeploy a directory and forget to update this fct or docs.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

litt3
litt3 previously approved these changes Jul 15, 2025
@ethenotethan ethenotethan dismissed stale reviews from litt3 and samlaf via f70eff2 July 17, 2025 19:11
@ethenotethan ethenotethan requested review from samlaf and litt3 July 17, 2025 19:23
@ethenotethan ethenotethan merged commit 9b2520b into master Jul 17, 2025
30 checks passed
@ethenotethan ethenotethan deleted the ethenotethan--feat-mainnet-network-enum branch July 17, 2025 20:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants