本文档介绍了OpenZeppelin Contracts库的使用,它是一个用于安全智能合约开发的库,提供了如ERC20和ERC721等标准的实现,以及灵活的基于角色的权限控制方案和可重用的Solidity组件。文档涵盖了安装、使用方法、安全注意事项以及学习资源。
用于安全智能合约开发的库。 基于社区认可的可靠代码构建。
灵活的 基于角色的权限控制 方案。
可复用的 Solidity 组件 用于构建自定义合约和复杂的去中心化系统。
OpenZeppelin Contracts 使用语义化版本控制来传达其 API 和存储布局的向后兼容性。对于可升级的合约,应假定不同主版本的存储布局不兼容,例如,从 4.9.3 升级到 5.0.0 是不安全的。在 向后兼容性 了解更多信息。 |
$ npm install @openzeppelin/contracts
通过 git 安装时,一个常见的错误是使用 master 分支。这是一个开发分支,应避免使用,而应选择标记的发行版本。发布过程涉及 master 分支不能保证的安全措施。 |
Foundry 最初安装最新版本,但随后的 forge update 命令将使用 master 分支。 |
$ forge install OpenZeppelin/openzeppelin-contracts
在 remappings.txt
中添加 @openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/
。
安装完成后,你可以通过导入来使用库中的合约:
// contracts/MyNFT.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import {ERC721} from "@openzeppelin/contracts/token/ERC721/ERC721.sol";
contract MyNFT is ERC721 {
constructor() ERC721("MyNFT", "MNFT") {}
}
如果你是智能合约开发新手,请前往 Developing Smart Contracts 了解有关创建新项目和编译合约的信息。 |
为了保持系统的安全性,你应该始终按原样使用已安装的代码,既不要从在线资源复制粘贴,也不要自己修改。 该库的设计使得仅部署你使用的合约和函数,因此你无需担心它会不必要地增加 gas 成本。
请通过我们在 Immunefi 上的 漏洞赏金计划 或直接发送至 security@openzeppelin.org 报告你发现的任何安全问题。
安全中心 包含有关安全开发过程的更多详细信息。
侧边栏中的指南将介绍不同的概念,以及如何使用 OpenZeppelin Contracts 提供的相关合约:
完整的 API 也经过了详尽的记录,并且在开发智能合约应用程序时是一个很好的参考。你还可以在 社区论坛 中寻求帮助或关注 Contracts 的开发。
以下文章提供了很好的背景阅读材料,但请注意,由于生态系统中的工具不断快速发展,一些引用的工具已发生变化。
以太坊智能合约的搭便车指南 将帮助你了解可用于智能合约开发的各种工具,并帮助你设置环境。
以太坊编程入门,第 1 部分 在入门级别提供了非常有用的信息,包括以太坊平台的许多基本概念。
要想更深入地了解,你可以阅读指南 为你的以太坊应用程序设计架构,其中讨论了如何更好地构建你的应用程序及其与现实世界的关系。
- 原文链接: docs.openzeppelin.com/co...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!