This PR refactors `ProcessExecutionPayload` with `ApplyExecutionPayload` so caller can use Apply method to calculate post state root. Note that validations are not required for Apply function. We really need the state mutation lines that's: ``` 1. Ensure latest_block_header.state_root is set (if zero, set it to the pre‑payload HashTreeRoot)... 2. processExecutionRequests() 3. QueueBuilderPayment() 4. SetExecutionPayloadAvailability(state.Slot(), true) 5. SetLatestBlockHash(payload.BlockHash()) ``` I decided to keep them there because a. it's cheap b. it makes refactor cleaner to reason c. API/caller may want to validate envelope and bid consistency (ex: beacon api has option to validate consensus)
Prysm: An Ethereum Consensus Implementation Written in Go
📖 Overview
This is the core repository for Prysm, a Golang implementation of the Ethereum Consensus specification, developed by Offchain Labs.
See the Changelog for details of the latest releases and upcoming breaking changes.
🚀 Getting Started
A detailed set of installation and usage instructions as well as breakdowns of each individual component are available in the official documentation portal.
💬 Need help? Join our Discord Community for support.
🏆 Staking on Mainnet
To participate in staking, you can join the official Ethereum launchpad. The launchpad is the only recommended way to become a validator on mainnet.
🔍 Explore validator rewards/penalties:
🤝 Contributing
🔥 Branches
Prysm maintains two permanent branches:
master- This points to the latest stable release. It is ideal for most users.develop- This is used for development and contains the latest PRs. Developers should base their PRs on this branch.
🛠 Contribution Guide
Want to get involved? Check out our Contribution Guide to learn more!
📜 License
This project is licensed under the GNU General Public License v3.0.
