Draft list of all API calls within the Steem codebase

in #dawn-network7 years ago

Since


now there is no limit on posts per day that may be made, I can post lots more, but I don't really have tons of things to post, I am logging the process of essentially documenting the Steem blockchain application, `steemd` and how you interface with it, because, well, if you are following my posts you know that I intend to make it so that the community cannot be abandoned, if it does come to that.

Anyway, so, using the following one-liner on the shell on the repository of steem, you get the result I will post after (though there is a couple of parts I have to go back and check because there is arbitrary line breaks in between):

find steem|grep api\.cpp$|xargs cat|grep api\:\:|grep -v ASSERT|grep -v '^ '|grep -v '^/'|sed 's/ / /g'|sed 's/ / /g'|sed 's/^ //g'

and the output:

void database_api::set_subscribe_callback( std::function<void(const variant&)> cb, bool clear_filter )
void database_api::set_pending_transaction_callback( std::function<void(const variant&)> cb )
void database_api::set_block_applied_callback( std::function<void(const variant& block_id)> cb )
void database_api::cancel_all_subscriptions()
database_api::database_api( const steemit::app::api_context& ctx )
database_api::~database_api() {}
void database_api::on_api_startup() {}
optional<block_header> database_api::get_block_header(uint32_t block_num)const
optional<signed_block> database_api::get_block(uint32_t block_num)const
vector<applied_operation> database_api::get_ops_in_block(uint32_t block_num, bool only_virtual)const
fc::variant_object database_api::get_config()const
dynamic_global_property_api_obj database_api::get_dynamic_global_properties()const
chain_properties database_api::get_chain_properties()const
feed_history_api_obj database_api::get_feed_history()const
price database_api::get_current_median_history_price()const
witness_schedule_api_obj database_api::get_witness_schedule()const
hardfork_version database_api::get_hardfork_version()const
scheduled_hardfork database_api::get_next_scheduled_hardfork() const
reward_fund_api_obj database_api::get_reward_fund( string name )const
vector<set<string>> database_api::get_key_references( vector<public_key_type> key )const
vector< extended_account > database_api::get_accounts( vector< string > names )const
vector<account_id_type> database_api::get_account_references( account_id_type account_id )const
vector<optional<account_api_obj>> database_api::lookup_account_names(const vector<string>& account_names)const
set<string> database_api::lookup_accounts(const string& lower_bound_name, uint32_t limit)const
uint64_t database_api::get_account_count()const
vector< owner_authority_history_api_obj > database_api::get_owner_history( string account )const
optional< account_recovery_request_api_obj > database_api::get_recovery_request( string account )const
optional< escrow_api_obj > database_api::get_escrow( string from, uint32_t escrow_id )const
vector< withdraw_route > database_api::get_withdraw_routes( string account, withdraw_route_type type )const
optional< account_bandwidth_api_obj > database_api::get_account_bandwidth( string account, bandwidth_type type )const
vector<optional<witness_api_obj>> database_api::get_witnesses(const vector<witness_id_type>& witness_ids)const
fc::optional<witness_api_obj> database_api::get_witness_by_account( string account_name ) const
vector< witness_api_obj > database_api::get_witnesses_by_vote( string from, uint32_t limit )const
set< account_name_type > database_api::lookup_witness_accounts( const string& lower_bound_name, uint32_t limit ) const
uint64_t database_api::get_witness_count()const
order_book database_api::get_order_book( uint32_t limit )const
vector<extended_limit_order> database_api::get_open_orders( string owner )const
vector< liquidity_balance > database_api::get_liquidity_queue( string start_account, uint32_t limit )const
std::string database_api::get_transaction_hex(const signed_transaction& trx)const
set<public_key_type> database_api::get_required_signatures( const signed_transaction& trx, const flat_set<public_key_type>& available_keys )const
set<public_key_type> database_api::get_potential_signatures( const signed_transaction& trx )const
bool database_api::verify_authority( const signed_transaction& trx ) const
bool database_api::verify_account_authority( const string& name_or_id, const flat_set<public_key_type>& signers )const
vector<convert_request_api_obj> database_api::get_conversion_requests( const string& account )const
discussion database_api::get_content( string author, string permlink )const
vector<vote_state> database_api::get_active_votes( string author, string permlink )const
vector<account_vote> database_api::get_account_votes( string voter )const
void database_api::set_pending_payout( discussion& d )const
void database_api::set_url( discussion& d )const
vector<discussion> database_api::get_content_replies( string author, string permlink )const
vector<discussion> database_api::get_replies_by_last_update( account_name_type start_parent_author, string start_permlink, uint32_t limit )const
map< uint32_t, applied_operation > database_api::get_account_history( string account, uint64_t from, uint32_t limit )const
vector<pair<string,uint32_t> > database_api::get_tags_used_by_author( const string& author )const {
vector<tag_api_obj> database_api::get_trending_tags( string after, uint32_t limit )const
discussion database_api::get_discussion( comment_id_type id, uint32_t truncate_body )const
vector<discussion> database_api::get_discussions( const discussion_query& query, const string& tag, comment_id_type parent, const Index& tidx, StartItr tidx_itr, uint32_t truncate_body, const std::function< bool(const comment_api_obj& ) >& filter, const std::function< bool(const comment_api_obj& ) >& exit, const std::function< bool(const tags::tag_object& ) >& tag_exit, bool ignore_parent )const
comment_id_type database_api::get_parent( const discussion_query& query )const
vector<discussion> database_api::get_discussions_by_payout( const discussion_query& query )const
vector<discussion> database_api::get_post_discussions_by_payout( const discussion_query& query )const
vector<discussion> database_api::get_comment_discussions_by_payout( const discussion_query& query )const
vector<discussion> database_api::get_discussions_by_promoted( const discussion_query& query )const
vector<discussion> database_api::get_discussions_by_trending( const discussion_query& query )const
vector<discussion> database_api::get_discussions_by_created( const discussion_query& query )const
vector<discussion> database_api::get_discussions_by_active( const discussion_query& query )const
vector<discussion> database_api::get_discussions_by_cashout( const discussion_query& query )const
vector<discussion> database_api::get_discussions_by_votes( const discussion_query& query )const
vector<discussion> database_api::get_discussions_by_children( const discussion_query& query )const
vector<discussion> database_api::get_discussions_by_hot( const discussion_query& query )const
vector<discussion> database_api::get_discussions_by_feed( const discussion_query& query )const
vector<discussion> database_api::get_discussions_by_blog( const discussion_query& query )const
vector<discussion> database_api::get_discussions_by_comments( const discussion_query& query )const
vector<category_api_obj> database_api::get_trending_categories( string after, uint32_t limit )const
vector<category_api_obj> database_api::get_best_categories( string after, uint32_t limit )const
vector<category_api_obj> database_api::get_active_categories( string after, uint32_t limit )const
vector<category_api_obj> database_api::get_recent_categories( string after, uint32_t limit )const
void database_api::recursively_fetch_content( state& _state, discussion& root, set<string>& referenced_accounts )const
vector<account_name_type> database_api::get_miner_queue()const
vector< account_name_type > database_api::get_active_witnesses()const
vector<discussion> database_api::get_discussions_by_author_before_date(string author, string start_permlink, time_point_sec before_date, uint32_t limit )const
vector< savings_withdraw_api_obj > database_api::get_savings_withdraw_from( string account )const
vector< savings_withdraw_api_obj > database_api::get_savings_withdraw_to( string account )const
vector< vesting_delegation_api_obj > database_api::get_vesting_delegations( string account, string from, uint32_t limit )const
vector< vesting_delegation_expiration_api_obj > database_api::get_expiring_vesting_delegations( string account, time_point_sec from, uint32_t limit )const
state database_api::get_state( string path )const
annotated_signed_transaction database_api::get_transaction( transaction_id_type id )const
blockchain_statistics_api::blockchain_statistics_api( const steemit::app::api_context& ctx )
void blockchain_statistics_api::on_api_startup() {}
statistics blockchain_statistics_api::get_stats_for_time( fc::time_point_sec open, uint32_t interval )const
statistics blockchain_statistics_api::get_stats_for_interval( fc::time_point_sec start, fc::time_point_sec end )const
statistics blockchain_statistics_api::get_lifetime_stats()const
account_by_key_api::account_by_key_api( const steemit::app::api_context& ctx )
void account_by_key_api::on_api_startup() {}
vector< vector< account_name_type > > account_by_key_api::get_key_references( vector< public_key_type > keys )const
follow_api::follow_api( const steemit::app::api_context& ctx )
void follow_api::on_api_startup() {}
vector<follow_api_obj> follow_api::get_followers( string following, string start_follower, follow_type type, uint16_t limit )const
vector<follow_api_obj> follow_api::get_following( string follower, string start_following, follow_type type, uint16_t limit )const
follow_count_api_obj follow_api::get_follow_count( string account )const
vector< feed_entry > follow_api::get_feed_entries( string account, uint32_t entry_id, uint16_t limit )const
vector< comment_feed_entry > follow_api::get_feed( string account, uint32_t entry_id, uint16_t limit )const
vector< blog_entry > follow_api::get_blog_entries( string account, uint32_t entry_id, uint16_t limit )const
vector< comment_blog_entry > follow_api::get_blog( string account, uint32_t entry_id, uint16_t limit )const
vector< account_reputation > follow_api::get_account_reputations( string lower_bound_name, uint32_t limit )const
vector< account_name_type > follow_api::get_reblogged_by( const string& author, const string& permlink )const {
vector< pair< account_name_type, uint32_t > > follow_api::get_blog_authors( const account_name_type& blog )const {
auth_util_api::auth_util_api( const steemit::app::api_context& ctx )
void auth_util_api::on_api_startup() { }
check_authority_signature_result auth_util_api::check_authority_signature( check_authority_signature_params args )
raw_block_api::raw_block_api( const steemit::app::api_context& ctx )
get_raw_block_result raw_block_api::get_raw_block( get_raw_block_args args )
void raw_block_api::push_raw_block( std::string block_b64 )
void raw_block_api::on_api_startup() { }
market_history_api::market_history_api( const steemit::app::api_context& ctx )
void market_history_api::on_api_startup() {}
market_ticker market_history_api::get_ticker() const
market_volume market_history_api::get_volume() const
order_book market_history_api::get_order_book( uint32_t limit ) const
std::vector< market_trade > market_history_api::get_trade_history( time_point_sec start, time_point_sec end, uint32_t limit ) const
std::vector< market_trade > market_history_api::get_recent_trades( uint32_t limit ) const
std::vector< bucket_object > market_history_api::get_market_history( uint32_t bucket_seconds, time_point_sec start, time_point_sec end ) const
flat_set< uint32_t > market_history_api::get_market_history_buckets() const
account_statistics_api::account_statistics_api( const steemit::app::api_context& ctx )
void account_statistics_api::on_api_startup() {}
block_info_api::block_info_api( const steemit::app::api_context& ctx )
std::vector< block_info > block_info_api::get_block_info( get_block_info_args args )
std::vector< block_with_info > block_info_api::get_blocks_with_info( get_block_info_args args )
void block_info_api::on_api_startup() { }
debug_node_api::debug_node_api( const steemit::app::api_context& ctx )
void debug_node_api::on_api_startup() {}
uint32_t debug_node_api::debug_push_blocks( std::string source_filename, uint32_t count, bool skip_validate_invariants )
uint32_t debug_node_api::debug_generate_blocks( std::string debug_key, uint32_t count )
uint32_t debug_node_api::debug_generate_blocks_until( std::string debug_key, fc::time_point_sec head_block_time, bool generate_sparsely )
fc::optional< steemit::chain::signed_block > debug_node_api::debug_pop_block()
steemit::chain::witness_schedule_object debug_node_api::debug_get_witness_schedule()
steemit::chain::hardfork_property_object debug_node_api::debug_get_hardfork_property_object()
void debug_node_api::debug_update_object( fc::variant_object update )
fc::variant_object debug_node_api::debug_get_edits()
void debug_node_api::debug_set_edits( fc::variant_object edits )
void debug_node_api::debug_set_dev_key_prefix( std::string prefix )
get_dev_key_result debug_node_api::debug_get_dev_key( get_dev_key_args args )
debug_mine_result debug_node_api::debug_mine( debug_mine_args args )
void debug_node_api::debug_stream_json_objects( std::string filename )
void debug_node_api::debug_stream_json_objects_flush()
void debug_node_api::debug_set_hardfork( uint32_t hardfork_id )
bool debug_node_api::debug_has_hardfork( uint32_t hardfork_id )
std::string debug_node_api::debug_get_json_schema()

NOTE

This possibly could be somewhat inaccurate in places, but it should be practically complete. I will be next working on going into each of these functions to check the structures they return.

😎


We can't code here! This is Whale country!

Vote #1 l0k1

Go to steemit.com/~witnesses to cast your vote by typing l0k1 into the text entry at the bottom of the leaderboard.

(note, my username is spelled El Zero Kay One or Lima Zero Kilo One, all lower case)

Sort:  

Nice, ya big nerd 😜 😎

find steem|grep api.cpp$|xargs cat|grep api::|grep -v ASSERT|grep -v '^ '|grep -v '^/'|sed 's/ / /g'|sed 's/ / /g'|sed 's/^ //g'

Just for fun, thought I'd take a swipe at removing some of the pipelines. I think this is more or less the same thing...

find steem -name \*api.cpp -exec sed -n '/ASSERT/ d;/^\// d;/^ / d;s/  */ /g;/api\:\:/ p' {} \;

btw, two of the functions get chopped out of the code, one of them has a very long parameter list one to a line, and another one with a break. I used grep \($ to isolate them so I could manually add their parameters.

Yeah, so many pipes is just an easy way to build up the correct substitutions and filters bit by bit until you have the right lines coming out.

Coin Marketplace

STEEM 0.31
TRX 0.11
JST 0.035
BTC 66739.07
ETH 3228.97
USDT 1.00
SBD 4.23