合约 - OpenZeppelin 文档

本文档介绍了OpenZeppelin Contracts库的使用,它是一个用于安全智能合约开发的库,提供了如ERC20和ERC721等标准的实现,以及灵活的基于角色的权限控制方案和可重用的Solidity组件。文档涵盖了安装、使用方法、安全注意事项以及学习资源。

合约

用于安全智能合约开发的库。 基于社区认可的可靠代码构建。

OpenZeppelin Contracts 使用语义化版本控制来传达其 API 和存储布局的向后兼容性。对于可升级的合约,应假定不同主版本的存储布局不兼容,例如,从 4.9.3 升级到 5.0.0 是不安全的。在 向后兼容性 了解更多信息。

概述

安装

Hardhat (npm)
$ npm install @openzeppelin/contracts
Foundry (git)
通过 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 提供的相关合约:

  • 访问控制:决定谁可以对你的系统执行哪些操作。

  • 代币:创建可交易的资产或收藏品,例如众所周知的 ERC20ERC721 标准。

  • 实用程序:通用的实用工具,包括非溢出数学、签名验证和无需信任的支付系统。

完整的 API 也经过了详尽的记录,并且在开发智能合约应用程序时是一个很好的参考。你还可以在 社区论坛 中寻求帮助或关注 Contracts 的开发。

以下文章提供了很好的背景阅读材料,但请注意,由于生态系统中的工具不断快速发展,一些引用的工具已发生变化。

向导 →

  • 原文链接: docs.openzeppelin.com/co...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
OpenZeppelin
OpenZeppelin
江湖只有他的大名,没有他的介绍。