Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for EIP-5656 and EIP-1153 #277

Open
CedarMist opened this issue Mar 27, 2024 · 3 comments
Open

Support for EIP-5656 and EIP-1153 #277

CedarMist opened this issue Mar 27, 2024 · 3 comments

Comments

@CedarMist
Copy link

CedarMist commented Mar 27, 2024

As of Solidity 0.8.25 on 14th March 2024 the default Ethereum hardfork is Dencun, meaning these new opcodes are emitted when the optimizer deems suitable.

  • EIP-5656 proposal adds MCOPY opcode to the code base. Currently, copying memory requires developers to use two opcodes (MSTORE and MLOAD) and costs at least 96 gas. With MCOPY, it only costs around 26 gas. This improvement makes smart contracts more efficient with zero trade-offs.
  • EIP-1153 proposal adds TLOAD and TSTORE opcodes to enable transient storage or medium-term memory for communication within complex transactions. This means the memory will be accessible to all function calls within the transaction and will be cleared once it’s completed.

This means projects using this EVM implementation will revert due to invalid opcodes with many contracts that are compiled with the 0.8.25 release of Solidity and it's something that should be supported with high priority.

@RomarQ
Copy link
Contributor

RomarQ commented May 1, 2024

#278 adds support for EIP-1153

@RomarQ
Copy link
Contributor

RomarQ commented May 6, 2024

#279 adds support for EIP-5656

@CedarMist
Copy link
Author

Awesome!

Thank so much @RomarQ for taking the time to implement the two EIPs.

We're also considering moving from this package to https:/bluealloy/revm - but it's important that both have support for these new opcodes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants