diff --git a/contracts/api/include/api/api.hpp b/contracts/api/include/api/api.hpp index 1f00df8..fd74309 100644 --- a/contracts/api/include/api/api.hpp +++ b/contracts/api/include/api/api.hpp @@ -23,6 +23,12 @@ struct get_account_response eosiosystem::voter_info vote; }; +struct get_available_response +{ + name account; + bool available; +}; + struct token_definition { name contract; @@ -67,12 +73,13 @@ class [[eosio::contract("api")]] api : public contract const name system_contract_msig, const name system_token_contract, const symbol system_token_symbol); - /** - * account readonly action - */ + [[eosio::action, eosio::read_only]] get_account_response account(const name account); using account_action = action_wrapper<"account"_n, &api::account>; + [[eosio::action, eosio::read_only]] get_available_response available(const name account); + using available_action = action_wrapper<"available"_n, &api::available>; + [[eosio::action, eosio::read_only]] std::vector balances(const name account, const std::vector tokens, const bool zerobalances); using balances_action = action_wrapper<"balances"_n, &api::balances>; diff --git a/contracts/api/src/api.cpp b/contracts/api/src/api.cpp index 5c30714..0b22ccd 100644 --- a/contracts/api/src/api.cpp +++ b/contracts/api/src/api.cpp @@ -78,6 +78,11 @@ namespace api { .vote = vote}; } +[[eosio::action, eosio::read_only]] get_available_response api::available(const name account) +{ + return get_available_response{.account = account, .available = is_account(account)}; +} + [[eosio::action, eosio::read_only]] get_network_response api::network() { config_table _config(get_self(), get_self().value);