快速开始¶
环境要求¶
| 依赖软件 | 说明 | 备注 |
|---|---|---|
| Solidity | 0.4.25 | |
| Git | 下载需要使用Git |
重要
FISCO-BCOS 2.0与3.0对比、JDK版本、WeBankBlockChain-SmartDev及其他子系统的 兼容版本说明
如何获取¶
通过github下载源码:
curl -LO https://github.com/WeBankBlockchain/SmartDev-Contract/releases/download/V1.2.0-alpha/WeBankBlockchain-SmartDev-Contract.V1.2.0-alpha.zip 下载成功后,手动或用命令行解压压缩包:
unzip SmartDev-Contract*.zip 注解
- 如果因为网络问题导致长时间无法下载,请尝试:git clone https://gitee.com/WeBankBlockchain/SmartDev-Contract.git
具体使用方式请参考下文章节中的详细的API。
智能合约详细说明¶
基础类型层¶
| 库 | 功能 | 说明 | API |
|---|---|---|---|
| LibSafeMathForUint256Utils | 数学运算 | 加减乘除、幂、最大值最小值、平均值等 | API |
| LibSafeMathForFloatUtils | 浮点数运算 | 提供了浮点型的相关计算操作,且保证数据的正确性和安全性,包括加法、减法、乘法、除法等操作 | API |
| LibConverter | 整型转换操作 | 和各数据类型之间的转换等 | API |
| LibString | 字符串操作 | 取长度、判断起始终止、查找子父、求子串、拼接、比较、大小写转换等 | API |
| LibAddress | 地址操作 | 和各数据类型之间的转换;合约地址判断等 | API |
| LibArrayForUint256Utils | 数组操作 | 排序、查找、去重、拼接等 | API |
| Lib2DArrayForUint256 | 数组操作 | 提供了Uint256二维数组的相关操作,包括增加新元素,删除元素,修改值,查找值,合并扩展数组等操作 | API |
| LibBits | 位操作 | 提供了位操作方法,例如按位非、移位、取前/后n位等方法 | API |
数据结构层¶
| 库 | 功能 | 说明 | API |
|---|---|---|---|
| LibMaxHeapUint256 | 堆 | 最大堆相关操作,取最值、插入、删除等 | API |
| LibMinHeapUint256 | 堆 | 最小堆相关操作,取最值、插入、删除等 | API |
| LibStack | 栈 | 提供栈相关操作,如进栈、出栈等 | API |
| LibQueue | 队列 | 单向队列相关操作,入队、出队等 | API |
| LibDeque | 队列 | 双向队列相关操作,入队、出队等 | API |
| LibAddressSet | address类型集合 | 集合操作,增删改查等 | API |
| LibBytes32Set | bytes32类型集合 | 提供了存储Bytes32类型的Set数据结构,支持包括add, remove, contains, getAll等 | API |
| LibBytesMap | 映射 | 映射操作,存、取、移除等 | API |
| LibLinkedList | 双向链表 | 链表相关操作 | API |
| LibSingleList | 单向链表 | 包括链表更新、查询、迭代等 | API |
| DataTable | 模拟数据库表的实现 | 提供了模拟row、table等实现 | API |
| Map | 模拟映射的实现 | 提供了基于bytes32主键、自定义类型值的可迭代、可查询的映射 | API |
| LibMerkleTree | 默克尔树实现 | 提供了默克尔树的生成和验证方法 | API |
通用功能层¶
| 库 | 功能 | 说明 | API |
|---|---|---|---|
| Table | CRUD合约 | 提供CRUD体验 | CRUD |
| Crypto | 密码学 | 国密哈希、验签、VRF等 | API |
| LibCryptoHash | 内置密码相关的函数 | keccak256、sha3、ripemd160等 | API |
| LibDecode | 验签 | 验证签名等功能等 | API |
| proxy | 代理模式 | 代理执行即代理模式的实现 | API |
| internalFunction | 内置相关的函数 | 包括block,tx相关等 | API |
常用工具层¶
| 库 | 功能 | 说明 | API |
|---|---|---|---|
| DateTimeContract | 时间戳解析 | 基于时间戳计算当前的日期 | API |
| DGHV | 同态加密 | 一种基于智能合约的全同态加密方法 | API |
| FiatShamirZK | 同态加密 | 一种零知识证明协议方法 | API |
| RBAC | 基于角色的权限管理 | RBAC | API |
| RoleOperation | 角色操作 | RoleOperation | API |
| whiteList | 白名单操作 | 白名单管理的实现 | API |
| MathAdvance | 数学运算 | 开方,平方,对数,幂 | API |
| LibAscii | asc码转换 | asc码转换 | API |
上层业务层¶
| 库 | 功能 | 说明 | 文档 |
|---|---|---|---|
| Evidence | 存证 | 存证场景相关操作,上传、审批、修改、删除等 | API |
| evidence_plus | 存证 | 存证合约 Plus 版本 | API |
| MarriageEvidence | 婚姻证明 | 结婚证书合约实例 | API |
| redpacket | 发红包 | 红包发放的场景 | API |
| SimplePoint | 积分 | 简单的积分场景 | API |
| RewardPoint | 积分 | 积分场景相关操作,发行、转移等 | API |
| bill | 金融票据 | 可以发布票据、对票据进行背书、验证背书、拒绝背书等操作 | API |
| CarbonFrugalEvidence | 共享充电积分能量存证合约 | 积分场景相关操作,发行、转移等 | API |
| Traceability | 商品溯源 | 实现商品溯源的案例 | API |
| BookShares | 股权簿记系统 | 实现公司股权簿记的案例 | API |
| Chattel | 金融动产 | 实现金融动产案例 | API |
| SharedBikes | 共享单车 | 实现共享单车的案例 | API |
| GovOffice | 政府办公 | 实现政府办公的案例 | API |