Blockscout Support for OpenZeppelin TransparentUpgradeableProxy contracts

We have recently started using OpenZeppelin TransparentUpgradeableProxy contracts for our upgradeable contracts. Previously we used the OpenZeppelin AdminiUpgradeabilityProxy and blockscout autoamtically recognized the bytecode of those contracts as being proxies and showed the proxy UI for the contract. However, for the newer TransparentUpgradeableProxy contracts, blockscout does not seem to recognize these contracts as being proxy contracts. An example is this contract: Contract 0x959CF9c3f8bDdba69210159c25f77BCE58EADC75 - POA Sokol Explorer This is a contract that uses OpenZeppelin TransparentUpgradeableProxy as described in this post Verify hardhat upgradeable proxy on blockscout - Upgrades - OpenZeppelin Community. Is there a means by which blockscout can recognize these contracts as being proxies?

thanks!
-Hassan

Note that for xdai blockscout, it looks like TransparentUpgradeableProxies are being recognized as proxies. Here is an random TransparentUpgradeableProxy in xdai that has exactly the same deployed bytecode as my reference above in sokol, notice that it does have the proxy UI: Contract 0x621ce133521c3B1cf11C0b9423406F01835af0ee - xDai Explorer

So it looks like this is an issue in Sokol specifically.

1 Like

@habdelra the contract on Sokol has not been verified. You should verify proxy as well as implementation. After that Blockscout automatically will find implementation for the proxy and will show Read/write proxy tabs on the proxy contract. If there will be multiple contracts with the same bytecode, Blockscout will use ABI of verified contract and apply it to unverified contracts as it is on xDai example, that you mentioned.

1 Like

Oh i see, so it’s just the case that no one have verified a TransparentUpgradeableProxy in sokol yet?

Oh i see, so it’s just the case that no one have verified a TransparentUpgradeableProxy in sokol yet?

Yes, at least one contract should be verified with this bytecode.