物联网数据价值公链BAIC正式发布智能合约API接口规范,内容为BAIC公链的智能合约API介绍。这意味着月底BAIC公链公测之时,将提供API接口。
智能合约Action API:
template<typename T >
T baic::unpack_action_data ()
描述:把action 的内容数据发序列化到类型T
void baic::require_auth (const permission_level &level)
描述:权限验证
void baic::dispatch_inline (account_name code, action_name act, vector< permission_level > perms, std::tuple< Args... > args)
描述:在一个action内部调用另一个action
公链功能API:
uint32_t get_active_producers (account_name *producers, uint32_t datalen)
描述:获取正在活跃的可以打包区块的节点的账户
数据库功能API
用于存储和读取内存存储的中的数据,在数据库中数据以以下结构存储
code 智能合约的账户名称
scope 数据存储的区域
table 数据存储的表
record 数据行
每个事务都指定了可以读取和/或写入的一组有效范围。 正在运行的合约决定了可以写入的内容。写入操作不允许您指定/配置合约的代码。
这里给出了64位整形存储的例子,在之后的文档中会给出所有支持的类型的操作的API。
int32_tdb_store_i64(account_name scope, table_name table, account_name payer, uint64_tid, constvoid* data, uint32_tlen);
voiddb_update_i64(int32_titerator, account_name payer, constvoid* data, uint32_tlen);
voiddb_remove_i64(int32_titerator);
int32_tdb_get_i64(int32_titerator, constvoid* data, uint32_tlen);
int32_tdb_next_i64(int32_titerator, uint64_t* primary);
int32_tdb_previous_i64(int32_titerator, uint64_t* primary);
int32_tdb_find_i64(account_name code, account_name scope, table_name table, uint64_tid);
int32_tdb_lowerbound_i64(account_name code, account_name scope, table_name table, uint64_tid);
int32_tdb_upperbound_i64(account_name code, account_name scope, table_name table, uint64_tid);
int32_tdb_end_i64(account_name code, account_name scope, table_name table);
Console C++ API
应用程序能够记录/打印文本消息
class baic::iostream
template<typenameArg , typename... Args>
voidbaic::print (Arg &&a, Args &&... args)
打印出值/值列表(除了double)
template<typenameT >
iostream & baic::operator<< (iostream &out, constT &v)
重载c++ iostream
系统 API
定义用于与系统级的特性交互的API
voidbaic_assert(uint32_ttest, constchar*msg);
voidbaic_assert_message(uint32_ttest, constchar*msg, uint32_tmsg_len);
voidbaic_assert_code(uint32_ttest, uint64_tcode);
voidbaic_exit(int32_tcode);
uint64_tcurrent_time ();
uint32_tnow ();
留言与评论(共有 0 条评论) |