Appearance
前言
为了让中文用户更好的了解智能合约,笔者利用业余时间对OpenZeppelin的官方文档进行了翻译。笔者拥有多年的开发经验,文中一些技术点说明采用了更符合中文用户习惯的说法,力求让初学者也可以更好的了解如何开发智能合约。由于笔者非英文专业,在翻译的过程中无法达到信达雅的水平,在各位阅读过程中如发现问题,还望不吝赐教。
原文地址:https://docs.openzeppelin.com/contracts/4.x/
笔者邮箱:francislee.cn.gd@gmail.com
合约
OpenZeppelin是用于开发安全的智能合约库,其代码经过社区的审查并有着坚实的社区基础。
- 实现了标准接口,比如ERC20和ERC721
- 灵活的基于角色授权模式
- 拥有大量可重用的Solidity组件,用来构建定制合约或复杂的去中心化系统
概览
安装
sh
npm install @openzeppelin/contracts
OpenZeppelin合约提供了稳定的API,也就是说在你使用OpenZeppelin合约后,就算进行升级小版本更新,也不会对原有的功能造成破坏。
示例
完成安装后,你可以通过import的方式从库中导入这些合约:
solidity
// contracts/MyNFT.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
contract MyNFT is ERC721 {
constructor() ERC721("MyNFT", "MNFT") {
}
}
提示
如果你刚开始接触智能合约开发,请参考开发智能约合来了解如何创建工程项目,并编译合约。
出于安全因素的考虑,你在使用时应该保持安装合约原样不变,不要从网上进行代码的复制黏贴,或者自己进行修改。开发库会只部署你使用的合约和函数,所以无需担心会耗费多余的燃料费。
安全
如果发现安全方面的问题,请通过bug bounty program on Immunefi 或直接给我们发送邮件security@openzeppelin.org
进一步学习
左边的菜单栏展现了不同的主题,和相应的OpenZeppelin合约如何使用:
完整的API有详细的文档,可以作为开发智能合约的重要参考。你同样可以在社区论坛中获得帮助,获取智能合约开发的代码。
最后,如果你查看我们的教程博客,可以获得更多的示例和最佳实践。以下文章提供了很好的背景阅读,但请注意,随着生态系统中的工具继续快速发展,一些引用的工具已经发生了变化。
- The Hitchhiker’s Guide to Smart Contracts in Ethereum将帮助您了解可用于智能合约开发的各种工具,并帮助您设置环境。
- A Gentle Introduction to Ethereum Programming, Part 1提供了非常有用的介绍性信息,包括以太坊平台的许多基本概念。
- 如需更深入的了解,您可以阅读指南Designing the architecture for your Ethereum application其中讨论了如何更好地构建您的应用程序及其与现实世界的关系。