8000 Node/EVM: Add contract address to chain config by bruce-riley · Pull Request #4299 · wormhole-foundation/wormhole · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Node/EVM: Add contract address to chain config #4299

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Conversation

bruce-riley
Copy link
Contributor
@bruce-riley bruce-riley commented Mar 17, 2025

This PR enhances the EVM chain config to include the core contract address. This provides easy access to the contract addresses and also allows the verify_chain_config to confirm that the contract exists at the expected location. This PR also enhances the tool to make it easier to see what it is doing.

Note that, although it would be possible to use these contract addresses as defaults for the guardian, we are not doing that at this time since it could make it easier for an attacker to compromise the watchers.

Note, while working on this PR, I realized that Linea was currently allowed in mainnet when it should not be, so I fixed that.

Note to reviewers: If you trust the verify tool, you don't need to worry about validating the contract addresses. . .

@bruce-riley
Copy link
Contributor Author
bruce-riley commented Mar 17, 2025

Here is the latest output from the verify tool.

verify_chain_config (node/evm_add_contract_addr_to_chain_config)$ go run verify.go 
Verifying prod ethereum...
   Verifying EVM chain ID for prod ethereum ✓
   Verifying finality values for prod ethereum ✓
   Verifying contract address for prod ethereum ✓
Verifying prod bsc...
   Verifying EVM chain ID for prod bsc ✓
   Verifying finality values for prod bsc ✓
   Verifying contract address for prod bsc ✓
Verifying prod polygon...
   Verifying EVM chain ID for prod polygon ✓
   Verifying finality values for prod polygon ✓
   Verifying contract address for prod polygon ✓
Verifying prod avalanche...
   Verifying EVM chain ID for prod avalanche ✓
   Verifying finality values for prod avalanche ✓
   Verifying contract address for prod avalanche ✓
Verifying prod oasis...
   Verifying EVM chain ID for prod oasis ✓
   Verifying contract address for prod oasis ✓
Verifying prod fantom...
   Verifying EVM chain ID for prod fantom ✓
   Verifying contract address for prod fantom ✓
Verifying prod karura...
   Verifying EVM chain ID for prod karura ✓
   Verifying finality values for prod karura ✓
   Verifying contract address for prod karura ✓
Verifying prod acala...
   Verifying EVM chain ID for prod acala ✓
   Verifying finality values for prod acala ✓
   Verifying contract address for prod acala ✓
Verifying prod klaytn...
   Verifying EVM chain ID for prod klaytn ✓
   Verifying contract address for prod klaytn ✓
Verifying prod celo...
   Verifying EVM chain ID for prod celo ✓
   Verifying finality values for prod celo ✓
   Verifying contract address for prod celo ✓
Verifying prod moonbeam...
   Verifying EVM chain ID for prod moonbeam ✓
   Verifying finality values for prod moonbeam ✓
   Verifying contract address for prod moonbeam ✓
Verifying prod arbitrum...
   Verifying EVM chain ID for prod arbitrum ✓
   Verifying finality values for prod arbitrum ✓
   Verifying contract address for prod arbitrum ✓
Verifying prod optimism...
   Verifying EVM chain ID for prod optimism ✓
   Verifying finality values for prod optimism ✓
   Verifying contract address for prod optimism ✓
Verifying prod base...
   Verifying EVM chain ID for prod base ✓
   Verifying finality values for prod base ✓
   Verifying contract address for prod base ✓
Verifying prod scroll...
   Verifying EVM chain ID for prod scroll ✓
   Verifying finality values for prod scroll ✓
   Verifying contract address for prod scroll ✓
Verifying prod mantle...
   Verifying EVM chain ID for prod mantle ✓
   Verifying finality values for prod mantle ✓
   Verifying contract address for prod mantle ✓
Verifying prod blast...
   Verifying EVM chain ID for prod blast ✓
   Verifying finality values for prod blast ✓
   Verifying contract address for prod blast ✓
Verifying prod xlayer...
   Verifying EVM chain ID for prod xlayer ✓
   Verifying finality values for prod xlayer ✓
   Verifying contract address for prod xlayer ✓
Verifying prod berachain...
   Verifying EVM chain ID for prod berachain ✓
   Verifying finality values for prod berachain ✓
   Verifying contract address for prod berachain ✓
Verifying prod seievm...
   Verifying EVM chain ID for prod seievm ✓
   Verifying finality values for prod seievm ✓
   Verifying contract address for prod seievm ✓
Verifying prod snaxchain...
   Verifying EVM chain ID for prod snaxchain ✓
   Verifying finality values for prod snaxchain ✓
   Verifying contract address for prod snaxchain ✓
Verifying prod unichain...
   Verifying EVM chain ID for prod unichain ✓
   Verifying finality values for prod unichain ✓
   Verifying contract address for prod unichain ✓
Verifying prod worldchain...
   Verifying EVM chain ID for prod worldchain ✓
   Verifying finality values for prod worldchain ✓
   Verifying contract address for prod worldchain ✓
Verifying prod ink...
   Verifying EVM chain ID for prod ink ✓
   Verifying finality values for prod ink ✓
   Verifying contract address for prod ink ✓
Verifying test ethereum...
   Verifying EVM chain ID for test ethereum ✓
   Verifying finality values for test ethereum ✓
   Verifying contract address for test ethereum ✓
Verifying test bsc...
   Verifying EVM chain ID for test bsc ✓
   Verifying finality values for test bsc ✓
   Verifying contract address for test bsc ✓
Skipping test polygon because the rpc is null
Verifying test avalanche...
   Verifying EVM chain ID for test avalanche ✓
   Verifying finality values for test avalanche ✓
   Verifying contract address for test avalanche ✓
Verifying test oasis...
   Verifying EVM chain ID for test oasis ✓
   Verifying contract address for test oasis ✓
Verifying test fantom...
   Verifying EVM chain ID for test fantom ✓
   Verifying contract address for test fantom ✓
Verifying test karura...
   Verifying EVM chain ID for test karura ✓
   Verifying finality values for test karura ✓
   Verifying contract address for test karura ✓
Verifying test acala...
   Verifying EVM chain ID for test acala ✓
   Verifying finality values for test acala ✓
   Verifying contract address for test acala ✓
Verifying test klaytn...
   Verifying EVM chain ID for test klaytn ✓
   Verifying contract address for test klaytn ✓
Verifying test celo...
   Verifying EVM chain ID for test celo ✓
   Verifying finality values for test celo ✓
   Verifying contract address for test celo ✓
Verifying test moonbeam...
   Verifying EVM chain ID for test moonbeam ✓
   Verifying finality values for test moonbeam ✓
   Verifying contract address for test moonbeam ✓
Skipping test arbitrum because the rpc is null
Skipping test optimism because the rpc is null
Skipping test base because the rpc is null
Verifying test scroll...
   Verifying EVM chain ID for test scroll ✓
   Verifying finality values for test scroll ✓
   Verifying contract address for test scroll ✓
Verifying test mantle...
   Verifying EVM chain ID for test mantle ✓
   Verifying finality values for test mantle ✓
   Verifying contract address for test mantle ✓
Verifying test blast...
   Verifying EVM chain ID for test blast ✓
   Verifying finality values for test blast ✓
   Verifying contract address for test blast ✓
Verifying test xlayer...
   Verifying EVM chain ID for test xlayer ✓
   Verifying finality values for test xlayer ✓
   Verifying contract address for test xlayer ✓
Verifying test linea...
   Verifying EVM chain ID for test linea ✓
   Verifying finality values for test linea ✓
   Verifying contract address for test linea ✓
Verifying test berachain...
   Verifying EVM chain ID for test berachain ✓
   Verifying finality values for test berachain ✓
   Verifying contract address for test berachain ✓
Verifying test seievm...
   Verifying EVM chain ID for test seievm ✓
   Verifying finality values for test seievm ✓
   Verifying contract address for test seievm ✓
Verifying test snaxchain...
   Verifying EVM chain ID for test snaxchain ✓
   Verifying finality values for test snaxchain ✓
   Verifying contract address for test snaxchain ✓
Verifying test unichain...
   Verifying EVM chain ID for test unichain ✓
   Verifying finality values for test unichain ✓
   Verifying contract address for test unichain ✓
Verifying test worldchain...
   Verifying EVM chain ID for test worldchain ✓
   Verifying finality values for test worldchain ✓
   Verifying contract address for test worldchain ✓
Verifying test ink...
   Verifying EVM chain ID for test ink ✓
   Verifying finality values for test ink ✓
   Verifying contract address for test ink ✓
Verifying test hyperevm...
   Verifying EVM chain ID for test hyperevm ✓
   Verifying finality values for test hyperevm ✓
   Verifying contract address for test hyperevm ✓
Verifying test monad...
   Verifying EVM chain ID for test monad ✓
   Verifying finality values for test monad ✓
   Verifying contract address for test monad ✓
Verifying test mezo...
   Verifying EVM chain ID for test mezo ✓
   Verifying finality values for test mezo ✓
   Verifying contract address for test mezo ✓
Verifying test sepolia...
   Verifying EVM chain ID for test sepolia ✓
   Verifying finality values for test sepolia ✓
   Verifying contract address for test sepolia ✓
Verifying test arbitrum_sepolia...
   Verifying EVM chain ID for test arbitrum_sepolia ✓
   Verifying finality values for test arbitrum_sepolia ✓
   Verifying contract address for test arbitrum_sepolia ✓
Verifying test base_sepolia...
   Verifying EVM chain ID for test base_sepolia ✓
   Verifying finality values for test base_sepolia ✓
   Verifying contract address for test base_sepolia ✓
Verifying test optimism_sepolia...
   Verifying EVM chain ID for test optimism_sepolia ✓
   Verifying finality values for test optimism_sepolia ✓
   Verifying contract address for test optimism_sepolia ✓
Verifying test holesky...
   Verifying EVM chain ID for test holesky ✓
   Verifying finality values for test holesky ✓
   Verifying contract address for test holesky ✓
Verifying test polygon_sepolia...
   Verifying EVM chain ID for test polygon_sepolia ✓
   Verifying finality values for test polygon_sepolia ✓
   Verifying contract address for test polygon_sepolia ✓
verify_chain_config (node/evm_add_contract_addr_to_chain_config)$

@bruce-riley bruce-riley force-pushed the node/evm_add_contract_addr_to_chain_config branch 3 times, most recently from 6169ee4 to f5049f0 Compare March 19, 2025 15:35
@bruce-riley bruce-riley marked this pull request as ready for review March 19, 2025 15:49
@bruce-riley bruce-riley marked this pull request as draft March 19, 2025 20:28
@bruce-riley bruce-riley force-pushed the node/evm_add_contract_addr_to_chain_config branch from ec21049 to 7d04908 Compare March 20, 2025 15:31
@bruce-riley bruce-riley force-pushed the node/evm_add_contract_addr_to_chain_config branch from 7d04908 to 79f3d1f Compare March 20, 2025 15:33
@bruce-riley bruce-riley marked this pull request as ready for review March 20, 2025 19:46
@bruce-riley bruce-riley merged commit e5487b5 into wormhole-foundation:main Mar 21, 2025
31 checks passed
@bruce-riley bruce-riley deleted the node/evm_add_contract_addr_to_chain_config branch March 21, 2025 18:51
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
0