7.3 Database API

7.3.1对象

get_objects

原型

fc::variants graphene::app::database_api::get_objects(const vector<object_id_type> &ids)const

说明
获取与提供的ID对应的对象。
如果任何提供的ID未映射到对象,则在其位置返回值null变量。
返回值
检索的对象按ID中提到的顺序检索
参数
ids:要检索的对象的ID

7.3.2 订阅

set_subscribe_callback

原型

void graphene::app::database_api::set_subscribe_callback(std::function<void(const variant&)> cb, bool notify_remove_create, )

说明
注册一个回调句柄,然后可以用来订阅对象数据库的更改。
参数
cb:要注册的回调句柄
nofity_remove_create:是否订阅通用对象创建和删除事件。如果将其设置为true,则无论客户端是否订阅了对象,API服务器都会将所有新创建的对象和所有新删除的对象的ID通知给客户端。默认情况下,API服务器不允许订阅通用事件,可以在服务器启动时更改这些事件。

set_pending_transaction_callback

原型

void graphene::app::database_api::set_pending_transaction_callback(std::function<void(constvariant &signed_transaction_object)> cb)

说明
注册一个回调句柄,当事务被推送到数据库时会收到通知。
注意:事务可以推送到数据库,并在处理时,在包含在块之前和之后多次从数据库中弹出。每次推送完成后,都会通知客户端。
参数
cb:要注册的回调句柄

set_block_applied_callback

原型

void graphene::app::database_api::set_block_applied_callback(std::function<void(const variant &block_id)> cb)

说明
注册一个回调句柄,当块被推送到数据库时会收到通知。
参数
cb:要注册的回调句柄

cancel_all_subscriptions

原型

void graphene::app::database_api::cancel_all_subscriptions()

说明
停止接收任何通知。
这取消了所有订阅市场和对象的订阅。

7.3.3 块和事务

get_block_header

原型

optional<block_header> graphene::app::database_api::get_block_header(uint32_t block_num)const

说明
检索块头。
返回值
引用块的标头,如果未找到匹配块,则返回值null
参数
block_num:应返回值其标题的块的高度

get_block

原型

optional<signed_block> graphene::app::database_api::get_block(uint32_t block_num)const

说明
检索完整的已签名块。
返回值
引用的块,如果未找到匹配的块,则返回值null
参数
block_num:要返回值的块的高度

get_transaction

原型

processed_transaction graphene::app::database_api::get_transaction(uint32_t block_num, uint32_t trx_in_block)const

说明
用于获取单个事务。
参数
block_num:块的高度
trx_in_block:事务所在块

get_recent_transaction_by_id

原型

optional<signed_transaction> graphene::app::database_api::get_recent_transaction_by_id(const string &id)const

说明
如果事务尚未到期,则此方法将返回值给定ID的事务,否则将返回值NULL(如果未知)。仅仅因为它未知并不意味着它没有包含在区块链中。
参数
transaction_id_type:交易id

7.3.4 全局

get_chain_properties

原型

chain_property_object graphene::app::database_api::get_chain_properties()const

说明
检索链所有的全局属性

get_global_properties

原型

global_property_object graphene::app::database_api::get_global_properties()const

说明
检索当前链的全局属性

get_config

原型

fc::variant_object graphene::app::database_api::get_config()const

说明
检索编译时常量。

get_chain_id

原型

chain_id_type graphene::app::database_api::get_chain_id()const

说明
获取链ID。

get_dynamic_global_properties

原型

chain_id_type graphene::app::database_api::get_dynamic_global_properties()const

说明
检索当前的动态全局属性

7.3.5 KEY

get_key_references

原型

vector<vector<account_id_type>> graphene::app::database_api::get_key_references(vector<public_key_type> key)const

说明
获得数据库中key的references
参数
key:所指定的key

7.3.6 账号

get_accounts

原型

vector<optional<account_object>> graphene::app::database_api::get_accounts(const vector<std::string> &account_ids)const

说明
按ID获取帐户列表。
此函数的语义与get_objects相同
返回值
与提供的ID对应的帐户
参数
account_ids:要检索的帐户的ID

get_full_accounts

原型

std::map<string, full_account> graphene::app::database_api::get_full_accounts(constvector<string> &names_or_ids, bool subscribe)

说明
获取与指定帐户相关的所有对象并订阅更新。
此函数获取给定帐户的所有相关对象,并订阅对给定帐户的更新。如果names_or_ids中的任何字符串无法绑定到帐户,则该输入将被忽略。将检索和订阅所有其他帐户。
返回值
从names_or_ids到相应帐户的字符串映射
参数
subscribe:订阅与否
names_or_ids:每个项目必须是要检索的帐户的名称或ID

get_account_by_name

原型

optional<account_object> graphene::app::database_api::get_account_by_name(string name)const

get_account_references

原型

vector<account_id_type> graphene::app::database_api::get_account_references(const std::string account_id)const

返回值
所有引用其所有者或活动权限中的密钥或帐户ID的帐户。

lookup_account_names

原型

vector<optional<account_object>> graphene::app::database_api::lookup_account_names(constvector<string> &account_names)const

说明
按名称获取帐户列表。
此函数的语义与get_objects相同
返回值
持有提供名称的帐户
参数
account_names:要检索的帐户的名称

lookup_accounts

原型

map<string, account_id_type> graphene::app::database_api::lookup_accounts(const string &lower_bound_name, uint32_t limit)const

说明
获取已注册帐户的名称和ID。
返回值
帐户名称映射到相应的ID
参数
lower_bound_name:要返回值的名字的下限
limit:要返回值的最大结果数不得超过1000

get_account_count

原型

uint64_t graphene::app::database_api::get_account_count()const

说明
获取区块链注册的帐户总数。

7.3.7 余额

get_account_balances

原型

vector<asset> graphene::app::database_api::get_account_balances(const std::string &account_id, const flat_set<asset_id_type> &assets)const

说明
获取各种资产的帐户余额。
返回值
帐户余额
参数
account_id:要获得余额的帐户的ID
assets:要获得余额的资产的ID; 如果为空,则获取所有资产帐户中的余额

get_named_account_balances

原型

vector<asset> graphene::app::database_api::get_named_account_balances(const std::string &name, const flat_set<asset_id_type> &assets)const

说明
在语义上等同于get_account_balances,但是使用名称而不是ID。
参数
account_name:要获得余额的帐户名称
assets:要获得余额的资产的ID; 如果为空,则获取所有资产帐户中的余额

get_balance_objects

原型

vector<balance_object> graphene::app::database_api::get_balance_objects(constvector<address> &addrs)const

返回值
一组地址的所有无人认领的余额对象
参数
addrs:要获得余额对象的一组地址

get_vested_balances

原型

vector<asset> graphene::app::database_api::get_vested_balances(const vector<balance_id_type> &objs)const

说明
获取已经解冻的资产余额
参数
objs:资产名或ID

get_vesting_balances

原型

vector<vesting_balance_object> graphene::app::database_api::get_vesting_balances(conststd::string account_id)const

说明
获取正在冻结的资产余额
参数
account_id:账户id

7.3.8 资产

get_assets

原型

vector<optional<asset_object>> graphene::app::database_api::get_assets(constvector<std::string> &asset_symbols_or_ids)const

说明
按ID获取资产列表。
此函数的语义与get_objects相同
返回值
与提供的ID对应的资产
参数
asset_symbols_or_ids:要检索的资产的符号名称或ID

list_assets

原型

vector<asset_object> graphene::app::database_api::list_assets(const string &lower_bound_symbol, uint32_t limit)const

原型按符号名称按字母顺序获取资产。
返回值
找到的资产
参数
lower_bound_symbol:要检索的符号名称的下限
limit:要获取的最大资产数(不得超过101)

lookup_asset_symbols

原型

vector<optional<asset_object>> graphene::app::database_api::lookup_asset_symbols(constvector<string> &symbols_or_ids)const

说明
按符号获取资产列表。
此函数的语义与get_objects相同
返回值
与提供的符号或ID对应的资产
参数
asset_symbols:要检索的资产的符号或字符串ID

7.3.9 市场与喂价

get_order_book

原型

order_book graphene::app::database_api::get_order_book(const string &base, const string &quote, unsigned limit = 50)const

说明
返回值市场基础的订单簿:quote。
返回值
市场订单
参数
base:第一个资产的字符串名称
quote:第二个资产的字符串名称
depth:订单簿。每个要求和出价的深度,最高限额为50.优先考虑每个要求最低的

get_limit_orders

原型

vector<limit_order_object> graphene::app::database_api::get_limit_orders(std::string a, std::string b, uint32_t limit)const

说明
获取特定市场的限价单。
返回值
限价单,从最低价到最高价
参数
a:出售资产的符号或ID
b:正在购买的资产的符号或ID
limit:要检索的最大订单数

get_call_orders

原型

vector<call_order_object> graphene::app::database_api::get_call_orders(const std::string &a, uint32_t limit)const

获取给定资产中的呼叫订单。
返回值
通话订单,从最早的订单到最新订购
参数
a:被调用资产的符号或ID
limit:要检索的最大订单数

get_settle_orders

原型

vector<force_settlement_object> graphene::app::database_api::get_settle_orders(conststd::string &a, uint32_t limit)const

说明
获取给定资产的强制结算订单。
返回值
结算订单,从最早的结算日期到最晚的订购
参数
a:已结算资产的符号或ID
limit:要检索的最大订单数

get_margin_positions

原型

vector<call_order_object> graphene::app::database_api::get_margin_positions(const std::string account_id_or_name)const

返回值
给定帐户ID或名称的所有未结保证金。
参数
account_id_or_name:账户名或id

subscribe_to_market

原型

void graphene::app::database_api::subscribe_to_market(std::function<void(const variant&)> callback, const std::string &a, const std::string &b )

说明
当两个资产之间的市场中的活动订单发生变化时请求通知。
回调将传递包含向量<pair 参数
callback:市场变化时调用的回调方法
a:第一个资产符号或ID
b:第二个资产符号或ID

unsubscribe_from_market

原型

void graphene::app::database_api::unsubscribe_from_market(const std::string &a, conststd::string &b)

说明
取消订阅特定市场的更新。
参数
a:第一个资产符号ID
b:第二个资产符号ID

get_ticker

原型

market_ticker graphene::app::database_api::get_ticker(const string &base, const string &quote)const

说明
返回市场资产代码
返回值
过去24小时的市场代码。
参数
a:第一个资产的字符串名称
b:第二个资产的字符串名称

get_24_volume

原型

market_volume graphene::app::database_api::get_24_volume(const string &base, const string &quote)const

说明
返回市场资产24小时交易量
返回值
过去24小时的市场交易量
参数
a:第一个资产的字符串名称
b:第二个资产的字符串名称

get_trade_history

原型

vector<market_trade> graphene::app::database_api::get_trade_history(const string &base, const string &quote, fc::time_point_sec start, fc::time_point_sec stop, unsigned limit = 100)const

说明
返回最近的交易市场基础报价,按最近一次的时间排序。
注意
目前不支持跨时区。时间必须是UTC。范围是[stop, start)。如果同一秒内发生的交易超过100次,则此API仅返回前100条记录,可以使用另一个API get_trade_history_by_sequence查询其余的记录。
返回值
近期市场交易
参数
base:基础资产的符号或ID
quote:报价资产的符号或ID
start:作为UNIX时间戳的开始时间,要检索的最新交易
stop:停止时间作为UNIX时间戳,是最早检索的交易
limit:要检索的trasactions数量,上限为100。

7.3.10 见证人

get_witnesses

原型

vector<optional<witness_object>> graphene::app::database_api::get_witnesses(constvector<witness_id_type> &witness_ids)const

说明
按ID获取见证人列表。
此函数的语义与get_objects相同。
返回值
见证人对应的ID。
参数
witness_ids:要检索的证人的ID

get_witness_by_account

原型

fc::optional<witness_object> graphene::app::database_api::get_witness_by_account(conststd::string account_id_or_name)const

说明
获取给定帐户存在的见证人。
返回值
对应见证人,如果帐户没有见证人,则为null
参数
account_id_or_name:应检索其见证的帐户的ID

lookup_witness_accounts

原型

map<string, witness_id_type> graphene::app::database_api::lookup_witness_accounts(conststring &lower_bound_name, uint32_t limit)const

说明
获取已登记证人的姓名和身份证件。
返回值
见证人姓名映射到相应的ID
参数
lower_bound_name:要返回值的名字的下限
limit:要返回值的最大结果数不得超过1000

get_witness_count

原型

uint64_t graphene::app::database_api::get_witness_count()const

说明
获取在区块链中注册的证人总数。

7.3.11 委员会成员

get_committee_members

原型

vector<optional<committee_member_object>> graphene::app::database_api::get_committee_members(const vector<committee_member_id_type> &committee_member_ids)const

说明
按ID获取committee_members列表。
此函数的语义与get_objects相同
返回值
委员会成员对应于提供的ID
参数
committee_member_ids:要检索的committee_members的ID

get_committee_member_by_account

原型

fc::optional<committee_member_object> graphene::app::database_api::get_committee_member_by_account(const std::string account_id_or_name)const

说明
获取由给定帐户拥有的委员会成员。
返回值
committee_member对象,如果帐户没有委员会成员,则为null
参数
account:应检索其committee_member的帐户的ID或名称

lookup_committee_member_accounts

原型

map<string, committee_member_id_type> 
graphene::app::database_api::lookup_committee_member_accounts(const string &lower_bound_name, uint32_t limit)const

说明
获取已注册的committee_members的名称和ID。
返回值
委员会成员的地图名称为相应的ID
参数
lower_bound_name:要返回值的名字的下限
limit:要返回值的最大结果数不得超过1000

7.3.12 Workers

get_workers_by_account

原型

vector<optional<worker_object>> graphene::app::database_api::get_workers_by_account(conststd::string account_id_or_name)const

说明
获取给定帐户拥有的工作人员。
返回值
worker对象,如果帐户没有worker,则返回值null
参数
account_id_or_name:应检索其工作人员的帐户的ID或名称

7.3.13 投票

lookup_vote_ids

原型

vector<variant> graphene::app::database_api::lookup_vote_ids(const vector<vote_id_type> &votes)const

说明
给定一组投票,返回值他们投票的对象。
这将是committee_member_object,witness_objects和worker_objects的混合体
结果将与投票的顺序相同。对于未找到的任何投票ID,将返回值Null。
参数
votes:某一组投票的名称或id

7.3.14 权限与验证

get_transaction_hex

原型

std::string graphene::app::database_api::get_transaction_hex(const signed_transaction &trx)const

说明
获取事务的序列化二进制形式的hexdump。
参数
trx:事务ID

get_required_signatures

原型

set<public_key_type> graphene::app::database_api::get_required_signatures(constsigned_transaction &trx, const flat_set<public_key_type> &available_keys)const

说明
此API将采用部分签名的事务和一组公共密钥,所有者可以签名并返回值应将签名添加到事务的最小公钥子集。
参数
trx:事务ID
available_keys:公共秘钥

get_potential_signatures

原型

set<public_key_type> graphene::app::database_api::get_potential_signatures(constsigned_transaction &trx)const

说明
此方法将返回值可能为给定事务签名的所有公钥的集合。钱包可以使用这个调用,在调用get_required_signatures以获得最小子集之前,将它们的公钥集过滤到相关子集。
参数
trx:事务ID

get_potential_address_signatures

原型

set<address> graphene::app::database_api::get_potential_address_signatures(constsigned_transaction &trx)const

说明
获取可能存在的签名地址
参数
trx:事务ID

verify_authority

原型

bool graphene::app::database_api::verify_authority(const signed_transaction &trx)const

返回值
如果trx具有所有必需的签名,则返回值true,否则抛出异常
参数
trx:事务ID

verify_account_authority

原型

bool graphene::app::database_api::verify_account_authority(const string &account_name_or_id, const flat_set<public_key_type> &signers)const

说明
验证公钥是否具有足够的权限来批准此帐户的操作。
返回值
如果传入的密钥具有足够的权限来批准此帐户的操作,则为true
参数
account_name_or_id:要检查的帐户
signers:公钥

validate_transaction

原型

processed_transaction graphene::app::database_api::validate_transaction(constsigned_transaction &trx)const

说明
针对当前状态验证事务而不在网络上广播它。
参数
trx:事务ID

7.3.15 交易提议

get_proposed_transactions

原型

vector<proposal_object> graphene::app::database_api::get_proposed_transactions(conststd::string account_id_or_name)const

返回值
与指定帐户ID相关的提议集。
参数
asset_id_or_symbol:资产ID或符号

7.3.17 获取用户合约数据

get_account_contract_data

原型

fc::variant get_account_contract_data(account_id_type account_id, const contract_id_type contract_id) const;

返回值
返回值查询到的数据
参数
account_id:查询账户的ID
contract_id:查询合约的ID

7.3.18 获取合约公共数据

get_contract_public_data

原型

map<lua_key, lua_types> get_contract_public_data(string contract_id_or_name, map<lua_key, lua_types> filter) const;

返回值
返回值查询到的数据
参数
contract_id_or_name:查询的合约的名称或ID
Filter:查询条件

7.3.19 根据交易的ID获取交易信息

get_transaction_by_id

原型

optional<processed_transaction> get_transaction_by_id(const string &id) const;

返回值
返回值获取到的交易信息
参数
Id:查询的交易ID

7.3.20 获取合约对象

get_contract

原型

optional<contract_object> get_contract(string contract_id_or_name);

返回值
返回值获取的合约对象
参数
contract_id_or_name:查询的合约的名称或ID

7.3.21 根据交易ID获取该交易在块中的信息

get_transaction_in_block_info

原型

fc::optional<transaction_in_block_info> get_transaction_in_block_info(const string &id);

返回值
该交易在块中的信息
参数
id:所查询的交易的hashID

7.3.22 查询世界观

lookup_world_view

原型

vector<optional<world_view_object>> lookup_world_view(const vector<string> &world_view_name_or_ids) const;

返回值
返回值查询到的世界观对象
参数
World_view_name_or_ids:查询的世界观名字或ID

7.3.23 查询非同质资产

lookup_nh_asset

原型

vector<optional<nh_asset_object>> lookup_nh_asset(const vector<string> &nh_asset_hash_or_ids) const;

返回值
返回值查询到的非同质资产对象
参数
nh_asset_hash_or_ids:查询的非同质资产的hashid 或 ID

7.3.24 列出非同质资产创造者所创建的非同质资产

list_nh_asset_by_creator

原型

std::pair<vector<nh_asset_object>, uint32_t> list_nh_asset_by_creator(const account_id_type &nh_asset_creator,uint32_t pagesize,uint32_t page);

返回值
返回值非同质资产列表及符合查询条件的总个数
参数
nh_asset_creator:所查询的创造者
pagesize:返回值结果中每页显示的个数
page:显示第多少页

7.3.25 查询账户下的非同质资产

list_account_nh_asset

原型

std::pair<vector<nh_asset_object>, uint32_t> list_account_nh_asset(const account_id_type &nh_asset_owner,const vector<string> &world_view_name_or_ids,uint32_t pagesize,uint32_t page, nh_asset_list_type list_type = nh_asset_list_type::all_owner);

返回值
非同质资产列表及符合查询条件的总个数
参数
nh_asset_owner:所查询的用户
world_view_name_or_ids:非同质资产所属世界观
pagesize:返回值结果中每页显示的个数
page:显示第多少页
list_type:查询类型(查询类型根据使用权和拥有权分为了5种,enum class nh_asset_list_type
{only_active = 0, // 只查询租借的资产
only_owner = 1, // 只查询出租的资产
all_active = 2, // 所有可使用的资产
all_owner = 3, // 所拥有的所有资产
owner_and_active = 4 // 同时拥有所有权和使用权};)

7.3.26 获取非同质资产创造者的信息

get_nh_creator

原型

fc::optional<nh_asset_creator_object> get_nh_creator(const account_id_type &nh_asset_creator);

返回值
该创造者的信息
参数
nh_asset_creator:创造者的账户名或id

7.3.27 列出非同质资产出售单

list_nh_asset_order

原型

std::pair<vector<nh_asset_order_object>, uint32_t> list_nh_asset_order(const string &world_view_name_or_id,const string &asset_symbols_or_id, const string &base_describe = "",uint32_t pagesize = 10,uint32_t page = 1, bool is_ascending_order = true);

返回值
非同质资产出售单列表以及符合查询条件的总个数
参数
world_view_name_or_id:非同质资产所属的世界观
asset_symbols_or_id:非同质资产的同质资产资质
base_describe:非同质资产的基本描述
pagesize:返回值结果中每页显示的个数
page:显示第多少页
is_ascending_order:是否正序排列,true为正序,false为反序

7.3.28 列出该账户下所挂单的非同质资产出售单

list_account_nh_asset_order

原型

std::pair<vector<nh_asset_order_object>, uint32_t> list_account_nh_asset_order(const account_id_type &nh_asset_order_owner,uint32_t pagesize,uint32_t page);

返回值
非同质资产出售单列表以及符合查询条件的总个数
参数
nh_asset_order_owner:所查询的账户
pagesize:返回值结果中每页显示的个数
page:显示第多少页

7.3.29 查找文件

lookup_file

原型

fc::optional<file_object> lookup_file(const string &file_name_or_ids) const;

返回值
返回值查找到的文件的信息
参数
file_name_or_ids:要查找的文件的名字或ID

7.3.30 列出用户创建的文件

list_account_created_file

原型

map<string, file_id_type> list_account_created_file(const account_id_type &file_creator) const;

返回值
返回值该用户创建的文件的文件名及ID
参数
file_creator:查询的用户

7.3.31 列出用户创建的定时任务

list_account_crontab

原型

vector<crontab_object> list_account_crontab(const account_id_type &crontab_creator, bool contain_normal = true, bool contain_suspended = true) const;

返回值
返回值符合查询条件的任务
参数
crontab_creator:任务创建者
contain_normal:是否包含状态正常的任务
contain_suspended:是否包含被挂起的任务

Updated 25 days ago


7.3 Database API


Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.