ethereumjs-monorepo
ethereumjs-monorepo copied to clipboard
VM, EVM, Common: Implement EIP-2330 Extsload Opcode
This PR implements EIP-2330 Extsload at 0x5c opcode.
If the opcode is supported as an experimental opcode, it would help with easier experimentation and research on the EIP.
Currently, there is a clash at the same opcode 0x5c BEGINSUB from EIP-2315, hence currently either EIP could be activated at a time. I'll discuss with EIP-2330 authors if there can be another candidate for the opcode number.
Please let me know of any changes that are needed.
Codecov Report
Merging #2116 (b218660) into master (f6c12b9) will decrease coverage by
0.17%. The diff coverage is17.39%.
| Flag | Coverage Δ | |
|---|---|---|
| block | 83.81% <ø> (ø) |
|
| blockchain | 80.54% <ø> (ø) |
|
| client | 76.67% <ø> (ø) |
|
| common | 95.31% <ø> (ø) |
|
| devp2p | 82.44% <ø> (-0.26%) |
:arrow_down: |
| ethash | 90.81% <ø> (ø) |
|
| evm | 40.59% <17.39%> (-0.36%) |
:arrow_down: |
| statemanager | 84.55% <ø> (ø) |
|
| trie | 81.22% <ø> (-0.60%) |
:arrow_down: |
| tx | 92.20% <ø> (ø) |
|
| util | 87.22% <ø> (ø) |
|
| vm | 78.16% <ø> (ø) |
Flags with carried forward coverage won't be shown. Click here to find out more.
Hi Soham, that's pretty impressive work here, cool! 👍
I guess we need some discussion if we want to integrate and if the EIP is relevant and up-to-date enough to integrate (or bear with me if we had this discussion already? I sometimes forget these kind of things.)
Thing is that we can't integrate all sorts of EIPs into the main code base, otherwise our code base would get too fragmented.
Very cool zemse! I have checked the EIP and I think the EIP is rather outdated. For instance, it does not mention gas costs like how much gas it would cost if one tries to extsload a cold account / cold slot (See EIP 2930 for warm/cold definitions). But on the other hand it now matches the spec, so I guess that is OK.
Just wanted to add to the conversation here that this EIP was recently updated. Please view the latest version here: https://eips.ethereum.org/EIPS/eip-2330. Also, some community members see the value from EIP (e.g. discord link).