From 0c14896a3d5fc3598518aeeead03c5be1066162d Mon Sep 17 00:00:00 2001 From: Roman Olearski Date: Mon, 22 May 2017 19:49:10 +0200 Subject: [PATCH] done acounts_list_plugin --- libraries/app/api.cpp | 2 +- libraries/app/include/graphene/app/api.hpp | 2 +- .../accounts_list/accounts_list_plugin.cpp | 27 +++++++------------ .../accounts_list/accounts_list_plugin.hpp | 3 ++- .../wallet/include/graphene/wallet/wallet.hpp | 2 +- libraries/wallet/wallet.cpp | 17 +++++++++++- 6 files changed, 30 insertions(+), 23 deletions(-) diff --git a/libraries/app/api.cpp b/libraries/app/api.cpp index cd9e8cf8..9b44887c 100644 --- a/libraries/app/api.cpp +++ b/libraries/app/api.cpp @@ -458,7 +458,7 @@ namespace graphene { namespace app { return result; } - vector history_api::list_core_accounts()const + vector history_api::list_core_accounts()const { auto list = _app.get_plugin( "accounts_list" ); FC_ASSERT( list ); diff --git a/libraries/app/include/graphene/app/api.hpp b/libraries/app/include/graphene/app/api.hpp index 81719723..bae73ece 100644 --- a/libraries/app/include/graphene/app/api.hpp +++ b/libraries/app/include/graphene/app/api.hpp @@ -115,7 +115,7 @@ namespace graphene { namespace app { vector get_fill_order_history( asset_id_type a, asset_id_type b, uint32_t limit )const; vector get_market_history( asset_id_type a, asset_id_type b, uint32_t bucket_seconds, fc::time_point_sec start, fc::time_point_sec end )const; - vector list_core_accounts()const; + vector list_core_accounts()const; flat_set get_market_history_buckets()const; private: application& _app; diff --git a/libraries/plugins/accounts_list/accounts_list_plugin.cpp b/libraries/plugins/accounts_list/accounts_list_plugin.cpp index bda31c42..aabf711d 100644 --- a/libraries/plugins/accounts_list/accounts_list_plugin.cpp +++ b/libraries/plugins/accounts_list/accounts_list_plugin.cpp @@ -62,8 +62,7 @@ class accounts_list_plugin_impl } accounts_list_plugin& _self; - vector _listed_accounts; - //map _listed_balances; + vector _listed_balances; }; accounts_list_plugin_impl::~accounts_list_plugin_impl() @@ -74,19 +73,16 @@ accounts_list_plugin_impl::~accounts_list_plugin_impl() void accounts_list_plugin_impl::list_accounts() { graphene::chain::database& db = database(); - _listed_accounts.clear(); + _listed_balances.clear(); - - std::vector db_balances; auto& balance_index = db.get_index_type().indices().get(); for (auto balance_iter = balance_index.begin(); balance_iter != balance_index.end() && balance_iter->asset_type == graphene::chain::asset_id_type() && balance_iter->balance > 0; ++balance_iter) { - idump((balance_iter->owner(db))(*balance_iter)); - _listed_accounts.emplace_back(balance_iter->owner); - db_balances.emplace_back(*balance_iter); + //idump((balance_iter->owner(db) .name)(*balance_iter)); + _listed_balances.emplace_back(*balance_iter); } } @@ -119,26 +115,21 @@ void accounts_list_plugin::plugin_set_program_options( void accounts_list_plugin::plugin_initialize(const boost::program_options::variables_map& /*options*/) { - ilog("accounts list plugin: plugin_initialize()"); - //database().add_index< primary_index< simple_index< operation_history_object > > >(); - //database().add_index< primary_index< simple_index< account_transaction_history_object > > >(); - - //LOAD_VALUE_SET(options, "listed-accounts", my->_listed_accounts, graphene::chain::account_id_type); - + //ilog("accounts list plugin: plugin_initialize()"); list_accounts(); } void accounts_list_plugin::plugin_startup() { - ilog("accounts list plugin: plugin_startup()"); + //ilog("accounts list plugin: plugin_startup()"); } -std::vector accounts_list_plugin::list_accounts() const + vector accounts_list_plugin::list_accounts() const { ilog("accounts list plugin: list_accounts()"); my->list_accounts(); - idump((my->_listed_accounts)); - return my->_listed_accounts; + //idump((my->_listed_balances)); + return my->_listed_balances; } } } diff --git a/libraries/plugins/accounts_list/include/graphene/accounts_list/accounts_list_plugin.hpp b/libraries/plugins/accounts_list/include/graphene/accounts_list/accounts_list_plugin.hpp index ba5aa2cf..d57e19eb 100644 --- a/libraries/plugins/accounts_list/include/graphene/accounts_list/accounts_list_plugin.hpp +++ b/libraries/plugins/accounts_list/include/graphene/accounts_list/accounts_list_plugin.hpp @@ -25,6 +25,7 @@ #include #include +#include #include @@ -49,7 +50,7 @@ class accounts_list_plugin : public graphene::app::plugin virtual void plugin_initialize(const boost::program_options::variables_map& options) override; virtual void plugin_startup() override; - vector list_accounts()const; + vectorlist_accounts()const; friend class detail::accounts_list_plugin_impl; std::unique_ptr my; diff --git a/libraries/wallet/include/graphene/wallet/wallet.hpp b/libraries/wallet/include/graphene/wallet/wallet.hpp index 6f2412f5..cf56bfdb 100644 --- a/libraries/wallet/include/graphene/wallet/wallet.hpp +++ b/libraries/wallet/include/graphene/wallet/wallet.hpp @@ -340,7 +340,7 @@ class wallet_api */ vector get_account_history(string name, int limit)const; - vector list_core_accounts()const; + vector list_core_accounts()const; vector get_market_history(string symbol, string symbol2, uint32_t bucket)const; vector get_limit_orders(string a, string b, uint32_t limit)const; diff --git a/libraries/wallet/wallet.cpp b/libraries/wallet/wallet.cpp index 8985c933..3f00d58a 100644 --- a/libraries/wallet/wallet.cpp +++ b/libraries/wallet/wallet.cpp @@ -2403,6 +2403,21 @@ public: return ss.str(); }; + m["list_core_accounts"] = [this](variant result, const fc::variants& a) + { + std::stringstream ss; + + auto balances = result.as>(); + for (const account_balance_object& balance: balances) + { + const account_object& account = get_account(balance.owner); + //ss << account.name << " " << std::string(balance.id) << " " << balance.balance.value << "\n"; + ss << account.name << " " << std::string(balance.id) << " " << get_asset(balance.asset_type).amount_to_pretty_string(balance.balance) << "\n"; + } + + return ss.str(); + }; + m["get_blind_balances"] = [this](variant result, const fc::variants& a) { auto r = result.as>(); @@ -3328,7 +3343,7 @@ vector wallet_api::get_account_history(string name, int limit) return result; } -vector wallet_api::list_core_accounts()const +vector wallet_api::list_core_accounts()const { return my->_remote_hist->list_core_accounts(); }