oasisprotocol / explorer

Official explorer for the Oasis Network.
https://explorer.oasis.io
Apache License 2.0
8 stars 9 forks source link

[Feature]: Support for minimal proxy contracts (EIP-1167) #1536

Open CedarMist opened 2 months ago

CedarMist commented 2 months ago

Is there an existing issue for this?

SUMMARY

Detect EIP-1167 proxies, show information about the target contract (and whether it's verified)

DESCRIPTION

EIP-1167 minimal proxy contracts have a well known bytecode format, unfortunately they can also not be verified using Sourcify.

This makes it difficult to find information about a contract if it was deployed using minimal proxies (such as clone factories).

For example, the following contract is an EIP-1167 proxy: https://explorer.oasis.io/testnet/sapphire/address/0xbA7F3eE55b7939294caFA0F1e096E79722e1BD88/code#code

The runtime bytecode is 0x363d3d373d3d3d363d73243e9b626bc3ca61795600ed5295377423cd4e695af43d82803e903d91602b57fd5bf3, the target of this contract is 0x243e9b626bc3ca61795600ed5295377423cd4e69 - the target contract is verified.

For more details on the minimal proxy: https://blog.openzeppelin.com/deep-dive-into-the-minimal-proxy-contract

So, while the proxy contract isn't verified, the target of the proxy is verified.


Suggestion:

CedarMist commented 2 months ago

Etherscan also supports a variety of proxy contracts, including EIP-1967 and EIP-1167.

The Etherscan UI isn't great though, in fact in some places it's really just annoying. So maybe not the best influence to take inspiration from.

EIP-1167

image

EIP-1967

image