Content pfp
Content
@
0 reply
0 recast
2 reactions

Brandon pfp
Brandon
@bhgomes
why y’all still writing in Solidity? https://makemake.site/post/solidity-considered-harmful
4 replies
3 recasts
11 reactions

CBobRobison pfp
CBobRobison
@cr
Vyper is great If you wanted to get real crazy, a most unpopular opinion might be to use Vyper w/an EIP-2535 compliant smart contract framework. The gas efficiencies would be insane Another alternative could be ethscriptions. Doesn't use any language. Or smart contracts for that matter. 40x more efficient than ERC721
1 reply
1 recast
1 reaction

Brandon pfp
Brandon
@bhgomes
i thought diamonds were a negative pattern. what’s the selling point?
1 reply
0 recast
1 reaction

CBobRobison pfp
CBobRobison
@cr
More efficient variable storage via libraries mitigate against "stack too deep" errors and reduce gas costs. We wrote 2 implementations of meTokens. One with a standard Open Zeppelin style framework. And one with a diamond framework. Iirc the diamond framework was about 12% more gas efficient and is what we deployed.
2 replies
0 recast
1 reaction

Brandon pfp
Brandon
@bhgomes
i wonder why people don’t like it
1 reply
0 recast
1 reaction

CBobRobison pfp
CBobRobison
@cr
It's entirely because of this Trail of Bits blog. Primary criticisms: 1. hard to read - it's not 2. upgrades are risky - so are OpenZeppelin's 3. bad name - @vitalik.eth named the original Ethereum logo ETH_FACET.jpeg https://blog.trailofbits.com/2020/10/30/good-idea-bad-design-how-the-diamond-standard-falls-short/
1 reply
0 recast
1 reaction

Brandon pfp
Brandon
@bhgomes
how difficult are upgrades generally? what are the major risks here?
1 reply
0 recast
1 reaction

CBobRobison pfp
CBobRobison
@cr
Writing & testing the code can be quite challenging. The major risk is always that the author(s) of the upgraded contract(s) included bad or outright malicious code and nobody caught it during the (i) audits, (ii) peer reviews, or (iii) governance processes. Which ofc could lead to lost or stolen funds.
1 reply
0 recast
1 reaction

CBobRobison pfp
CBobRobison
@cr
This is one reason why protocols like Uniswap build distinctly separate v1, v2, v3, v4. Instead of changing the contracts live with everyone's liquidity at stake, they deploy new contacts altogether and ask users to withdraw from a previous version and redeposit in a new version.
0 reply
0 recast
2 reactions