3.16 openzeppelin庫詳解

尹成發表於2018-11-08
  1. 地址:https://github.com/OpenZeppelin/openzeppelin-solidity
  2. 詳解:https://www.linuxidc.com/Linux/2016-10/135891.htm
  3. 一個在以太坊上建立安全智慧合約的框架,目前整合與Truffle和Embark
  4. 安裝步驟(ubuntu) 
    1. 新建一個自己的合約目錄,進入合約目錄
    2. Truffle init
    3. npm init -y 該步生成一個package.json,內建一些配置資訊
    4. npm install -E openzeppelin-solidity
    5. 匯入:import ‘openzeppelin-solidity/contracts/ownership/Ownable.sol’;
  5. 模組 
    1. access:地址白名單和基於簽名的許可權管理
    2. crowdsale: 用於管理令牌眾籌的一系列智慧合約,允許投資者購買eth代幣
    3. examples:一組簡單的智慧合約,演示如何通過多重繼承向基礎合約新增新功能。
    4. introspection:對ERC165的簡單實現,ERC165用於建立標準方法以釋出和檢測智慧合約實現的介面。
    5. lifecycle:一個用於管理合約及其資金的生命週期和行為的基礎合約集合
    6. math:對發生錯誤的操作進行安全檢查的庫。
    7. mocks:主要用於單元測試的抽象合約集合。
    8. ownership:一個用於管理合約以及TOKEN所有權的集合
    9. payment:可以通過託管安排、取款、索賠管理支付相關的智慧合約集合,支援單個收款人和多個收款人
    10. proposals:對eip-1046的實現,EIP-1046對ERC20做了簡單的擴充套件
    11. token:一組ERC標準介面 主要是ERC20和ERC721
  6. 詳解 
    1. Access
    2. Crowdsale
    3. Examples
    4. Introspection 
      1. ERC165:建立和釋出一個標準方法、用於檢測智慧合約實現的介面
      2. 原始碼地址:https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md
      3. ERC165可以標準化以下內容 
        1. 如何識別介面
        2. 智慧合約如何釋出其實現的介面
        3. 如何檢測智慧合約是否實現了ERC165
        4. 如何檢測智慧合約是否實現了一個給定的介面
      4. SupportsInterfaceWithLookup:查詢支援的介面
    5. Lifecycle 
      1. Destructible:銷燬合約
      2. Pausable:可暫停
      3. TokenDestructible:銷燬token
    6. Math 
      1. Math:簡單的數學操作
      2. SafeMath:帶有安全檢查的數學運算
    7. Mocks
    8. Ownership 
      1. Rbac 
        1. RBAC:Role-Based Access Control 角色控制
        2. Roles:角色操作
      2. CanReclaimToken:可回收TOKEN
      3. Claimable:ownerable合約擴充套件,可用於轉移合約所有權
      4. Ownable:所有權操作
      5. Contactable:設定合約資訊
      6. DelayedClaimable:Claimable合約擴充套件、限制pendingOwner只能在兩個指定的區塊編號之間完成所有權轉移
      7. HasNoContracts:合約所有者可收回合約的所有權
      8. HasNoEther:合約鎖定、阻止以太幣轉入、防止意外丟失
      9. HasNoTokens:TOKEN回收
      10. Superuser:超級使用者:就算不是owner也可轉移合約所有權
      11. Heritable:可繼承合約
    9. Payment 
      1. ConditionalEscrow:收款人取出資金的條件
      2. Escrow:託管、餘額的存取
      3. PullPayment:存款的查詢與取款、支援非同步交易
      4. RefundEscrow:可退款託管
      5. SplitPayment:支援多個收款人按照自己所佔權重/比例來提取資金
    10. Proposals 
      1. ERC721標準為不可替換的令牌引入了“tokenURI”引數來處理後設資料,例如:縮圖、標題、描述、效能等等。這對於加密收藏品和遊戲資產尤其重要。
      2. TokenMetadata:TOKEN後設資料(TokenURI設定與獲取)

 

相關文章