Open MaxMustermann2 opened 3 days ago
The pull request introduces multiple changes across various files, primarily focusing on enhancing the environment configuration for Ethereum Proof of Stake (PoS) integration testing. Key modifications include the addition of new environment variables in .env.example
, updates to the .gitignore
file, and enhancements to the foundry.toml
configuration. Several Solidity scripts have been modified to accommodate new parameters and improve the handling of contracts related to validator operations, including the introduction of new contracts like BeaconOracle
and NetworkConfig
. Additionally, various test files have been updated to reflect these changes.
File | Change Summary |
---|---|
.env.example |
Added new environment variables for integration testing, including BEACON_CHAIN_ENDPOINT , INTEGRATION_* variables, and updated ETHERSCAN_API_KEY . |
.gitignore |
Added entry to ignore JSON files in script/integration/ . |
foundry.toml |
Added chain_id = 1 under [profile.default] . |
package.json |
Added dependency @lodestar/api and property "type": "module" . |
script/12_RedeployClientChainGateway.s.sol |
Updated ImmutableConfig struct to include networkConfig . |
script/13_DepositValidator.s.sol |
Changed GENESIS_BLOCK_TIMESTAMP to an immutable variable from a constant, added import for NetworkConstants . |
script/14_CorrectBootstrapErrors.s.sol |
Updated ImmutableConfig struct to include networkConfig . |
script/16_UpgradeExoCapsule.s.sol |
Changed ExoCapsule instantiation to pass address 0 . |
script/17_WithdrawalValidator.s.sol |
Changed GENESIS_BLOCK_TIMESTAMP to an immutable variable and added import for NetworkConstants . |
script/2_DeployBoth.s.sol |
Added import for NetworkConstants , updated beaconOracle instantiation, and modified ImmutableConfig . |
script/7_DeployBootstrap.s.sol |
Updated capsuleImplementation instantiation and added networkConfig to ImmutableConfig . |
script/BaseScript.sol |
Removed _deployBeaconOracle function. |
script/generate.js |
Restructured token metadata, added new constants, and updated environment variable loading. |
script/integration/1_DeployBootstrap.s.sol |
Introduced NetworkConfig structure and updated deployment logic. |
script/integration/2_VerifyDepositNST.s.sol |
Added new contract for verifying deposits. |
script/integration/BeaconOracle.sol |
Introduced BeaconOracle contract for managing beacon chain data. |
script/integration/NetworkConfig.sol |
Introduced NetworkConfig contract for integration testing. |
script/integration/deposit.sh |
New script for fetching genesis details from a beacon chain node. |
script/integration/prove.sh |
New script for generating validator proofs. |
src/core/Bootstrap.sol |
Updated to include ValidatorContainer library and modified getWhitelistedTokenAtIndex . |
src/core/ExoCapsule.sol |
Updated constructor and several functions for improved withdrawal logic. |
src/interfaces/INetworkConfig.sol |
Introduced interface and struct for network parameters. |
src/libraries/BeaconChainProofs.sol |
Updated functions to accept new parameters for enhanced flexibility. |
src/libraries/NetworkConstants.sol |
Introduced library with constants and utility functions for PoS networks. |
src/storage/BootstrapStorage.sol |
Added new mapping for staker public keys and updated constructor logic. |
src/storage/ExoCapsuleStorage.sol |
Added immutable variable for network configuration and updated functions for retrieving values. |
test/foundry/BootstrapDepositNST.t.sol |
Updated test setup to reflect changes in capsuleImplementation and ImmutableConfig . |
test/foundry/ExocoreDeployer.t.sol |
Updated beacon oracle instantiation and removed _deployBeaconOracle function. |
test/foundry/Governance.t.sol |
Updated to reflect changes in beacon oracle instantiation and capsule implementation. |
test/foundry/unit/Bootstrap.t.sol |
Enhanced test suite with additional checks for networkConfig . |
test/foundry/unit/ClientChainGateway.t.sol |
Updated to reflect changes in beacon oracle instantiation and capsule implementation. |
test/foundry/unit/ExoCapsule.t.sol |
Updated ExoCapsule instantiation and added field to validatorProof struct. |
test/foundry/unit/NetworkConfig.t.sol |
Introduced unit tests for NetworkConfig contract with various assertions and error checks. |
ExoCapsule
and NativeRestakingController
contracts.DepositValidator
script align with the main PR's focus on enhancing environment setup for Ethereum PoS.Bootstrap
contract, indirectly related to the environment variables added.ExocoreGateway
contract regarding the bootstrap process may interact with the new environment variables.ExocoreGateway
contract may connect with the new environment variables in the main PR, as both focus on maintaining contract integrity and functionality.🐰 In the meadow where the code does flow,
New variables sprout, as the developers know.
With constants and scripts, they dance in delight,
Enhancing the tests, making futures bright.
For Ethereum's chains, we hop and we play,
Celebrating changes, hip-hip-hooray! 🐇✨
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?
This PR fixes a potentially major (yet unnoticed) bug that the same constants (such as the ETH1_DEPOSIT_ADDRESS and GENESIS_TIME) were used across all networks.
Summary by CodeRabbit
Release Notes
New Features
BeaconOracle
contract for managing Ethereum beacon chain data.NetworkConfig
contract to facilitate network parameter management.Bootstrap
contract functionality with new methods for managing validator data.Bug Fixes
Documentation
Tests
NetworkConfig
contract to validate expected behaviors and error handling.Bootstrap
contract with additional assertions and checks.