接口列表¶
标签:c-sdk API
本章节介绍c-sdk的API列表,模块列表:
1. 基础操作¶
本小节介绍c-sdk的基础操作,包括sdk对象的创建、启动、停止、释放。
bcos_sdk_version¶
原型:
const char* bcos_sdk_version()
功能:
获取c-sdk的版本以及构建信息
参数:
无
返回:
字符串类型,包括c-sdk的版本以及构建信息,示例:
FISCO BCOS C SDK Version : 3.1.0 Build Time : 20220915 11:11:11 Build Type : Darwin/appleclang/Release Git Branch : main Git Commit : dbc82415510a0e59339faebcd72e540fe408d2d0
注意:
返回的字符串需要调用
bcos_sdk_c_free释放,以免造成内存泄露
bcos_sdk_create¶
原型:
void* bcos_sdk_create(struct bcos_sdk_c_config* config)
功能:
创建
sdk对象指针
参数:
config: 配置对象, 参考配置对象
返回:
返回
sdk指针失败返回
NULL,可以调用bcos_sdk_get_last_error获取错误信息, 参考bcos_sdk_get_last_error接口介绍
注意:
创建的
sdk对象,需要由bcos_sdk_destroy接口释放,以免内存泄露
bcos_sdk_create_by_config_file¶
原型:
void* bcos_sdk_create_by_config_file(const char *config_file)
功能:
创建
sdk对象指针
参数:
config_file: 配置文件, 参考配置文件
返回:
返回
sdk指针失败返回
NULL,可以调用bcos_sdk_get_last_error获取错误信息, 参考bcos_sdk_get_last_error接口介绍
注意:
创建的
sdk对象,需要由bcos_sdk_destroy接口释放,以免内存泄露
bcos_sdk_start¶
原型:
void bcos_sdk_start(void* sdk)
功能:
启动
sdk
参数:
sdk:
sdk指针
返回:
无, 可以使用
bcos_sdk_get_last_error确认是否启动成功, 参考bcos_sdk_get_last_error介绍
bcos_sdk_stop¶
原型:
void bcos_sdk_stop(void* sdk)
功能:
停止
sdk
参数:
sdk:
sdk指针
返回:
无
bcos_sdk_destroy¶
原型:
void bcos_sdk_destroy(void* sdk)
功能:
停止并且释放
sdk
参数:
sdk:
sdk指针
返回: 无
bcos_sdk_c_free¶
原型:
void bcos_sdk_c_free(void* p)
功能:
释放内存
参数:
p: 指针
返回: 无
2. 错误处理¶
本小节介绍c-sdk的错误处理接口。
注意: 这些接口仅仅对同步调用接口有效,异步接口的错误信息在回调中返回。
bcos_sdk_is_last_opr_success¶
原型:
int bcos_sdk_is_last_opr_success()
功能:
最近一次操作是否成功,等价于
bcos_sdk_get_last_error返回结果不为0。
参数:
无
返回:
0: 操作失败
1: 操作成功
bcos_sdk_get_last_error¶
原型:
int bcos_sdk_get_last_error()
功能:
获取上一次操作的返回状态, 失败时可以调用
bcos_sdk_get_last_error_msg获取错误描述信息
参数:
无
返回:
0: 成功, 其他表示错误码, 可以使用
bcos_sdk_get_last_error_msg获取错误描述信息
bcos_sdk_get_last_error_msg¶
原型:
const char* bcos_sdk_get_last_error_msg()
功能:
获取上一次操作的错误信息描述, 与
bcos_sdk_get_last_error配合使用
参数:
无
返回: 错误描述信息
3. RPC接口¶
本小节介绍如何在c-sdk中调用FISCO-BCOS 3.0的rpc接口,与节点交互。
bcos_rpc_call¶
原型:
void bcos_rpc_call(void* sdk, const char* group, const char* node, const char* to, const char* data, bcos_sdk_c_struct_response_cb callback, void* context)
功能:
调用合约,查询操作,无需共识
参数:
sdk:sdk指针group: 群组IDnode: 节点名称, 请求发往的节点名称(节点名称可以通过getGroupInfo获取), 值为NULL或者空字符串时, 在群组中按最高块高的原则, 随机选择一个节点to: 合约地址data: 编码后的参数调用
solidity合约时为ABI编码调用
liquid合约时为liquid编码
callback: 回调函数, 函数原型:typedef void (*bcos_sdk_c_struct_response_cb)(struct bcos_sdk_c_struct_response* resp)
bcos_sdk_c_struct_response定义及字段含义:struct bcos_sdk_c_struct_response { int error; // 返回状态, 0成功, 其他失败 char* desc; // 失败时描述错误信息 void* data; // 返回数据, error=0 时有效 size_t size; // 返回数据大小, error=0 时有效 void* context; // 回调上下文,调用接口时传入的`context`参数 };
!!!注意: 回调的数据
data仅在回调线程有效,多线程场景下,用户需自行拷贝保证数据的线程安全context: 回调上下文, 在回调bcos_sdk_c_struct_response中context字段返回
返回:
无
bcos_rpc_send_transaction¶
原型:
void bcos_rpc_send_transaction(void* sdk, const char* group, const char* node, const char* data, int proof, bcos_sdk_c_struct_response_cb callback, void* context)
功能:
发送交易,需要区块链共识
参数:
sdk:sdk指针group: 群组IDnode: 节点名称, 参考bcos_rpc_call接口对node的说明data: 签名的交易,十六进制c风格字符串proof: 是否返回交易回执证明, 0:不返回,1:返回callback: 参考bcos_rpc_call接口对callback的说明context: 参考bcos_rpc_call接口对context的说明
返回:
无
bcos_rpc_get_transaction¶
函数原型:
void bcos_rpc_get_transaction(void* sdk, const char* group, const char* node, const char* tx_hash,int proof, bcos_sdk_c_struct_response_cb callback, void* context)功能:
根据交易哈希获取交易
参数:
sdk:sdk指针group: 群组IDnode: 节点名称, 参考bcos_rpc_call接口对node的说明tx_hash: 交易哈希proof: 是否返回交易证明, 0:不返回, 1:返回callback: 参考bcos_rpc_call接口对callback的说明context: 参考bcos_rpc_call接口对context的说明
返回:
无
bcos_rpc_get_transaction_receipt¶
原型:
void bcos_rpc_get_transaction_receipt(void* sdk, const char* group, const char* node, const char* tx_hash, int proof, bcos_sdk_c_struct_response_cb callback, void* context)
功能:
根据交易哈希获取交易回执
参数:
sdk:sdk指针group: 群组IDnode: 节点名称, 参考bcos_rpc_call接口对node的说明tx_hash: 交易哈希proof: 是否返回交易回执证明, 0: 不返回,1: 返回callback: 参考bcos_rpc_call接口对callback的说明context: 参考bcos_rpc_call接口对context的说明
返回:
无
bcos_rpc_get_block_by_hash¶
原型:
void bcos_rpc_get_block_by_hash(void* sdk, const char* group, const char* node,const char* block_hash, int only_header, int only_tx_hash, bcos_sdk_c_struct_response_cb callback, void* context)
功能:
根据区块哈希获取区块
参数:
sdk:sdk指针group: 群组IDnode: 节点名称, 参考bcos_rpc_call接口对node的说明block_hash: 区块哈希only_header: 是否只获取区块头, 1: 是, 0: 否only_tx_hash: 是否只获取区块的交易哈希, 1: 是, 0: 否callback: 参考bcos_rpc_call接口对callback的说明context: 参考bcos_rpc_call接口对context的说明
返回:
无
bcos_rpc_get_block_by_number¶
原型:
void bcos_rpc_get_block_by_number(void* sdk, const char* group, const char* node, int64_t block_number, int only_header, int only_tx_hash, bcos_sdk_c_struct_response_cb callback, void* context)
功能:
根据块高获取区块
参数:
sdk:sdk指针group: 群组IDnode: 节点名称, 参考bcos_rpc_call接口对node的说明block_number: 区块高度only_header: 是否只获取区块头, 1: 是, 0: 否only_tx_hash: 是否只获取区块的交易哈希, 1: 是, 0: 否callback: 参考bcos_rpc_call接口对callback的说明context: 参考bcos_rpc_call接口对context的说明
返回:
无
bcos_rpc_get_block_hash_by_number¶
原型:
void bcos_rpc_get_block_hash_by_number(void* sdk, const char* group, const char* node, int64_t block_number, bcos_sdk_c_struct_response_cb callback, void* context)
功能:
根据块高获取区块哈希
参数:
sdk:sdk指针group: 群组IDnode: 节点名称, 参考bcos_rpc_call接口对node的说明block_number: 区块高度callback: 参考bcos_rpc_call接口对callback的说明context: 参考bcos_rpc_call接口对context的说明
返回: 无
bcos_rpc_get_block_limit¶
原型:
int64_t bcos_rpc_get_block_limit(void* sdk, const char* group)
功能:
获取块高限制,创建签名交易时需要使用
参数:
sdk:sdk指针group: 群组ID
返回:
>0时返回block limit值<=0表示获取失败,此时表示查询不到该群组
bcos_rpc_get_block_number¶
原型:
void bcos_rpc_get_block_number(void* sdk, const char* group, const char* node,bcos_sdk_c_struct_response_cb callback, void* context)
功能:
获取群组块高
参数:
sdk:sdk指针group: 群组IDnode: 节点名称, 参考bcos_rpc_call接口对node的说明callback: 参考bcos_rpc_call接口对callback的说明context: 参考bcos_rpc_call接口对context的说明
返回:
无
bcos_rpc_get_code¶
原型:
void bcos_rpc_get_code(void* sdk, const char* group, const char* node, const char* address,bcos_sdk_c_struct_response_cb callback, void* context)
功能:
根据合约地址,查询合约代码
参数:
sdk:sdk指针group: 群组IDnode: 节点名称, 参考bcos_rpc_call接口对node的说明address: 合约地址callback: 参考bcos_rpc_call接口对callback的说明context: 参考bcos_rpc_call接口对context的说明
返回: 无
bcos_rpc_get_sealer_list¶
原型:
void bcos_rpc_get_sealer_list(void* sdk, const char* group, const char* node,bcos_sdk_c_struct_response_cb callback, void* context)
功能:
获取群组共识节点列表
参数:
sdk:sdk指针group: 群组IDnode: 节点名称, 参考bcos_rpc_call接口对node的说明callback: 参考bcos_rpc_call接口对callback的说明context: 参考bcos_rpc_call接口对context的说明
返回:
无
bcos_rpc_get_observer_list¶
原型:
void bcos_rpc_get_observer_list(void* sdk, const char* group, const char* node,bcos_sdk_c_struct_response_cb callback, void* context)
功能:
获取群组观察节点列表
参数:
sdk:sdk指针group: 群组IDnode: 节点名称, 参考bcos_rpc_call接口对node的说明callback: 参考bcos_rpc_call接口对callback的说明context: 参考bcos_rpc_call接口对context的说明
返回:
无
bcos_rpc_get_pending_tx_size¶
原型:
void bcos_rpc_get_pending_tx_size(void* sdk, const char* group, const char* node,bcos_sdk_c_struct_response_cb callback, void* context)
功能:
获取交易池待打包的交易数量
参数;
sdk:sdk指针group: 群组IDnode: 节点名称, 参考bcos_rpc_call接口对node的说明callback: 参考bcos_rpc_call接口对callback的说明context: 参考bcos_rpc_call接口对context的说明
返回:
空
bcos_rpc_get_sync_status¶
原型:
void bcos_rpc_get_sync_status(void* sdk, const char* group, const char* node,bcos_sdk_c_struct_response_cb callback, void* context)
功能:
获取群组的区块同步状态
参数;
sdk:sdk指针group: 群组IDnode: 节点名称, 参考bcos_rpc_call接口对node的说明callback: 参考bcos_rpc_call接口对callback的说明context: 参考bcos_rpc_call接口对context的说明
返回:
无
bcos_rpc_get_consensus_status¶
原型:
void bcos_rpc_get_consensus_status(void* sdk, const char* group, const char* node,bcos_sdk_c_struct_response_cb callback, void* context)
功能:
获取节点的共识状态
参数:
sdk:sdk指针group: 群组IDnode: 节点名称, 参考bcos_rpc_call接口对node的说明callback: 参考bcos_rpc_call接口对callback的说明context: 参考bcos_rpc_call接口对context的说明
返回:
无
bcos_rpc_get_system_config_by_key¶
原型:
void bcos_rpc_get_system_config_by_key(void* sdk, const char* group, const char* node,const char* key,bcos_sdk_c_struct_response_cb callback, void* context)
功能:
获取系统配置
参数:
sdk:sdk指针group: 群组IDnode: 节点名称, 参考bcos_rpc_call接口对node的说明key: 配置keycallback: 参考bcos_rpc_call接口对callback的说明context: 参考bcos_rpc_call接口对context的说明
返回:
空
bcos_rpc_get_total_transaction_count¶
原型:
void bcos_rpc_get_total_transaction_count(void* sdk, const char* group, const char* node, bcos_sdk_c_struct_response_cb callback, void* context)
功能:
获取当前区块高度下的交易总量
参数:
sdk:sdk指针group: 群组IDnode: 节点名称, 参考bcos_rpc_call接口对node的说明callback: 参考bcos_rpc_call接口对callback的说明context: 参考bcos_rpc_call接口对context的说明
返回:
无
bcos_rpc_get_group_peers¶
原型:
void bcos_rpc_get_group_peers(void* sdk, const char* group, bcos_sdk_c_struct_response_cb callback, void* context)
功能:
获取群组的网络连接信息
参数:
sdk:sdk指针group: 群组IDcallback: 参考bcos_rpc_call接口对callback的说明context: 参考bcos_rpc_call接口对context的说明
返回:
无
bcos_rpc_get_peers¶
原型:
void bcos_rpc_get_peers(void* sdk, bcos_sdk_c_struct_response_cb callback, void* context)
功能:
获取网关的
p2p网络连接信息
参数:
sdk:sdk指针group: 群组IDcallback: 参考bcos_rpc_call接口对callback的说明context: 参考bcos_rpc_call接口对context的说明
返回:
无
bcos_rpc_get_group_list¶
原型:
void bcos_rpc_get_group_list(void* sdk, bcos_sdk_c_struct_response_cb callback, void* context)
功能:
获取群组列表
参数:
sdk:sdk指针callback: 参考bcos_rpc_call接口对callback的说明context: 参考bcos_rpc_call接口对context的说明
返回:
无
bcos_rpc_get_group_info¶
原型:
void bcos_rpc_get_group_info(void* sdk, const char* group, bcos_sdk_c_struct_response_cb callback, void* context)
功能:
获取群组信息
参数:
sdk:sdk指针group: 群组IDcallback: 参考bcos_rpc_call接口对callback的说明context: 参考bcos_rpc_call接口对context的说明
返回:
无
bcos_rpc_get_group_info_list¶
原型:
void bcos_rpc_get_group_info_list(void* sdk, bcos_sdk_c_struct_response_cb callback, void* context)
功能:
获取群组列表详情
参数:
sdk:
sdk指针callback: 参考bcos_rpc_call接口对context的说明context: 参考bcos_rpc_call接口对context的说明
返回:
无
bcos_rpc_get_group_node_info¶
原型:
void bcos_rpc_get_group_node_info(void* sdk, const char* group, const char* node,bcos_sdk_c_struct_response_cb callback, void* context)
功能:
获取群组的节点信息
参数:
sdk:
sdk指针group: 群组ID
node: 节点名称
callback: 参考bcos_rpc_call接口对callback的说明context: 参考bcos_rpc_call接口对context的说明
返回:
无
4. AMOP接口¶
本小节介绍在c-sdk使用FISCO-BCOS 3.0AMOP功能的接口。
bcos_amop_subscribe_topic¶
原型:
void bcos_amop_subscribe_topic(void* sdk, char** topics, size_t count)
功能:
订阅topic
参数:
sdk:sdk指针topics: topics内容count: topics长度
返回:
无
bcos_amop_subscribe_topic_with_cb¶
原型:
void bcos_amop_subscribe_topic_with_cb(void* sdk, const char* topic, bcos_sdk_c_amop_subscribe_cb cb, void* context)
功能:
订阅
topic,并设置接收topic消息的回调函数
参数:
sdk:sdk指针topic: topiccb: 回调函数, 函数原型如下:typedef void (*bcos_sdk_c_amop_subscribe_cb)( const char* endpoint, const char* seq, struct bcos_sdk_c_struct_response* resp);
字段含义:
endpoint: 接收消息的网络连接标记, 回复消息调用
bcos_amop_send_response时需要使用seq: 消息标记, 回复消息调用
bcos_amop_send_response时需要使用resp: 参考
bcos_rpc_call接口callback对bcos_sdk_c_struct_response的说明
context: 回调上下文, 参考bcos_rpc_call接口对context的说明
bcos_amop_set_subscribe_topic_cb¶
原型:
void bcos_amop_set_subscribe_topic_cb(void* sdk, bcos_sdk_c_amop_subscribe_cb cb, void* context)
功能:
为
topic设置回调函数,接收到的topic消息没有单独设置回调函数时,默认回调函数会被调用
参数:
sdk:sdk指针cb:topic回调函数, 参考bcos_amop_subscribe_topic_with_cb接口对cb的说明context: 回调上下文
bcos_amop_unsubscribe_topic¶
原型:
void bcos_amop_unsubscribe_topic(void* sdk, char** topics, size_t count)
功能:
取消订阅
参数:
sdk:sdk指针topics: topics内容count: topics长度
bcos_amop_publish¶
原型:
void bcos_amop_publish(void* sdk, const char* topic, void* data, size_t size, uint32_t timeout,bcos_sdk_c_amop_publish_cb cb, void* context)
功能:
发送
topic消息
参数:
sdk:sdk指针topic: topicdata: 消息内容size: 消息长度timeout: 超时时间,单位mscb: 回调函数, 函数原型如下:typedef void (*bcos_sdk_c_amop_publish_cb)(struct bcos_sdk_c_struct_response* resp)
context: 回调上下文
bcos_amop_broadcast¶
原型:
void bcos_amop_broadcast(void* sdk, const char* topic, void* data, size_t size)
功能:
发送
topic广播消息
参数:
sdk:sdk指针topic: topicdata: 消息内容size: 消息长度
bcos_amop_send_response¶
原型:
void bcos_amop_send_response(void* sdk, const char* peer, const char* seq, void* data, size_t size)
功能:
发送回复消息
参数:
sdk:sdk指针peer: 接收消息的网络连接标记, 参考bcos_amop_subscribe_topic_with_cb接口回调函数cb的字段endpoint说明seq: 消息标记, 参考bcos_amop_subscribe_topic_with_cb接口回调函数cb的字段seq说明data: 消息内容size: 消息长度
5. EventSub接口¶
本小节介绍在c-sdk使用FISCO-BCOS 3.0EventSub事件订阅功能的接口。
bcos_event_sub_subscribe_event¶
原型:
const char* bcos_event_sub_subscribe_event(void* sdk, const char* group, const char* params,bcos_sdk_c_struct_response_cb callback, void* context)
功能:
合约事件订阅
参数:
sdk:sdk指针group: 请求群组IDparams: 请求参数,c风格JSON字符串addresses: 字符串数组,订阅Event的合约地址列表,为空时表示所有的合约
fromBlock: 整形,初始区块,-1表示从当前最高块开始
toBlock: 整形,结束区块,-1表示不限制区块高度,已经是最高块时也继续等待新的区块
topics: 字符串数组,订阅的topic列表,为空时表示所有的topic
示例:
{ "addresses": ["6849F21D1E455e9f0712b1e99Fa4FCD23758E8F1"], "fromBlock": -1, "toBlock": -1, "topics": [] }
context: 回调上下文
返回:
合约事件订阅的任务id,c风格字符串
bcos_event_sub_unsubscribe_event¶
原型:
void bcos_event_sub_unsubscribe_event(void* sdk, const char* id)
功能:
取消合约事件订阅
参数:
sdk:sdk指针id: 合约事件订阅的任务id,bcos_event_sub_subscribe_event的返回值
6. 工具类¶
本小结介绍c-sdk的基础工具类的使用,包括KeyPair签名对象、ABI编解码、构造签名交易。
6.1 KeyPair签名对象¶
bcos_sdk_create_keypair原型:
void* bcos_sdk_create_keypair(int crypto_type)
功能:
创建
KeyPair对象
参数:
crypto_type: 类型, ECDSA: BCOS_C_SDK_ECDSA_TYPE(0), SM: BCOS_C_SDK_SM_TYPE(1)
返回:
KeyPair对象指针失败返回
NULL,使用bcos_sdk_get_last_error、bcos_sdk_get_last_error_msg获取错误码和错误描述信息
注意:
KeyPair对象不再使用时需要调用bcos_sdk_destroy_keypair接口释放,以免造成内存泄露
bcos_sdk_create_keypair_by_private_key原型:
void* bcos_sdk_create_keypair_by_private_key(int crypto_type, void* private_key, unsigned length)
功能:
加载私钥创建
KeyPair对象
参数:
crypto_type: 类型, ECDSA: BCOS_C_SDK_ECDSA_TYPE(0), SM: BCOS_C_SDK_SM_TYPE(1)
private_key: 私钥,字节数组格式
length: 数组长度
返回:
KeyPair对象指针失败返回
NULL使用bcos_sdk_get_last_error、bcos_sdk_get_last_error_msg获取错误码和错误描述信息
注意:
KeyPair对象不再使用时需要调用bcos_sdk_destroy_keypair接口释放,以免造成内存泄露
bcos_sdk_create_keypair_by_hex_private_key原型:
void* bcos_sdk_create_keypair_by_hex_private_key(int crypto_type, const char* private_key)
功能:
加载私钥创建
KeyPair对象
参数:
crypto_type: 类型, ECDSA: BCOS_C_SDK_ECDSA_TYPE(0), SM: BCOS_C_SDK_SM_TYPE(1)
private_key: 私钥,十六进制c风格字符串格式
返回:
KeyPair对象指针失败返回
NULL,使用bcos_sdk_get_last_error、bcos_sdk_get_last_error_msg获取错误码和错误描述信息
注意:
KeyPair对象不再使用时需要调用bcos_sdk_destroy_keypair接口释放,以免造成内存泄露
bcos_sdk_get_keypair_type原型:
int bcos_sdk_get_keypair_type(void* key_pair)
功能:
获取
KeyPair对象类型
参数:
key_pair:
KeyPair对象指针
返回:
类型, ECDSA: BCOS_C_SDK_ECDSA_TYPE(0), SM: BCOS_C_SDK_SM_TYPE(1)
bcos_sdk_get_keypair_address原型:
const char* bcos_sdk_get_keypair_address(void* key_pair)
功能:
获取
KeyPair对象对应的账户地址
参数:
key_pair:
KeyPair对象指针
返回:
账户地址,十六进制c风格字符串
注意:
返回的字符串不使用时使用
bcos_sdk_c_free释放,以免造成内存泄露
bcos_sdk_get_keypair_public_key原型:
const char* bcos_sdk_get_keypair_public_key(void* key_pair)
功能:
获取
KeyPair对象的公钥字符串
参数:
key_pair:
KeyPair对象指针
返回:
公钥,十六进制c风格字符串
注意:
返回的字符串不使用时使用
bcos_sdk_c_free释放,以免造成内存泄露
bcos_sdk_get_keypair_private_key原型:
const char* bcos_sdk_get_keypair_private_key(void* key_pair)
功能:
获取
KeyPair对象的私钥字符串
参数:
key_pair:
KeyPair对象指针
返回:
私钥,十六进制c风格字符串
注意:
返回的字符串不使用时使用
bcos_sdk_c_free释放,以免造成内存泄露
bcos_sdk_destroy_keypair原型:
void bcos_sdk_destroy_keypair(void* key_pair)
功能:
释放
KeyPair对象
参数:
key_pair:
KeyPair对象指针
返回:
无
6.2 ABI编解码¶
bcos_sdk_abi_encode_constructor原型:
const char* bcos_sdk_abi_encode_constructor(const char* abi, const char* bin, const char* params, int crypto_type)
功能:
编码构造函数参数
参数:
abi: 合约ABI,JSON字符串
bin: 合约BIN,十六进制c风格字符串
params: 构造函数参数,JSON字符串
crypto_type: 类型, ECDSA: BCOS_C_SDK_ECDSA_TYPE(0), SM: BCOS_C_SDK_SM_TYPE(1)
返回:
编码后的参数,十六进制c风格字符串
注意:
返回的字符串需要调用
bcos_sdk_c_free释放,以免造成内存泄露
bcos_sdk_abi_encode_method原型:
const char* bcos_sdk_abi_encode_method(const char* abi, const char* method_name, const char* params, int crypto_type)
功能:
编码接口参数
参数:
abi: 合约ABI,JSON字符串
method_name: 接口名
params: 构造函数的参数,JSON字符串
crypto_type: 类型, ECDSA: BCOS_C_SDK_ECDSA_TYPE(0), SM: BCOS_C_SDK_SM_TYPE(1)
返回:
编码后的参数,十六进制c风格字符串
注意:
返回的字符串需要调用
bcos_sdk_c_free释放,以免造成内存泄露
bcos_sdk_abi_encode_method_by_method_id原型:
const char* bcos_sdk_abi_encode_method_by_method_id(const char* abi, const char* method_id, const char* params, int crypto_type)
功能:
根据methodID编码参数
参数:
abi: 合约ABI,JSON字符串
method_id: methodID
params: 构造函数的参数,JSON字符串
crypto_type: 类型, ECDSA: BCOS_C_SDK_ECDSA_TYPE(0), SM: BCOS_C_SDK_SM_TYPE(1)
返回:
编码后的参数,十六进制c风格字符串
注意:
返回的字符串需要调用
bcos_sdk_c_free释放,以免造成内存泄露
bcos_sdk_abi_encode_method_by_method_sig原型:
const char* bcos_sdk_abi_encode_method_by_method_sig(const char* method_sig, const char* params, int crypto_type)
功能:
根据接口signature编码参数
参数:
method_sig: 接口signature
params: 构造函数的参数,JSON字符串
crypto_type: 类型, ECDSA: BCOS_C_SDK_ECDSA_TYPE(0), SM: BCOS_C_SDK_SM_TYPE(1)
返回:
编码后的参数,十六进制c风格字符串
注意:
返回的字符串需要调用
bcos_sdk_c_free释放,以免造成内存泄露
bcos_sdk_abi_decode_method_input原型:
const char* bcos_sdk_abi_decode_method_input(const char* abi, const char* method_name, const char* data, int crypto_type)
功能:
根据接口名解析输入参数
参数:
abi: 合约ABI,JSON字符串
method_name: 接口名
data: 编码的参数,十六进制c风格字符串
crypto_type: 类型, ECDSA: BCOS_C_SDK_ECDSA_TYPE(0), SM: BCOS_C_SDK_SM_TYPE(1)
返回:
解析后的参数,十六进制c风格JSON字符串
注意:
返回的字符串需要调用
bcos_sdk_c_free释放,以免造成内存泄露
bcos_sdk_abi_decode_method_input_by_method_id原型:
const char* bcos_sdk_abi_decode_method_input_by_method_id(const char* abi, const char* method_id, const char* data, int crypto_type)
功能:
根据methodID解析输入参数
参数:
abi: 合约ABI
method_id: methodID
data: ABI编码的参数,十六进制c风格字符串
crypto_type: 类型, ECDSA: BCOS_C_SDK_ECDSA_TYPE(0), SM: BCOS_C_SDK_SM_TYPE(1)
返回:
解析后的参数,十六进制c风格JSON字符串
注意:
返回的字符串需要调用
bcos_sdk_c_free释放,以免造成内存泄露
bcos_sdk_abi_decode_method_input_by_method_sig原型:
const char* bcos_sdk_abi_decode_method_input_by_method_sig(const char* method_sig, const char* data, int crypto_type)
功能:
根据接口signature解析输入参数
参数:
method_sig: 接口signature
data: 编码的参数,十六进制c风格字符串
crypto_type: 类型, ECDSA: BCOS_C_SDK_ECDSA_TYPE(0), SM: BCOS_C_SDK_SM_TYPE(1)
返回:
解析后的参数,十六进制c风格JSON字符串
注意:
返回的字符串需要调用
bcos_sdk_c_free释放,以免造成内存泄露
bcos_sdk_abi_decode_method_output原型:
const char* bcos_sdk_abi_decode_method_output(const char* abi, const char* method_name, const char* data, int crypto_type)
功能:
根据接口名解析返回参数
参数:
abi: 合约ABI
method_name: 接口名
data: 编码的返回,十六进制c风格字符串
crypto_type: 类型, ECDSA: BCOS_C_SDK_ECDSA_TYPE(0), SM: BCOS_C_SDK_SM_TYPE(1)
返回:
解析后的返回,十六进制c风格JSON字符串
注意:
返回的字符串需要调用
bcos_sdk_c_free释放,以免造成内存泄露
bcos_sdk_abi_decode_method_output_by_method_id原型:
const char* bcos_sdk_abi_decode_method_output_by_method_id(const char* abi, const char* method_id, const char* data, int crypto_type)
功能:
根据methodID解析返回参数
参数:
abi: 合约ABI
method_id: methodID
data: 编码的返回,十六进制c风格字符串
crypto_type: 类型, ECDSA: BCOS_C_SDK_ECDSA_TYPE(0), SM: BCOS_C_SDK_SM_TYPE(1)
返回:
解析后的返回,十六进制c风格JSON字符串
注意:
返回的字符串需要调用
bcos_sdk_c_free释放,以免造成内存泄露
bcos_sdk_abi_decode_event原型:
const char* bcos_sdk_abi_decode_event(const char* abi, const char* event_name, const char* data, int crypto_type)
功能:
根据event名解析event参数
参数:
abi: 合约ABI
event_name: event名
data: 编码的返回,十六进制c风格字符串
crypto_type: 类型, ECDSA: BCOS_C_SDK_ECDSA_TYPE(0), SM: BCOS_C_SDK_SM_TYPE(1)
返回:
解析后的event参数,十六进制c风格JSON字符串
注意:
返回的字符串需要调用
bcos_sdk_c_free释放,以免造成内存泄露
bcos_sdk_abi_decode_event_by_topic原型:
const char* bcos_sdk_abi_decode_event_by_topic(const char* abi, const char* topic, const char* data, int crypto_type)
功能:
根据topic解析event参数
参数:
abi: 合约ABI
topic: event topic
data: 编码的返回,十六进制c风格字符串
crypto_type: 类型, ECDSA: BCOS_C_SDK_ECDSA_TYPE(0), SM: BCOS_C_SDK_SM_TYPE(1)
返回:
解析后的event参数,十六进制c风格JSON字符串
注意:
返回的字符串需要调用
bcos_sdk_c_free释放,以免造成内存泄露
6.3 交易构造(不带类型)¶
bcos_sdk_get_group_wasm_and_crypto原型:
void bcos_sdk_get_group_wasm_and_crypto(void* sdk, const char* group_id, int* wasm, int* crypto_type)
功能:
获取群组的部分基础信息 1. 群组运行
wasm合约,还是solidity合约 2. 群组为国密还是非国密环境
参数:
sdk: sdk对象,bcos_sdk_create或者bcos_sdk_create_by_config_file创建group_id: 群组IDwasm: 返回值,该群组是否运行wasm合约0: 否,群组运行
solidity合约,1: 是,群组运行
wasm合约
crypto_type: 返回值,该群组是否为国密类型,0: 否,1: 是
返回:
无
bcos_sdk_get_group_chain_id原型:
const char* bcos_sdk_get_group_chain_id(void* sdk, const char* group_id)
功能:
获取群组的链ID,构造交易时需使用该参数
参数:
sdk: sdk对象,bcos_sdk_create或者bcos_sdk_create_by_config_file创建group_id: 群组ID
返回:
群组的链ID
注意:
返回的字符串需要调用
bcos_sdk_c_free释放,以免造成内存泄露
bcos_sdk_create_transaction_data原型:
void* bcos_sdk_create_transaction_data(const char* group_id, const char* chain_id, const char* to, const char* data, const char* abi, int64_t block_limit)
功能:
创建
TransactionData对象,该对象是未签名的交易对象
参数:
group_id: 群组IDchain_id: 链ID,可以调用bcos_sdk_get_group_chain_id接口获取群组的链IDto: 调用的合约地址,部署合约时设置为空字符串””data: ABI编码后的参数,十六进制c风格字符串,参考ABI编解码abi: 合约的ABI,JSON字符串,可选参数,部署合约时可以将合约的ABI传入,默认传入空字符串””block_limit: 区块限制,可以调用bcos_rpc_get_block_limit接口获取
返回:
TransactionData对象指针失败返回
NULL,使用bcos_sdk_get_last_error、bcos_sdk_get_last_error_msg获取错误码和错误描述信息
注意:
TransactionData对象需要调用bcos_sdk_destroy_transaction_data接口释放,以免造成内存泄露
bcos_sdk_calc_transaction_data_hash原型:
const char* bcos_sdk_calc_transaction_data_hash(int crypto_type, void* transaction_data)
功能:
计算
TransactionData对象哈希
参数:
crypto_type: 类型, ECDSA: BCOS_C_SDK_ECDSA_TYPE(0), SM: BCOS_C_SDK_SM_TYPE(1)
transaction_data:TransactionData对象指针
返回:
TransactionData对象哈希失败返回
NULL,使用bcos_sdk_get_last_error、bcos_sdk_get_last_error_msg获取错误码和错误描述信息
注意:
TransactionData对象的哈希,也是交易的哈希返回的字符串需要调用
bcos_sdk_c_free释放,以免造成内存泄露
bcos_sdk_sign_transaction_data_hash原型:
const char* bcos_sdk_sign_transaction_data_hash(void* keypair, const char* transcation_hash)
功能:
交易哈希签名
参数:
keypair:
KeyPair对象,参考KeyPair签名对象transcation_hash: 交易哈希,由
bcos_sdk_calc_transaction_data_hash接口生成
返回:
交易签名,字符串类型
失败返回
NULL,调用bcos_sdk_get_last_error、bcos_sdk_get_last_error_msg获取错误码和错误描述信息
注意:
返回的字符串需要调用
bcos_sdk_c_free释放,以免造成内存泄露
bcos_sdk_create_signed_transaction_with_signed_data原型:
const char* bcos_sdk_create_signed_transaction_with_signed_data(void* transaction_data, const char* signed_transaction_data, const char* transaction_data_hash, int32_t attribute)
功能:
创建签名的交易
参数:
transaction_data:
TransactionData对象signed_transaction_data: 交易哈希的签名,十六进制c风格字符串,
bcos_sdk_sign_transaction_data_hash接口生成transaction_data_hash: 交易哈希,十六进制c风格字符串,
bcos_sdk_calc_transaction_data_hash接口生成attribute: 交易额外属性,待拓展,默认填0即可
返回:
签名的交易,十六进制c风格字符串
失败返回
NULL,调用bcos_sdk_get_last_error、bcos_sdk_get_last_error_msg获取错误码和错误描述信息
注意:
返回的字符串需要调用
bcos_sdk_c_free释放,以免造成内存泄露
bcos_sdk_create_signed_transaction原型:
void bcos_sdk_create_signed_transaction(void* key_pair, const char* group_id, const char* chain_id, const char* to, const char* data, const char* abi, int64_t block_limit, int32_t attribute, char** tx_hash, char** signed_tx)
功能:
创建签名的交易
参数:
key_pair:
KeyPair对象,参考KeyPair签名对象group_id: 群组ID
chain_id: 链ID,可以调用
bcos_sdk_get_group_chain_id接口获取群组的链IDto: 调用的合约地址,部署合约时设置为空字符串””
data: ABI编码后的参数,参考ABI编解码
abi: 合约的ABI,可选参数,部署合约时可以将合约的ABI传入,默认空字符串””
block_limit: 区块限制,可以调用
bcos_rpc_get_block_limit接口获取attribute: 交易额外属性,待拓展,默认填0即可
tx_hash: 返回值,交易哈希,十六进制c风格字符串
signed_tx: 返回值,签名的交易,十六进制c风格字符串
返回:
调用
bcos_sdk_get_last_error接口判断是否成功,0表示成功,其他值表示错误码
注意:
返回的
tx_hash、signed_tx需要调用bcos_sdk_c_free释放,以免造成内存泄露
说明:
bcos_sdk_create_signed_transaction相当于下面几个接口功能的组合,创建交易、交易哈希、交易签名流程需要分开处理时,使用下面几个接口:bcos_sdk_create_transaction_data: 创建TransactionDatabcos_sdk_calc_transaction_data_hash: 计算交易哈希bcos_sdk_sign_transaction_data_hash: 交易哈希签名bcos_sdk_create_signed_transaction_with_signed_data: 创建签名的交易
bcos_sdk_destroy_transaction_data原型:
void bcos_sdk_destroy_transaction_data(void* transaction_data)
功能:
释放
TransactionData对象
参数:
transaction_data:TransactionData对象指针
返回:
无
bcos_sdk_create_transaction_builder_service原型:
void* bcos_sdk_create_transaction_builder_service(void* sdk, const char* group_id)
功能:
创建
TransactionBuilderService对象,简化构造签名交易的姿势,可以对比bcos_sdk_create_transaction_data_with_tx_builder_service与bcos_sdk_create_transaction_data接口的差异
参数:
sdk: sdk对象指针
group_id: 群组ID
返回:
TransactionBuilderService对象指针失败返回
NULL,调用bcos_sdk_get_last_error、bcos_sdk_get_last_error_msg获取错误码和错误描述信息
注意:
TransactionBuilderService对象需要使用bcos_sdk_destroy_transaction_builder_service销毁,以免造成内存泄露
bcos_sdk_destroy_transaction_builder_service原型:
bcos_sdk_destroy_transaction_builder_service(void* service)
功能:
销毁
TransactionBuilderService对象
参数:
TransactionBuilderService对象指针
返回:
无
bcos_sdk_create_transaction_data_with_tx_builder_service原型:
void* bcos_sdk_create_transaction_data_with_tx_builder_service(void* tx_builder_service, const char* to, const char* data, const char* abi)
功能:
创建
TransactionData对象
参数:
tx_builder_service:
TransactionBuilderService对象指针to: 调用的合约地址,部署合约时设置为空字符串””
data: ABI编码后的参数,参考ABI编解码
abi: 合约的ABI,可选参数,部署合约时可以将合约的ABI传入,默认空字符串””
返回:
TransactionData对象指针失败返回
NULL使用bcos_sdk_get_last_error、bcos_sdk_get_last_error_msg获取错误码和错误描述信息
注意:
创建的
TransactionData对象需要由bcos_sdk_destroy_transaction_data接口释放,以免造成内存泄露
bcos_sdk_create_signed_transaction_with_tx_builder_service原型:
void bcos_sdk_create_signed_transaction_with_tx_builder_service(void*tx_builder_service, void* key_pair, const char*to, const char* data, const char* abi, int32_t attribute, char** tx_hash, char** signed_tx)
功能:
创建签名的交易
参数:
tx_builder_service:
TransactionBuilderService对象指针key_pair:
KeyPair对象,参考KeyPair签名对象to: 调用的合约地址,部署合约时设置为空字符串””
data: ABI编码后的参数,参考ABI编解码
abi: 合约的ABI,可选参数,部署合约时可以将合约的ABI传入,默认空字符串””
attribute: 交易额外属性,待拓展,默认填0即可
tx_hash: 返回值,交易哈希,十六进制c风格字符串
signed_tx: 返回值,签名的交易,十六进制c风格字符串
注意:
返回的
tx_hash、signed_tx需要调用bcos_sdk_c_free释放,以免造成内存泄露
6.4 交易构造(带类型)¶
c-sdk
3.3.0-tx-struct特性分支,增加了对交易结构体的支持。 即返回值、入参支持交易结构体,结构体如下:
// transaction bytes
struct bcos_sdk_c_bytes
{
uint8_t* buffer;
uint32_t length;
};
// transaction data
struct bcos_sdk_c_transaction_data
{
int32_t version;
int64_t block_limit;
char* chain_id;
char* group_id;
char* nonce;
char* to;
char* abi;
struct bcos_sdk_c_bytes* input;
};
// transaction
struct bcos_sdk_c_transaction
{
struct bcos_sdk_c_transaction_data* transaction_data;
struct bcos_sdk_c_bytes* data_hash;
struct bcos_sdk_c_bytes* signature;
struct bcos_sdk_c_bytes* sender;
int64_t import_time;
int32_t attribute;
char* extra_data;
};
bcos_sdk_create_transaction_data_struct_with_hex_input原型:
struct bcos_sdk_c_transaction_data* bcos_sdk_create_transaction_data_struct_with_hex_input(const char* group_id, const char* chain_id, const char* to, const char* input, const char* abi, int64_t block_limit)
功能:
创建
bcos_sdk_c_transaction_data交易结构体,该对象结构体是未签名的交易对象
参数:
group_id: 群组IDchain_id: 链ID,可以调用bcos_sdk_get_group_chain_id接口获取群组的链IDto: 调用的合约地址,部署合约时设置为空字符串””input: ABI编码后的参数,十六进制c风格字符串,是hex字符串abi: 合约的ABI,JSON字符串,可选参数,部署合约时可以将合约的ABI传入,默认传入空字符串””block_limit: 区块限制,可以调用bcos_rpc_get_block_limit接口获取
返回:
bcos_sdk_c_transaction_data交易结构体指针失败返回
NULL,使用bcos_sdk_get_last_error、bcos_sdk_get_last_error_msg获取错误码和错误描述信息
注意:
bcos_sdk_c_transaction_data交易结构体,需要调用bcos_sdk_destroy_transaction_data_struct接口释放,以免造成内存泄露
bcos_sdk_create_transaction_data_struct_with_bytes原型:
struct bcos_sdk_c_transaction_data* bcos_sdk_create_transaction_data_struct_with_bytes(const char* group_id, const char* chain_id, const char* to, const unsigned char* bytes_input, uint32_t bytes_input_length, const char* abi, int64_t block_limit)
功能:
创建
bcos_sdk_c_transaction_data交易结构体,该对象结构体是未签名的交易对象
参数:
group_id: 群组IDchain_id: 链ID,可以调用bcos_sdk_get_group_chain_id接口获取群组的链IDto: 调用的合约地址,部署合约时设置为空字符串””bytes_input: ABI编码后的参数,byte的字节数组bytes_input_length: byte字节数组的长度abi: 合约的ABI,JSON字符串,可选参数,部署合约时可以将合约的ABI传入,默认传入空字符串””block_limit: 区块限制,可以调用bcos_rpc_get_block_limit接口获取
返回:
bcos_sdk_c_transaction_data交易结构体指针失败返回
NULL,使用bcos_sdk_get_last_error、bcos_sdk_get_last_error_msg获取错误码和错误描述信息
注意:
bcos_sdk_c_transaction_data交易结构体,需要调用bcos_sdk_destroy_transaction_data_struct接口释放,以免造成内存泄露
bcos_sdk_calc_transaction_data_struct_hash原型:
const char* bcos_sdk_calc_transaction_data_struct_hash(int crypto_type, struct bcos_sdk_c_transaction_data* transaction_data)
功能:
计算
bcos_sdk_c_transaction_data交易结构体哈希
参数:
crypto_type: 类型, ECDSA: BCOS_C_SDK_ECDSA_TYPE(0), SM: BCOS_C_SDK_SM_TYPE(1)
transaction_data:bcos_sdk_c_transaction_data交易结构体指针
返回:
bcos_sdk_c_transaction_data交易结构体哈希失败返回
NULL,使用bcos_sdk_get_last_error、bcos_sdk_get_last_error_msg获取错误码和错误描述信息
注意:
bcos_sdk_c_transaction_data交易结构体的哈希,也是交易的哈希返回的字符串需要调用
bcos_sdk_c_free释放,以免造成内存泄露
bcos_sdk_create_transaction_struct原型:
struct bcos_sdk_c_transaction* bcos_sdk_create_transaction_struct(struct bcos_sdk_c_transaction_data* transaction_data, const char* signature, const char* transaction_data_hash, int32_t attribute, const char* extra_data)
功能:
创建签名的交易结构体
参数:
transaction_data:
bcos_sdk_c_transaction_data交易结构体signature: 交易结构体哈希的签名,十六进制c风格字符串,
bcos_sdk_sign_transaction_data_hash接口生成transaction_data_hash: 交易结构体哈希,十六进制c风格字符串,
bcos_sdk_calc_transaction_data_struct_hash接口生成attribute: 交易额外属性,待拓展,默认填0即可
extra_data: 交易额外数据,填””空字符串即可
返回:
bcos_sdk_c_transaction签名的交易结构体指针失败返回
NULL,调用bcos_sdk_get_last_error、bcos_sdk_get_last_error_msg获取错误码和错误描述信息
注意:
bcos_sdk_c_transaction签名的交易结构体,需要调用bcos_sdk_destroy_transaction_struct接口释放,以免造成内存泄露
bcos_sdk_create_encoded_transaction原型:
const char* bcos_sdk_create_encoded_transaction( struct bcos_sdk_c_transaction_data* transaction_data, const char* signature, const char* transaction_data_hash, int32_t attribute, const char* extra_data)
功能:
创建签名的交易字符串
参数:
transaction_data:
bcos_sdk_c_transaction_data交易结构体signature: 交易结构体哈希的签名,十六进制c风格字符串,
bcos_sdk_sign_transaction_data_hash接口生成transaction_data_hash: 交易结构体哈希,十六进制c风格字符串,
bcos_sdk_calc_transaction_data_struct_hash接口生成attribute: 交易额外属性,待拓展,默认填0即可
extra_data: 交易额外数据,填””空字符串即可
返回:
签名的交易字符串
失败返回
NULL,调用bcos_sdk_get_last_error、bcos_sdk_get_last_error_msg获取错误码和错误描述信息
注意:
返回的签名交易字符串,需要调用
bcos_sdk_c_free释放,以免造成内存泄露
bcos_sdk_encode_transaction_data_struct原型:
const char* bcos_sdk_encode_transaction_data_struct(struct bcos_sdk_c_transaction_data* transaction_data)
功能:
将
bcos_sdk_c_transaction_data交易结构体编码为hex字符串
参数:
transaction_data:bcos_sdk_c_transaction_data交易结构体指针
返回:
transaction_data交易结构体编码后的hex字符串
注意:
返回的字符串需要调用
bcos_sdk_c_free释放,以免造成内存泄露
bcos_sdk_encode_transaction_data_struct_to_json原型:
const char* bcos_sdk_encode_transaction_data_struct_to_json(struct bcos_sdk_c_transaction_data* transaction_data)
功能:
将
bcos_sdk_c_transaction_data交易结构体编码为json字符串
参数:
transaction_data:bcos_sdk_c_transaction_data交易结构体指针
返回:
transaction_data交易结构体编码后的json字符串
注意:
返回的字符串需要调用
bcos_sdk_c_free释放,以免造成内存泄露
bcos_sdk_decode_transaction_data_struct原型:
struct bcos_sdk_c_transaction_data* bcos_sdk_decode_transaction_data_struct(const char* transaction_data_hex_str)
功能:
将编码后的hex字符串解码为
bcos_sdk_c_transaction_data交易结构体
参数:
transaction_data_hex_str: 编码后的hex字符串
返回:
bcos_sdk_c_transaction_data交易结构体指针
注意:
bcos_sdk_c_transaction_data交易结构体,需要调用bcos_sdk_destroy_transaction_data_struct接口释放,以免造成内存泄露
bcos_sdk_decode_transaction_data_struct_with_json原型:
struct bcos_sdk_c_transaction_data* bcos_sdk_decode_transaction_data_struct_with_json(const char* transaction_data_json_str)
功能:
将编码后的json字符串解码为
bcos_sdk_c_transaction_data交易结构体
参数:
transaction_data_json_str: 编码后的json字符串
返回:
bcos_sdk_c_transaction_data交易结构体指针
注意:
bcos_sdk_c_transaction_data交易结构体,需要调用bcos_sdk_destroy_transaction_data_struct接口释放,以免造成内存泄露
bcos_sdk_destroy_transaction_data_struct原型:
void bcos_sdk_destroy_transaction_data_struct(struct bcos_sdk_c_transaction_data* transaction_data)
功能:
释放
bcos_sdk_c_transaction_data交易结构体
参数:
transaction_data:bcos_sdk_c_transaction_data交易结构体指针
返回:
无
bcos_sdk_encode_transaction_struct原型:
const char* bcos_sdk_encode_transaction_struct(struct bcos_sdk_c_transaction* transaction)
功能:
将
bcos_sdk_c_transaction签名的交易结构体编码为hex字符串
参数:
transaction:bcos_sdk_c_transaction签名的交易结构体指针
返回:
transaction签名的交易结构体编码后的hex字符串
注意:
返回的字符串需要调用
bcos_sdk_c_free释放,以免造成内存泄露
bcos_sdk_encode_transaction_struct_to_json原型:
const char* bcos_sdk_encode_transaction_struct_to_json(struct bcos_sdk_c_transaction* transaction)
功能:
将
bcos_sdk_c_transaction签名的交易结构体编码为json字符串
参数:
transaction:bcos_sdk_c_transaction签名的交易结构体指针
返回:
transaction签名的交易结构体编码后的json字符串
注意:
返回的字符串需要调用
bcos_sdk_c_free释放,以免造成内存泄露
bcos_sdk_decode_transaction_struct原型:
struct bcos_sdk_c_transaction* bcos_sdk_decode_transaction_struct(const char* transaction_hex_str)
功能:
将编码后的hex字符串解码为
bcos_sdk_c_transaction签名的交易结构体
参数:
transaction_hex_str: 编码后的hex字符串
返回:
bcos_sdk_c_transaction签名的交易结构体指针
注意:
bcos_sdk_c_transaction签名的交易结构体,需要调用bcos_sdk_destroy_transaction_struct接口释放,以免造成内存泄露
bcos_sdk_decode_transaction_struct_with_json原型:
struct bcos_sdk_c_transaction* bcos_sdk_decode_transaction_struct_with_json(const char* transaction_json_str)
功能:
将编码后的json字符串解码为
bcos_sdk_c_transaction签名的交易结构体
参数:
transaction_json_str: 编码后的json字符串
返回:
bcos_sdk_c_transaction签名的交易结构体指针
注意:
bcos_sdk_c_transaction签名的交易结构体,需要调用bcos_sdk_destroy_transaction_struct接口释放,以免造成内存泄露
bcos_sdk_destroy_transaction_struct原型:
void bcos_sdk_destroy_transaction_struct(struct bcos_sdk_c_transaction* transaction)
功能:
释放
bcos_sdk_c_transaction签名的交易结构体
参数:
transaction_data:bcos_sdk_c_transaction签名的交易结构体指针
返回:
无