ChainMaker Go (DockerGo) 语言版本智能合约有丰富的 API 接口,供用户在撰写智能合约的时候与链进行交互,代码实现详情可以参考API 接口代码实现。从逻辑方面划分,可将 API 划分为以下类型:
交易信息提取
GetCreatorOrgId() (string, error) |
获取合约创建者所属组织ID |
GetCreatorRole() (string, error) |
获取合约创建者角色 |
GetCreatorPk() (string, error) |
获取合约创建者公钥 |
GetSenderOrgId() (string, error) |
获取交易发起者所属组织ID |
GetSenderRole() (string, error) |
获取交易发起者角色 |
GetTxId() (string, error) |
获取交易ID |
GetSenderPk() (string, error) |
获取交易发起者公钥 |
GetBlockHeight() (int, error) |
获取当前区块高度 |
账本交互
GetState(key string, field string) (string, error) |
获取合约账户信息。该接口可从链上获取类别 “key” 下属性名为 “field” 的状态信息。 |
GetStateFromKey(key string) ([]byte, error) |
获取合约账户信息。该接口可以从链上获取类别为key的状态信息 |
PutState(key string, field string, value string) error |
写入合约账户信息。该接口可把类别 “key” 下属性名为 “filed” 的状态更新到链上。更新成功返回0,失败则返回1。 |
PutStateFromKey(key string, value string) error |
写入合约账户信息。 |
DelState(key string, field string) error |
删除合约账户信息。该接口可把类别 “key” 下属性名为 “name” 的状态从链上删除。 |
CallContract(contractName string, contractVersion string, args map[string][]byte) protogo.Response |
跨合约调用。 |
参数处理
GetArgs() map[string][]byte |
该接口将解析出的参数返还给用户。 |
其他辅助类
Log(message string) |
该接口可记录事件日志。 |
EmitEvent(topic string, data []string) |
发送合约事件 |
NewIterator(startKey string, limitKey string) (ResultSetKV, error) |
新建key范围迭代器,key前闭后开,即:startKey <= dbkey < limitKey |
NewIteratorWithField(key string, startField string, limitField string) (ResultSetKV, error) |
新建field范围迭代器,key需相同,field前闭后开,即:key = dbdbkey and startField <= dbfield < limitField |
NewIteratorPrefixWithKey(key string) (ResultSetKV, error) |
新建指定key前缀匹配迭代器,key需前缀一致,即dbkey.startWith(key) |
NewIteratorPrefixWithKeyField(key string, field string) (ResultSetKV, error) |
新建指定field前缀匹配迭代器,key需相同,field前缀一致,即dbkey = key and dbfield.startWith(field) |
对腾讯云区块链服务平台 TBaaS的解决方案有疑惑?想了解解决方案收费? 联系解决方案专家
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心,购买腾讯云享受折上折,更有现金返利:同意关联,立享优惠
阿里云解决方案也看看?: 点击对比阿里云的解决方案
暂无评论,你要说点什么吗?