0xSplits / splits-contracts

Core smart contracts of 0xSplits
GNU General Public License v3.0
158 stars 34 forks source link

Verify contracts #7

Closed volkyeth closed 1 year ago

volkyeth commented 1 year ago

Is there any reason why deployed splits are not verified on Etherscan/Sourcify?

wminshew commented 1 year ago

yes we use a custom clone library. You can verify them on etherscan after they've received 1 txn I believe. Less familiar w sourcify

SplitMain itself is verified (which includes the dependencies such as the clone library etc)

volkyeth commented 1 year ago

Oh, so there's no actual code to verify, since it's just the minimal bytecode. Got it.

So, the reason Etherscan does not recognize it as a proxy (before the first txn) is because that is a minimal proxy that does not conform to EIP-1167? Was there any reason to use that instead of the EIP one, besides the 200 gas saved on deploy and 4 gas on calls?

If that is the case, did you folks try reaching out to Etherscan to work out that limitation? It seems like a big deal for general adoption.

wminshew commented 1 year ago

Was there any reason to use that instead of the EIP one .. ?

the gas savings on deploy/call weren't the focus; the focus was full compatibility w solidity send/transfer. The EIP minimal proxy will trigger a delegatecall on every call which will cause the gas-capped send/transfer to fail. Splits were designed to work seamlessly with any calling contract, regardless of the gas cap used to xfr funds

If that is the case, did you folks try reaching out to Etherscan to work out that limitation?

we worked w them for a bit and ended up at the "splits are verified after 1 txn" solution. Maybe you'll have better luck reaching out. So far to the best of our knowledge it hasn't impeded adoption since SplitMain is verified & that's really all devs have needed

volkyeth commented 1 year ago

@wminshew thanks for taking the time to explain 🫡

wminshew commented 1 year ago

@wminshew thanks for taking the time to explain 🫡

🫡