hashgraph / hedera-mirror-node-explorer

Hedera Mirror Node Explorer for the Hedera Hashgraph DLT.
Apache License 2.0
15 stars 12 forks source link

"Read as Proxy" & "Write as Proxy" buttons for Contract Verification in HashScan #1207

Open bmgentile opened 1 month ago

bmgentile commented 1 month ago

Problem

When verifying contracts, we're unable to have proxy contracts offer the option of "read as proxy" or "write as proxy" (typically displayed as buttons) on Hashscan — this directly links a proxy contract to the contract it is engaging and important for users when performing review of contract verification.

Example: https://arbiscan.io/address/0x794a61358d6845594f94dc1db02a252b5b4814ad#code An example of a Proxy Contract — we need "Read as Proxy" and "Write as Proxy" buttons displayed on Hashscan

Solution

Alternatives

None

ericleponner commented 1 month ago

When verifying contracts, we're unable to have proxy contracts offer the option of "read as proxy" or "write as proxy"

Could you give us id of your verified contract on hedera network ?

bmgentile commented 1 month ago

Hey @ericleponner

As an example, this is a Proxy contract - https://hashscan.io/testnet/contract/0.0.4616104?p=1&k=1721737748.124068003 This is the corresponding "implementation" contract - https://hashscan.io/testnet/contract/0.0.4616103?p=1&k=1721645916.344630003

The Proxy contract delegates calls to the implementation contract.

Just so you know, this is just one instance. There are many more Proxy contracts in our suite.

ericleponner commented 1 month ago

Hi @bmgentile Thanks for the information. HashScan offers some support for proxy/logic contracts when they are verified. Have you tried to verify those two contracts ?

See #978

bmgentile commented 1 month ago

Hey @ericleponner — thanks for flagging that! We're seeing the proxy logic now 👍

Some feedback related to this: • Our CTO is an experienced EVM / solidity developer building, deploying, and performing verification using HashScan • It wasn't intuitive / apparent where to find the proxy contract logic until we went digging based on your suggestion • We think, in order to align with expectations / intuition for other Solidity developers familiar with Etherscan, that the proxy contract logic in HashScan is more "front and center" and apparent for developers, similar to how the buttons are displayed on Etherscan clones.

SimiHunjan commented 1 month ago

@bmgentile can you please provide a link that demonstrates the experience you are looking for?

bmgentile commented 4 weeks ago

@bmgentile can you please provide a link that demonstrates the experience you are looking for?

Hey Simi, sure thing!

Here's an example from Arbscan above.

https://arbiscan.io/address/0x794a61358d6845594f94dc1db02a252b5b4814ad#readProxyContract

image

ericleponner commented 4 weeks ago

This one is a verified (proxy) contract. Do you have a proxy contract which is unverified so that we can see the UI ?