ComBoox - 白皮书
  • 👋欢迎访问ComBoox!
  • 🚀系统综述
    • 🎆系统综述
      • ⛔公司治理难题
      • 💡区块链解决方案
      • 💰通证化与公司估值
      • ✨特点与优势
    • ⚙️设计理念和基本架构
      • 🖥️计算控制模型
      • 🏗️系统架构
      • 🚷身份识别与权限控制
      • 📐合约模版及版本控制
      • 💰CBP代币与系统经济模型
      • 💸财务记录
      • ☝️几个关键性法律问题
    • 🥇许可协议
  • 🕹️操作指南
    • 🛣️新手上路
    • ✒️起草《股东协议》
    • 💺提名董事并取得席位
    • 🗞️股权投资与股份交易
  • 📚技术手册
    • 🌻核心对象
      • 🗞️股份及股份库
      • 👨‍👨‍👧‍👧股东及股东库
      • 💺职位及官员库
      • 🗳️动议及动议库
        • ✍️委托代理映射表
        • 🗳️表决票及表决票箱
      • 🛍️交易及交易库
        • 🔄互换合约及互换合约库
      • 📈卖单及卖单库
      • 📑质权及质权库
      • ⚖️期权及期权库
      • 📏规则及其解析库
      • 🍵反稀释条款
      • 🔐锁定期条款
      • 🚜随售拖售条款
      • 🛸期权条款
    • 🛠️数据结构及组件
      • ⏱️历史状态序列库
      • 🏁T型链表库
      • 🥇黄金链表库
      • 🔤可枚举集合库
      • 🔄条件及条件库
      • 🔐哈希锁及保险箱
      • 🖋️签名及签字页
      • 📂文件及文件库
      • 🗄️文档及文档库
    • 👨‍🚀身份及身份识别
      • 😜角色及角色库
      • 🚷访问控制合约
      • 🦸用户及用户库
    • 🏄‍♀️法律行为及逻辑流程
      • 🤝股权交易
Powered by GitBook
On this page
  • 功能与用途
  • 成员与属性
  • 可枚举集合对象
  • 查询接口
  • 源代码
  1. 技术手册
  2. 数据结构及组件

可枚举集合库

Previous黄金链表库Next条件及条件库

Last updated 1 year ago

功能与用途

可枚举集合库是OpenZeplin项目组定义的以MIT开源协议共享的公共库合约,由集合对象及一系列方法构成,可用于存储Bytes32、Address、Uint三种数据类型的无重复枚举元素集合。它既可以根据元素的值来判断是否被集合所包含,也可以快速的查询获取集合元素的总数量、所有元素的列表,并且可以按元素编号查询获取元素的值。

成员与属性

可枚举集合库主要的成员包括可枚举集合对象及以之为内核包裹衍生的Bytes32集合对象、Address集合对象和Uint集合对象。

可枚举集合对象

可枚举集合对象由一个不定长bytes32类型数组和一个“元素值->索引号”的映射表构成。这种结构既可以通过数组快速获取集合的元素总个数、所有元素列表,又可以根据元素值从映射表中快速查询到对应的数组元素序号(索引号-1),进而可以判断元素是否已被集合所包含(索引号>0),而且在删除元素时也可快速定位并删除特定的数组元素。

集合对象的属性列表

属性
商业法律含义

_values

不定长bytes32类型数组。

_indexes

"元素值->索引号"映射表。

查询接口

查询接口最能体现可枚举集合库在整个系统中的功能和用途,具体请见下表。

接口名称
商业法律含义

contains

按元素值查询其是否被集合所包含。

length

获取集合的元素个数。

at

按数组编号获取元素值。

values

获取集合中所有元素列表。

源代码

📚
🛠️
🔤
EnumerableSet
可枚举集合对象结构