OpenZeppelin 是一个在 Solidity 开发中广泛使用的开源框架,提供了一套用于构建和管理智能合约的工具和库,特别是在以太坊和 EVM 兼容链平台上。 它为开发者提供了安全、可重用和经过审计的智能合约模块,帮助加快开发过程并减少安全风险。
智能合约库:
安全性:
模块化和可重用性:
升级合约:
工具和服务:
ERC20:用于创建标准的同质化代币。
ERC20.sol
: 实现 ERC20 标准功能的合约。ERC20Mintable.sol
: 支持铸币功能的 ERC20 合约。ERC20Burnable.sol
: 支持代币销毁功能的 ERC20 合约。ERC721:用于创建非同质化代币(NFT)。
ERC721.sol
: 实现 ERC721 标准功能的合约。ERC721Enumerable.sol
: 支持可枚举的 ERC721 合约。ERC721Metadata.sol
: 支持元数据的 ERC721 合约。访问控制:
Ownable.sol
: 实现所有权管理的合约模块。AccessControl.sol
: 实现基于角色的访问控制模块。治理:
Governor.sol
: 实现链上治理的合约模块。TimelockController.sol
: 实现时间锁控制的合约模块。支付:
PaymentSplitter.sol
: 实现支付分配的合约模块。PullPayment.sol
: 实现拉式支付的合约模块。// 使用 OpenZeppelin 创建一个简单的 ERC20 代币合约
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
contract MyToken is ERC20, Ownable {
constructor() ERC20("MyToken", "MTK") {
_mint(msg.sender, 1000000 * 10 ** decimals());
}
function mint(address to, uint256 amount) public onlyOwner {
_mint(to, amount);
}
}