openzeppelin学习笔记 - 1

openzeppelin是一个智能合约的公共库,他提供了一些基础的合约作为开发合约的基本框架。

在它的库中提供了如下合约:

  • access 权限控制相关合约
    • roles
      • CapperRole.sol
      • MinterRole.sol
      • PauserRole.sol
      • SignerRole.sol
    • Roles.sol
  • crowdsale 众筹相关合约
    • distribution
      • FinalizableCrowdsale.sol
      • PostDeliveryCrowdsale.sol
      • RefundableCrowdsale.sol
    • emission
      • AllowanceCrowdsale.sol
      • MintedCrowdsale.sol
    • price
      • IncreasingPriceCrowdsale.sol
    • validation
      • CappedCrowdsale.sol
      • IndividuallyCappedCrowdsale.sol
      • TimedCrowdsale.sol
    • Crowdsale.sol
  • cryptography 加密相关合约
    • ECDSA.sol
    • MerkleProof.soll
  • drafts 草稿-开发中的合约
    • ERC1046
      • TokenMetadata.sol
    • Counter.sol
    • ERC20Migrator.sol
    • SignatureBouncer.sol
    • TokenVesting.sol
  • introspection 不是很清楚与ERC-165相关
    • ERC165.sol
    • ERC165Checker.sol
    • IERC165.sol
  • lifecycle 用于管理合约行为相关
    • Pausable.sol
  • math 数学相关类库
    • Math.sol
    • SafeMath.sol
  • ownership 所有权相关
    • Ownable.sol
    • Secondary.sol
  • payment 支付相关
    • escrow
      • PaymentSplitter.sol
      • PullPayment.sol
  • token token相关合约接口
    • ERC20
      • ERC20.sol
      • ERC20Burnable.sol
      • ERC20Capped.sol
      • ERC20Detailed.sol
      • ERC20Mintable.sol
      • ERC20Pausable.sol
      • IERC20.sol
      • SafeERC20.sol
      • TokenTimelock.sol
    • ERC721
      • ERC721.sol
      • ERC721Burnable.sol
      • ERC721Enumerable.sol
      • ERC721Full.sol
      • ERC721Holder.sol
      • ERC721Metadata.sol
      • ERC721MetadataMintable.sol
      • ERC721Mintable.sol
      • ERC721Pausable.sol
      • IERC721.sol
      • IERC721Enumerable.sol
      • IERC721Full.sol
      • IERC721Metadata.sol
      • IERC721Receiver.sol
  • utils 工具类库
    • Address.sol
    • Array.sol
    • ReentrancyGuard.sol

    基于openzeppelin开发时只需要继承相关合约就可以实现相关的基础功能,大大提高了开发效率。