本节给出了通用存证合约和简易审批合约的示例,为您进行智能合约开发提供方便。
通用存证合约
通用存证合约提供了对区块链账本KV的通用操作接口,支持对数据的读取、写入、历史查询。您可以访问链码源码,并参见打包链码打包成链码包进行使用,也可以直接下载我们已经打包好的链码。
初始化参数
无初始化参数
接口
get
查询区块链存证信息中某个key的当前内容。
参数列表
key:需要读取的存证Key。
返回值:
成功时,存证合约中key所存储的当前内容。
失败时,返回错误原因。
put
向区块链中写入存证信息<key, value>, 如果存证key已经存在,则返回失败。
参数列表
key:需要读取的存证Key。
value:需要存证的信息。
返回值:
成功时,返回存证的key。
失败时,返回错误原因。
set
向区块链中写入存证信息<key, value>, 如果存证key已经存在,则覆盖旧的存证内容。
参数列表
key:需要读取的存证Key。
value:需要存证的信息。
返回值:
成功时,返回存证的key。
失败时,返回错误原因。
history
查询区块链存证信息中某个key的修改历史。
参数列表
key:需要读取的存证Key。
返回值:
成功时,返回key的修改历史(JSON编码)。
失败时,返回错误原因。
简易审批合约
简易审批合约提供了基于区块链的简单任务审批接口,支持创建、查询和审批任务,当任务的状态发生变更时,会产生相应的区块链事件。您可以访问链码源码,并参见打包链码打包成链码包进行使用,也可以直接下载我们已经打包好的链码。
初始化参数
无初始化参数
数据结构
task
type Task struct {
// 任务名称
Name string `json:"name"`
// 任务的创建者
Creator string `json:"creator"`
// 任务需要那些用户同意后,流程才能结束(用户表示方式: ${MSP_ID}.${USER_NAME})
Requires []string `json:"requires"`
// 当前已经同意该任务的用户(用户表示方式: ${MSP_ID}.${USER_NAME})
Approved []string `json:"approved"`
// 任务的描述
Description string `json:"description"`
}
接口
create
创建新的任务流。
参数列表
name:任务的名称。
task:经过JSON编码的任务内容,需要具有
requires
、description
两个字段。
返回值:
成功时,返回成功创建的任务名称。
失败时,返回错误原因。
事件:
触发事件
event-create-task
,事件内容为经过JSON编码的任务内容。
get
获取任务流
参数列表
name:任务的名称。
返回值:
成功时,返回经过JSON编码的任务内容。
失败时,返回错误原因。
approve
同意某个任务
参数列表
name:任务的名称。
返回值:
成功时,返回经过JSON编码的任务内容。
失败时,返回错误原因。
事件:
同意任务后,任务满足结束条件时,触发事件
event-task-finished
,事件内容为经过JSON编码的任务内容。同意任务后,任务未满足结束条件时,触发事件
event-approve-task
,事件内容为经过JSON编码的任务内容。