Needs Shanghai support, mostly in the form of supporting withdrawals.
Note: This PR revealed a bug in the link between eth-tester and py-evm. This PR will fail until this fix is merged and release.
How was it fixed?
Added withdrawals and withdrawals_root fields where appropriate
Added a way to apply_withdrawal(), passing in a dict with appropriate values via a method on PyEVMBackend since withdrawals are not done via an API call on EL, but rather through configs on the CL client.
Added some testing around outbound blocks with withdrawals.
Added validation for "inbound" withdrawals dict object for the apply_withdrawal() method.
To-Do:
[x] Add proper tests for the apply_withdrawal() method and validation tests for the inbound withdrawal dict (this was only manually tested thus far)
[x] Link up this branch locally and a new web3.py branch for peripheral changes related to Shanghai (e.g. withdrawals_root -> withdrawalsRoot in the "RPC" response for eth_getBlockBy* calls)
What was wrong?
Note: This PR revealed a bug in the link between eth-tester and py-evm. This PR will fail until this fix is merged and release.
How was it fixed?
withdrawals
andwithdrawals_root
fields where appropriateapply_withdrawal()
, passing in a dict with appropriate values via a method onPyEVMBackend
since withdrawals are not done via an API call on EL, but rather through configs on the CL client.apply_withdrawal()
method.To-Do:
apply_withdrawal()
method and validation tests for the inbound withdrawal dict (this was only manually tested thus far)withdrawals_root
->withdrawalsRoot
in the "RPC" response for eth_getBlockBy* calls)Cute Animal Picture