快速开始¶
环境要求¶
依赖软件 | 说明 | 备注 |
---|---|---|
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 |