Patrick Collins
2 min readJul 26, 2021

--

Hi Nick,

Thanks for this comment, and thanks again for building this standard. It seems like something that will become popular over time, as the advantages of diamonds seem like they are going to be crazy helpful in the near future, like contracts larger than the block size and more modular upgradability.

On the topic of clashes, it would appear that the clashes are possible, but unlikely, which is really where the issue lies, unless I'm reading the code wrong (which could be possible). Something like Openzeppelin's transparent proxy upgrade pattern does something that I quite like. It disallows the admin contract calling implementation functions at all, this makes having any issue there impossible, which I quite like.

I understand you saying "you can test for it and anyone should be able to catch those obvious issues", but it would seem that is reason for me to advise that you be well versed in solidity and everything that goes on so you don't accidentally do something stupid. Developers are human after all. I do stupid stuff pretty much everyday. Every tool that I use that I can use with confidence I won't shoot myself in the foot is a good tool.

At the end of the day though, I think you're right, the diamond standard is a much needed standard in the ecosystem, and one that should be implemented more. I'll edit the article a bit based on that. Something I can't get past is the name... it feels very counterintuitive. I'd love a name like "multi-transparent proxy" -> https://github.com/ethereum/EIPs/issues/2535#issuecomment-846649104

In any case, thank you for this comment, and yes I'll do a little updating.

--

--

Patrick Collins
Patrick Collins

Written by Patrick Collins

Lover of smart contract engineering and security

No responses yet