快速开始

环境要求

依赖软件 说明 备注
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

注解

具体使用方式请参考下文章节中的详细的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

合约杂谈

文章 说明 链接 作者
SmartBasics 智能合约入门 链接 yekai
ContractTips 合约开发杂谈 链接 江会文