阅读优秀的合约代码

合约编程虽然不复杂,但大量的运行时限制和非冗余的设计,导致我们在进行合约编码时,不得不参考许多优秀的合约代码,才能保证我们的合约代码质量。

对于许多其他领域的程序员来说,这一步更是非常必要的。我推荐大家在合约编码的过程中,反复参考优秀合约项目的设计思路和编码思维。在这里,我为大家推荐一些我认为不错的智能合约开源项目。

首先,https://github.com/OpenZeppelin">OpenZeppelin 合约是进入 Web3 领域必须反复的阅读的圣经之一,自 2017 年以来,他们实现了大量的 EIP(以太坊改进提案),并成为了智能合约编码的实际标准。虽然,OZ 的合约在 Gas 费用和效率上存在一些问题,但他们在安全性、代码完成度、可维护性、注释和测试方面都做的很好,是值得信赖的合约基础库。最近,OZ 也发布了他们在 StarkNet 上的 https://github.com/OpenZeppelin/cairo-contracts">Cairo 语言版本合约。

https://github.com/Rari-Capital/solmate">Solmate 也提供了一系列对应的 EIP 实现,同时,他们更注重合约的运行效率,优化了执行中的 gas 费用,并且每个合约依赖更少,阅读起来更加简单。

https://www.erc721a.org/">ERC721A 是知名 NFT 项目 https://www.azuki.com/zh">Azuki 发布的 ERC721 改善版本,通过特定的位操作,他们实现了内存占用的优化,带来了批量 mint 低 Gas 费用的优势。如果你的项目涉及到大量 NFT 的铸造,可以参考它的合约代码来进行实现。

https://compound.finance/">Compond 是 DeFi 借贷领域的老牌项目,代码质量经过实践的检验,如果你的项目涉及到 DeFi 相关的需求,请务必阅读他们的合约代码。

https://uniswap.org/">Uniswap 是世界上最大的 DEX,他们的合约实现的非常优秀,无论你是否有 DeFi 方面的需求,我都建议你完整阅读他们的合约代码。

https://lens.dev/">Lenshttps://aave.com/">AAVE 推出的以 NFT 为核心的新型社交合约开发套件(或者他们称之为社交合约协议)如果你的项目设计到 SocialFi,可以参考他们的代码实现。

其次,我想给大家推荐的是 https://zora.co/">Zora v3 版本合约与 https://gnosis-safe.io/">Gonsis safe,前者是著名的 NFT 交易市场退出的交易合约,后者是著名的多签名钱包合约实现。这些都是我们在使用智能合约能够完成的产品当中非常重要的组成部分:

最后,如果你对 DAO 和链上治理感兴趣,我推荐你阅读我编写的 https://twitter.com/codefordao">CodeforDAO 的合约,在这个项目中,实现了传统的治理模式,多签积极治理与模块化合约。