Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Implement beacon chain push withdrawals (EIP-4895) (#4731)
* More test fixes * Fix for init and meter * Make withdrawals decoding optional * include 4895 in chainspecParameters * introduce WithdrawalTimestamp * Fix `PayloadAttributes` handling when null * Fix withdrawals length calculation * Refactor and add checks for withdrawals for RPC methods of v1 * Add engine_getPayloadV2 * Format whitespaces * Refactor and remove redundant "V1" * started adding Enginge V2 tests - V2_processing_block_should_serialize_valid_responses * formatting * formatting * Implement withdrawal root validation * working on tests and fixes * fix block for processing * BlockValidator WithdrawalRoot * Fix withdrawal trie proof validation * add WithdrawalApplier * Remove redundant withdrawals hash check * Remove withdrawal check for null * Add withdrawals test chain spec * Reformat whitespaces * add withdrawalApplier to blockchainProcessor * add withdrawals to ExecutionPayload * test fixes * fix EVM.test * fix EthereumTests * fix Benchmarks.sln * Revise withdrawals representation according to the spec and refactor * Rename `IWithdrawalApplier` to `IWithdrawalProcessor` * Add tests for withdrawal encoding/decoding * Rename `Recipient` to `Address` * Reformat whitespaces * Revise withdrawals length calculation in block encoding * HasBody? * Remove redundant withdrawals hash check * fix withdrawals_test chainspec && added IReleaseSpec.WithdrawalsEnabled * Fixes * fix GenesisLoader * fix extra-data * Refactor withdrawal validation by implementing `IWithdrawalValidator` * Fix failing tests * Reformat whitespaces * fix withdrawalsTimestamp * temporary change validation * null handling? * Applying Marek's suggestion. Not sure about this one * Fix Ethereum tests * Fix test cases * Fix benchmark build * Fix payload attributes validation * Remove "V1" from `IForkchoiceUpdatedHandler` name * Update tests * hack AuRa tests for now * fix more tests * fix more tests * fix build * + fix one more tests * fix Synchronization tests * Update tests to 0aa59689101f64cab8fa1526d9cf6e647ddba946 * fixed withdrawal chainspec * withdrawals block validator tests * Implement Engine API tests * Reformat code * fix chainspec? * Fix withdrawals decoding * fix chainspec timestamp * Add and fix Engine API tests * Revise block decoder tests * Revise file headers * Revise file headers * Add missing file headers * fix AuRa test * adjusting comments * load genesis tests * Lukasz suggestions * formating * Fix build * withdrawals_hivetests.json + cosmetic * Add more unit tests * spacing * Try on fixing timestamp activation with same value as genesis timestamp * Fix gnosis and chiado ForkId Calculations * fix tests * Cleanup and more tests * Janky but working solution to very rare edge case? * Fix flakiness of caused by Parallelizable * adding engine tests * working on more tests * add loop in test * Can_apply_withdrawals_correctly test * more test cases * Update withdrawals hive tests configuration * Refactor and fix some null reference warnings * Expose withdrawals to JSON-RPC modules * Fix broken tests * Revise `ForkchoiceUpdatedHandler` string output * fix Can_apply_withdrawals_correctly * fix whitespaces * fix whitespaces * more whitespaces fixes * work on Withdrawals_transition test cases * adjust CustomSpecProvider * Introduce IEip1995Spec * small changes in tests * Fix license * add comments * Apply Marek Suggestion * Adjust Lic to Rubo * Marek Suggestions * Fix * fix withdrawals in ChainLevelHelper * fix hive sync tests * fix? * Revise withdrawals root hash encoding/decoding and its tests * fix PayloadAttributes ToString * add more temp logs to investigate hive tests * more logs * revert not needed logs * fix test * ignore incorrect tests * Fix tests broken by withdrawals decoding revision * Revise file headers * Final appraoch, removed GetSpec complexity * Forgotten changes * SecondsPerSlot to BlocksConfig * Minor + config changes * Typo fix * remove empty line * Move BlocksConfig to Nethermind.Config project * Benchmark build fix * Rename `ExecutionPayloadV1` to `ExecutionPayloadV2` * Revise withdrawals check * Refactor tests * Optimize withdrawals root hash decoding in block header * Implements ForkId tests that are ub EIP-6122 * Spacing * Fix build * Fix ForkId Test case * Removing 3675 and using MergeForkId Transition * Final test fix * Fix tests * Rename `ExecutionPayloadV2` to `ExecutionPayload` * add one more line in Nlog (temp) * Revert NLog for jsonRpc * fix missing body? * adjust TxPool logs * Add more test cases for `BlockBodiesMessageSerializer` * Add tests for `BlockHeader.HasBody` * Revise `null` handling for `BlockHeader.HasBody` * fix BlockBody empty * cosmetic * fix CI * Revise tests * Update null checks with pattern matching * Refactor block body initialization and add tests * Revise whitespaces * cosmetic * ForkId calculation polish (#5068) * Refactor - mainly ChainSpecBasedSpecProvider * fixes * Better warning message * Simplify sanity check * one more simplification * Revise Clique block production according to withdrawals rules * Add withdrawals to `eth_getBlockByNumber` tests * SecondsPerSlot move to BlocksConfig (#4944) Co-authored-by: MarekM25 <[email protected]> Co-authored-by: lukasz.rozmej <[email protected]> Resolves #4871 * fix build * removed duplicated NSubstitute * Add missing file headers * resolved some review comments * more review comments * more review related changes * fix Benchmarks build * Refactor tests * refactor tests - review comment * cosmetic * Revise suggested block validation messages * Refactor patricia tries * fix InvalidBlockInterceptor for Withdrawals * fix whitespaces * fix tests Co-authored-by: smartprogrammer <[email protected]> Co-authored-by: MarekM25 <[email protected]> Co-authored-by: Lukasz Rozmej <[email protected]> Co-authored-by: Ahmad Bitar <[email protected]>
- Loading branch information