mds1 / evm-diff

Diff EVM-compatible chains in a friendly format
https://evmdiff.com
MIT License
278 stars 27 forks source link

feat(data): Contracts #36

Closed mds1 closed 1 year ago

mds1 commented 1 year ago

This issue is eligible for a bounty paid out in OP tokens. Read CONTRIBUTING.md to learn how to qualify.

engn33r commented 1 year ago

To expand on the Gnosis Safe thought, there can be questions about whether certain versions of Gnosis Safe contracts are compatible with a specific chain. This question is especially relevant for very young chains.

The easiest way to check whether certain common contracts are deployed could be to search with codeslaw.app (if the chain is supported).

mds1 commented 1 year ago

To expand on the Gnosis Safe thought, there can be questions about whether certain versions of Gnosis Safe contracts are compatible with a specific chain. This question is especially relevant for very young chains.

Do you have more info on this? I wasn't aware certain versions of Safe contracts aren't compatible on other chains. Unless you mean the Safe.sol vs. SafeL2.sol distinction

engn33r commented 1 year ago

I only heard about the Gnosis second hand, but there are two possible incompatibilities that come to mind:

  1. EVM-compatible chains may require modifications to contracts that are deployed to mainnet Ethereum. Such changes could theoretically impact a wide range of popular libraries and dependencies (OopenZeppelin, Gnosis, etc.). If this library has not been deployed to a new EVM-compatible chain yet, or has not had much time to be battle tested, there may be questions about compatibility. This is a general observation and not specific to Gnosis, so tracking the top-5 or top-10 common libraries might make things messy
  2. Open issues on the Safe repo show that there's work underway related to upgrading from 1.3.X to 1.4.X and beyond. The Safe frontend was using 1.3.X last I checked, which means that contracts from the 1.4.X release or newer may not be fully compatible with the Safe frontend. This means that older code should be used if frontend support is important.