-
Notifications
You must be signed in to change notification settings - Fork 952
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
Use appropriate EVM version for a particular chain - eg Celo #5275
Comments
Proposition of workflow:
|
I would say not only the terminal but a toaster would make even more sence |
@LianaHus - your idea of using the toaster seems fine - but weren't we trying to minimize toaster use? Even if we are, is this example a good one for employing a toaster? |
Adding the case of, when the file uses a higher version, that can't be compiled through remix. In that case, we could have a toast that says: "for your chain only the evm_version below is available, please downgrade your file" Or how would you handle that? |
IMHO this is when it is still appropriate to use it and yes you are right, we try to minimize it. |
I would switch automatically and then to inform. We switch sol version based on pragma, but the logic there should be rethinked |
@GigaHierz - Is your comment is in the case of a chain that uses opcodes that are not yet merged into the EVM? I ask because you say that the file uses a "higher version". Or is it in the case where soon after a merge, there could be a delay before the latest EVM is available in Remix? |
Hi @ryestew , I realize I moved into a different conversation. In my last message, I was referring to compiler versions, as a workaround that some people proposed was to use compiler versions lower than 0.8.20 and I was referring to how it would work if we would adapt the compiler versions, in case someone chooses a higher version. Now, going through the conversation again, I realize we are talking about the EVM version. So actually, nothing to add to that proposal. The proposed solution sounds good to me. One other question would actually be, what opcodes are not available on Celo and if that will change with Celo's migration to a L2. Alfajores has already been migrated to an L2 so the error message you added above is the same as I am getting when deploying on Alfajores but different from the one that I am getting when deploying to Celo Mainnet. |
@GigaHierz - so are you saying that there are two issues to deal with:
But I think you are also bringing up a 3rd issue - the problem of the error on Celo mainnet and the problem on Celo Alfajores - the error messages - while different from each other - don't really provide helpful info. |
hi @ryestew , yes agree. It definitely makes sense to separate them.
These two workflows should catch the error messages IMO. Will reach out to schedule a call |
Our original logic as that the EVM version would need to change depending on the chain. |
Some chains don't use the opcodes in the latest EVM upgrade - so in Remix, the latest EVM version, is selected by default but then when a user selects a chain, like Celo, that doesn't use some of the opcodes in the latest EVM, the contract won't deploy and you get an error like this:
The complicating factor is that Remix doesn't know where you'll deploy to when you are compiling. If it did, and if there was a list of chains and their latest EVM compatible version and if this list was up to date, then Remix could set the EVM when compiling to the correct version.
But also when I use the Paris EVM and deploy to Alphajores, I get an RPC error.
Describe the solution you'd like
A new workflow should be introduced where the Remix is told the chain the contract will be deploying to.
The text was updated successfully, but these errors were encountered: