Skip to content
On this page

前言

为了让中文用户更好的了解智能合约,笔者利用业余时间对OpenZeppelin的官方文档进行了翻译。笔者拥有多年的开发经验,文中一些技术点说明采用了更符合中文用户习惯的说法,力求让初学者也可以更好的了解如何开发智能合约。由于笔者非英文专业,在翻译的过程中无法达到信达雅的水平,在各位阅读过程中如发现问题,还望不吝赐教。
原文地址:https://docs.openzeppelin.com/contracts/4.x/
笔者邮箱:francislee.cn.gd@gmail.com

合约

OpenZeppelin是用于开发安全的智能合约库,其代码经过社区的审查并有着坚实的社区基础。

概览

安装

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合约如何使用:

  • 访问控制:在你的系统中,谁可以进行哪些操作
  • Tokens:创建可以交易的资产或藏品,例如总所周知的ERC20ERC721
  • 工具:一些通用的工具,包括不会溢出的数学运算,签名验证,可信的支付系统等。

完整的API有详细的文档,可以作为开发智能合约的重要参考。你同样可以在社区论坛中获得帮助,获取智能合约开发的代码。
最后,如果你查看我们的教程博客,可以获得更多的示例和最佳实践。以下文章提供了很好的背景阅读,但请注意,随着生态系统中的工具继续快速发展,一些引用的工具已经发生了变化。

Released under the MIT License.