合约 API 列表(Java)

最近更新时间:2019-09-05 10:21:42

Fabric Java 语言版本智能合约有丰富的 API 接口,具体的代码实现可以参考 API接口代码实现
从逻辑上划分,可将 API 接口分为以下类型:

交易信息提取

接口 说明
byte[] getBinding() 返回交易的 binding 信息
String getChannelId() 获取当前的通道名称
byte[] getCreator() 获取交易提交者信息
SignedProposal getSignedProposal() 获取交易提案相关数据
Map<String, byte[]> getTransient() 获取交易的临时信息
String getTxId() 获取交易的交易 ID
Instant getTxTimestamp() 获取交易时间戳

账本交互

接口 说明
void putState(String key, byte[] value) 在账本中添加或者更新一对键值
void putStringState(String key, String value) 在账本中添加或者更新一对键值
byte[] getState(String key) 获取指定键对应的值
String getStringState(String key) 获取指定键对应的值
void delState(String key) 在账本中删除对应的键值
QueryResultsIterator<KeyValue> getStateByRange(String startKey, String endKey) 查询指定范围内的键值
QueryResultsIteratorWithMetadata<KeyValue> getStateByRangeWithPagination(String startKey, String endKey, int pageSize, String bookmark) 分页查询指定范围内的键值
QueryResultsIterator<KeyValue> getStateByPartialCompositeKey(String compositeKey) 查询匹配局部复合键的所有键值
QueryResultsIterator<KeyValue> getStateByPartialCompositeKey(String objectType, String... attributes) 查询匹配局部复合键的所有键值
QueryResultsIterator<KeyValue> getStateByPartialCompositeKey(CompositeKey compositeKey) 查询匹配局部复合键的所有键值
QueryResultsIteratorWithMetadata<KeyValue> getStateByPartialCompositeKeyWithPagination(CompositeKey compositeKey, int pageSize, String bookmark) 分页查询匹配局部复合键的所有键值
QueryResultsIterator<KeyValue> getQueryResult(String query) 查询状态数据库,需要支持富查询功能的状态数据库
QueryResultsIteratorWithMetadata<KeyValue> getQueryResultWithPagination(String query, int pageSize, String bookmark) 分页查询状态数据库,需要支持富查询功能的状态数据库
QueryResultsIterator<KeyModification> getHistoryForKey(String key) 返回对应键的所有历史值
void setStateValidationParameter(String key, byte[] value) 设置特定键的背书策略
byte[] getStateValidationParameter(String key) 获取特定键的背书策略
byte[] getPrivateData(String collection, String key) 获取指定私有数据集集中的键的值
String getPrivateDataUTF8(String collection, String key) 获取指定私有数据集集中的键的值
byte[] getPrivateDataHash(String collection, String key) 获取指定私有数据集集中的键的值的 hash
void putPrivateData(String collection, String key, byte[] value) 设置指定私有数据集集中键的值
void putPrivateData(String collection, String key, String value) 设置指定私有数据集集中键的值
void delPrivateData(String collection, String key) 删除指定私有数据集集中对应的键
void setPrivateDataValidationParameter(String collection, String key, byte[] value) 设置指定私有数据集集中键的背书策略
byte[] getPrivateDataValidationParameter(String collection, String key) 获取指定私有数据集集中键的背书策略
QueryResultsIterator<KeyValue> getPrivateDataByRange(String collection, String startKey, String endKey) 获取指定私有数据集集中特定范围键的键值
QueryResultsIterator<KeyValue> getPrivateDataByPartialCompositeKey(String collection, String compositeKey) 获取指定私有数据集集中匹配局部复合键的键值
QueryResultsIterator getPrivateDataByPartialCompositeKey(String collection, CompositeKey compositeKey) 获取指定私有数据集集中匹配局部复合键的键值
QueryResultsIterator<KeyValue> getPrivateDataByPartialCompositeKey(String collection, String objectType, String... attributes) 获取指定私有数据集集中匹配局部复合键的键值
QueryResultsIterator<KeyValue> getPrivateDataQueryResult(String collection, String query) 获取指定私有数据集集中特定查询的键值,需要支持富查询功能的状态数据库

参数处理

接口 说明
List<byte[]> getArgs() 获取智能合约中调用参数
List<String> getStringArgs() 获取智能合约中调用参数
String getFunction() 获取智能合约调用的函数名,默认第一个参数为函数名
List<String> getParameters() 获取智能合约调用的参数

其他辅助类

接口 说明
CompositeKey createCompositeKey(String objectType, String... attributes) 组合属性,形成复合键
CompositeKey splitCompositeKey(String compositeKey) 拆分复合键成一系列属性
Response invokeChaincode(final String chaincodeName, final List<byte[]> args, final String channel) 调用其它智能合约 invoke 方法
Response invokeChaincode(String chaincodeName, List<byte[]> args) 调用其它智能合约 invoke 方法
Response invokeChaincodeWithStringArgs(String chaincodeName, List<String> args, String channel) 调用其它智能合约 invoke 方法
Response invokeChaincodeWithStringArgs(String chaincodeName, List<String> args) 调用其它智能合约 invoke 方法
Response invokeChaincodeWithStringArgs(final String chaincodeName, final String... args) 调用其它智能合约 invoke 方法
void setEvent(String name, byte[] payload) 设置发送的事件
ChaincodeEvent getEvent() 获取发送的事件