Add Humanode Mainnet
There seems to be an issue with the scripts (or our chain?) - can you help, mds1?
The latest updates on your projects. Learn more about Vercel for Git ↗︎
| Name | Status | Preview | Comments | Updated (UTC) |
|---|---|---|---|---|
| evm-diff | ✅ Ready (Inspect) | Visit Preview | 💬 Add feedback | Dec 4, 2024 3:36am |
I just pushed some fixes in https://github.com/mds1/evm-diff/pull/95, though I don't think they will help based on the RPC URL you're using. Can you try again? It looks like your RPC is similar to some of the other domainsToSkip URLs in that it doesn't allow us to simulate eth_call with no to address
Ok, elaborate on this please! This RPC runs on a reference implementation (i.e. the "official" one) of the Humanode Network node, so if there are any issues with the RPC implementation we should fix them. We have an EVM compatibility layer on the chain, and if we are missing some functionality it would be nice to know what exactly is missing.
I think I understand what you mean. How would you suggest we implement it though? The calls must have some value set at to, so I suppose it would be default-initialized with zero bytes. Further thinking brings me to a question: is it actually required per spec to allow not setting to? Need to double-check, but if not - it should probably be fixed at the evm-diff side, i.e. to make the system in general be able to show at least something for a given chain, and this "allows eth_call without to" to be showcased like an optional feature.
That said - I know our implementation doesn't support tracing just yet. We are planning to add it in the future. Could this be the reason why evm-diff fails?
Fixed it at 972a727 (#86)
Is preview broken? Doesn't work properly for me, but it looks like everything should work...
Setting the to address to the zero address is different than leaving the to address as null or unspecified. https://github.com/mds1/evm-diff/pull/86/commits/972a727b1e8558edb5d32190f24f188e902f987f results in the eth_call executing a regular transaction to the zero address, whereas a null to address results in a contract creation transaction. EVM Diff needs a contract creation, as this means the data bytes are executed directly as initcode, making it easy to check opcode support.
I am unsure what the official RPC spec specifies (if anything) for allowing an empty to address in eth_call.
That said - I know our implementation doesn't support tracing just yet. We are planning to add it in the future. Could this be the reason why
evm-difffails?
No trace methods are used, so this should be ok
Is preview broken? Doesn't work properly for me, but it looks like everything should work...
I believe it currently doesn't work for PRs that come from a fork repo
Setting the to address to the zero address is different than leaving the to address as null or unspecified. 972a727 results in the
eth_callexecuting a regular transaction to the zero address, whereas a null to address results in a contract creation transaction. EVM Diff needs a contract creation, as this means thedatabytes are executed directly as initcode, making it easy to check opcode support.
Ah, I see, makes sense! Looks like indeed can't simulate contract creation. It is a bit odd to do an eth_call to support this from the naming perspective, but why not. I think we can add it.