Enable RPC calls
This commit is contained in:
parent
9f5269e808
commit
5085167554
6 changed files with 48 additions and 14 deletions
|
|
@ -155,6 +155,7 @@ class database_api_impl : public std::enable_shared_from_this<database_api_impl>
|
||||||
// Sidechain addresses
|
// Sidechain addresses
|
||||||
vector<optional<sidechain_address_object>> get_sidechain_addresses(const vector<sidechain_address_id_type>& sidechain_address_ids)const;
|
vector<optional<sidechain_address_object>> get_sidechain_addresses(const vector<sidechain_address_id_type>& sidechain_address_ids)const;
|
||||||
vector<optional<sidechain_address_object>> get_sidechain_addresses_by_account(account_id_type account)const;
|
vector<optional<sidechain_address_object>> get_sidechain_addresses_by_account(account_id_type account)const;
|
||||||
|
vector<optional<sidechain_address_object>> get_sidechain_addresses_by_sidechain(peerplays_sidechain::sidechain_type sidechain)const;
|
||||||
fc::optional<sidechain_address_object> get_sidechain_addresses_by_account_and_sidechain(account_id_type account, peerplays_sidechain::sidechain_type sidechain)const;
|
fc::optional<sidechain_address_object> get_sidechain_addresses_by_account_and_sidechain(account_id_type account, peerplays_sidechain::sidechain_type sidechain)const;
|
||||||
uint64_t get_sidechain_addresses_count()const;
|
uint64_t get_sidechain_addresses_count()const;
|
||||||
|
|
||||||
|
|
@ -1799,6 +1800,21 @@ vector<optional<sidechain_address_object>> database_api::get_sidechain_addresses
|
||||||
|
|
||||||
vector<optional<sidechain_address_object>> database_api_impl::get_sidechain_addresses_by_account(account_id_type account)const
|
vector<optional<sidechain_address_object>> database_api_impl::get_sidechain_addresses_by_account(account_id_type account)const
|
||||||
{
|
{
|
||||||
|
//const auto& idx = _db.get_index_type<sidechain_address_index>().indices().get<by_account>();
|
||||||
|
|
||||||
|
vector<optional<sidechain_address_object>> result;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
vector<optional<sidechain_address_object>> database_api::get_sidechain_addresses_by_sidechain(peerplays_sidechain::sidechain_type sidechain)const
|
||||||
|
{
|
||||||
|
return my->get_sidechain_addresses_by_sidechain( sidechain );
|
||||||
|
}
|
||||||
|
|
||||||
|
vector<optional<sidechain_address_object>> database_api_impl::get_sidechain_addresses_by_sidechain(peerplays_sidechain::sidechain_type sidechain)const
|
||||||
|
{
|
||||||
|
//const auto& idx = _db.get_index_type<sidechain_address_index>().indices().get<by_sidechain>();
|
||||||
|
|
||||||
vector<optional<sidechain_address_object>> result;
|
vector<optional<sidechain_address_object>> result;
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
@ -1810,8 +1826,11 @@ fc::optional<sidechain_address_object> database_api::get_sidechain_addresses_by_
|
||||||
|
|
||||||
fc::optional<sidechain_address_object> database_api_impl::get_sidechain_addresses_by_account_and_sidechain(account_id_type account, peerplays_sidechain::sidechain_type sidechain)const
|
fc::optional<sidechain_address_object> database_api_impl::get_sidechain_addresses_by_account_and_sidechain(account_id_type account, peerplays_sidechain::sidechain_type sidechain)const
|
||||||
{
|
{
|
||||||
sidechain_address_object result;
|
const auto& idx = _db.get_index_type<sidechain_address_index>().indices().get<by_account_and_sidechain>();
|
||||||
return result;
|
auto itr = idx.find( boost::make_tuple( account, sidechain ) );
|
||||||
|
if( itr != idx.end() )
|
||||||
|
return *itr;
|
||||||
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
uint64_t database_api::get_sidechain_addresses_count()const
|
uint64_t database_api::get_sidechain_addresses_count()const
|
||||||
|
|
@ -1821,7 +1840,7 @@ uint64_t database_api::get_sidechain_addresses_count()const
|
||||||
|
|
||||||
uint64_t database_api_impl::get_sidechain_addresses_count()const
|
uint64_t database_api_impl::get_sidechain_addresses_count()const
|
||||||
{
|
{
|
||||||
return 0;
|
return _db.get_index_type<sidechain_address_index>().indices().size();
|
||||||
}
|
}
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////
|
||||||
|
|
|
||||||
|
|
@ -623,11 +623,18 @@ class database_api
|
||||||
*/
|
*/
|
||||||
vector<optional<sidechain_address_object>> get_sidechain_addresses_by_account(account_id_type account)const;
|
vector<optional<sidechain_address_object>> get_sidechain_addresses_by_account(account_id_type account)const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get the sidechain addresses for a given sidechain
|
||||||
|
* @param sidechain Sidechain for which addresses should be retrieved
|
||||||
|
* @return The sidechain addresses objects, or null if the sidechain does not have any addresses
|
||||||
|
*/
|
||||||
|
vector<optional<sidechain_address_object>> get_sidechain_addresses_by_sidechain(peerplays_sidechain::sidechain_type sidechain)const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get the sidechain addresses for a given account and sidechain
|
* @brief Get the sidechain addresses for a given account and sidechain
|
||||||
* @param account The ID of the account whose sidechain addresses should be retrieved
|
* @param account The ID of the account whose sidechain addresses should be retrieved
|
||||||
* @param sidechain Sidechain for which address should be retrieved
|
* @param sidechain Sidechain for which address should be retrieved
|
||||||
* @return The sidechain addresses objects, or null if the account does not have a sidechain addresses for a given network
|
* @return The sidechain addresses objects, or null if the account does not have a sidechain addresses for a given sidechain
|
||||||
*/
|
*/
|
||||||
fc::optional<sidechain_address_object> get_sidechain_addresses_by_account_and_sidechain(account_id_type account, peerplays_sidechain::sidechain_type sidechain)const;
|
fc::optional<sidechain_address_object> get_sidechain_addresses_by_account_and_sidechain(account_id_type account, peerplays_sidechain::sidechain_type sidechain)const;
|
||||||
|
|
||||||
|
|
@ -848,6 +855,13 @@ FC_API(graphene::app::database_api,
|
||||||
(lookup_son_accounts)
|
(lookup_son_accounts)
|
||||||
(get_son_count)
|
(get_son_count)
|
||||||
|
|
||||||
|
// Sidechain addresses
|
||||||
|
(get_sidechain_addresses)
|
||||||
|
(get_sidechain_addresses_by_account)
|
||||||
|
(get_sidechain_addresses_by_sidechain)
|
||||||
|
(get_sidechain_addresses_by_account_and_sidechain)
|
||||||
|
(get_sidechain_addresses_count)
|
||||||
|
|
||||||
// workers
|
// workers
|
||||||
(get_workers_by_account)
|
(get_workers_by_account)
|
||||||
// Votes
|
// Votes
|
||||||
|
|
|
||||||
|
|
@ -33,8 +33,8 @@ namespace graphene { namespace chain {
|
||||||
};
|
};
|
||||||
|
|
||||||
struct by_account;
|
struct by_account;
|
||||||
struct by_network;
|
struct by_sidechain;
|
||||||
struct by_account_and_network;
|
struct by_account_and_sidechain;
|
||||||
using sidechain_address_multi_index_type = multi_index_container<
|
using sidechain_address_multi_index_type = multi_index_container<
|
||||||
sidechain_address_object,
|
sidechain_address_object,
|
||||||
indexed_by<
|
indexed_by<
|
||||||
|
|
@ -44,10 +44,10 @@ namespace graphene { namespace chain {
|
||||||
ordered_unique< tag<by_account>,
|
ordered_unique< tag<by_account>,
|
||||||
member<sidechain_address_object, account_id_type, &sidechain_address_object::sidechain_address_account>
|
member<sidechain_address_object, account_id_type, &sidechain_address_object::sidechain_address_account>
|
||||||
>,
|
>,
|
||||||
ordered_unique< tag<by_network>,
|
ordered_unique< tag<by_sidechain>,
|
||||||
member<sidechain_address_object, peerplays_sidechain::sidechain_type, &sidechain_address_object::sidechain>
|
member<sidechain_address_object, peerplays_sidechain::sidechain_type, &sidechain_address_object::sidechain>
|
||||||
>,
|
>,
|
||||||
ordered_unique< tag<by_account_and_network>,
|
ordered_unique< tag<by_account_and_sidechain>,
|
||||||
composite_key<sidechain_address_object,
|
composite_key<sidechain_address_object,
|
||||||
member<sidechain_address_object, account_id_type, &sidechain_address_object::sidechain_address_account>,
|
member<sidechain_address_object, account_id_type, &sidechain_address_object::sidechain_address_account>,
|
||||||
member<sidechain_address_object, peerplays_sidechain::sidechain_type, &sidechain_address_object::sidechain>
|
member<sidechain_address_object, peerplays_sidechain::sidechain_type, &sidechain_address_object::sidechain>
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ namespace graphene { namespace chain {
|
||||||
void_result add_sidechain_address_evaluator::do_evaluate(const sidechain_address_add_operation& op)
|
void_result add_sidechain_address_evaluator::do_evaluate(const sidechain_address_add_operation& op)
|
||||||
{ try{
|
{ try{
|
||||||
|
|
||||||
const auto& idx = db().get_index_type<sidechain_address_index>().indices().get<by_account_and_network>();
|
const auto& idx = db().get_index_type<sidechain_address_index>().indices().get<by_account_and_sidechain>();
|
||||||
FC_ASSERT( idx.find(boost::make_tuple(op.sidechain_address_account, op.sidechain)) == idx.end(), "Duplicated item" );
|
FC_ASSERT( idx.find(boost::make_tuple(op.sidechain_address_account, op.sidechain)) == idx.end(), "Duplicated item" );
|
||||||
return void_result();
|
return void_result();
|
||||||
} FC_CAPTURE_AND_RETHROW( (op) ) }
|
} FC_CAPTURE_AND_RETHROW( (op) ) }
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,7 @@ bool sidechain_net_manager::create_handler(peerplays_sidechain::sidechain_type s
|
||||||
std::unique_ptr<sidechain_net_handler> h = std::unique_ptr<sidechain_net_handler>(new sidechain_net_handler_bitcoin(options));
|
std::unique_ptr<sidechain_net_handler> h = std::unique_ptr<sidechain_net_handler>(new sidechain_net_handler_bitcoin(options));
|
||||||
net_handlers.push_back(std::move(h));
|
net_handlers.push_back(std::move(h));
|
||||||
ret_val = true;
|
ret_val = true;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
assert(false);
|
assert(false);
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,7 @@ BOOST_AUTO_TEST_CASE( sidechain_address_add_test ) {
|
||||||
|
|
||||||
BOOST_TEST_MESSAGE("Check sidechain_address_add_operation results");
|
BOOST_TEST_MESSAGE("Check sidechain_address_add_operation results");
|
||||||
|
|
||||||
const auto& idx = db.get_index_type<sidechain_address_index>().indices().get<by_account_and_network>();
|
const auto& idx = db.get_index_type<sidechain_address_index>().indices().get<by_account_and_sidechain>();
|
||||||
BOOST_REQUIRE( idx.size() == 1 );
|
BOOST_REQUIRE( idx.size() == 1 );
|
||||||
auto obj = idx.find( boost::make_tuple( alice_id, graphene::peerplays_sidechain::sidechain_type::bitcoin ) );
|
auto obj = idx.find( boost::make_tuple( alice_id, graphene::peerplays_sidechain::sidechain_type::bitcoin ) );
|
||||||
BOOST_REQUIRE( obj != idx.end() );
|
BOOST_REQUIRE( obj != idx.end() );
|
||||||
|
|
@ -61,7 +61,7 @@ BOOST_AUTO_TEST_CASE( sidechain_address_update_test ) {
|
||||||
|
|
||||||
GET_ACTOR(alice);
|
GET_ACTOR(alice);
|
||||||
|
|
||||||
const auto& idx = db.get_index_type<sidechain_address_index>().indices().get<by_account_and_network>();
|
const auto& idx = db.get_index_type<sidechain_address_index>().indices().get<by_account_and_sidechain>();
|
||||||
BOOST_REQUIRE( idx.size() == 1 );
|
BOOST_REQUIRE( idx.size() == 1 );
|
||||||
auto obj = idx.find( boost::make_tuple( alice_id, graphene::peerplays_sidechain::sidechain_type::bitcoin ) );
|
auto obj = idx.find( boost::make_tuple( alice_id, graphene::peerplays_sidechain::sidechain_type::bitcoin ) );
|
||||||
BOOST_REQUIRE( obj != idx.end() );
|
BOOST_REQUIRE( obj != idx.end() );
|
||||||
|
|
@ -90,7 +90,7 @@ BOOST_AUTO_TEST_CASE( sidechain_address_update_test ) {
|
||||||
{
|
{
|
||||||
BOOST_TEST_MESSAGE("Check sidechain_address_update_operation results");
|
BOOST_TEST_MESSAGE("Check sidechain_address_update_operation results");
|
||||||
|
|
||||||
const auto& idx = db.get_index_type<sidechain_address_index>().indices().get<by_account_and_network>();
|
const auto& idx = db.get_index_type<sidechain_address_index>().indices().get<by_account_and_sidechain>();
|
||||||
BOOST_REQUIRE( idx.size() == 1 );
|
BOOST_REQUIRE( idx.size() == 1 );
|
||||||
auto obj = idx.find( boost::make_tuple( alice_id, graphene::peerplays_sidechain::sidechain_type::bitcoin ) );
|
auto obj = idx.find( boost::make_tuple( alice_id, graphene::peerplays_sidechain::sidechain_type::bitcoin ) );
|
||||||
BOOST_REQUIRE( obj != idx.end() );
|
BOOST_REQUIRE( obj != idx.end() );
|
||||||
|
|
@ -110,7 +110,7 @@ BOOST_AUTO_TEST_CASE( sidechain_address_delete_test ) {
|
||||||
|
|
||||||
GET_ACTOR(alice);
|
GET_ACTOR(alice);
|
||||||
|
|
||||||
const auto& idx = db.get_index_type<sidechain_address_index>().indices().get<by_account_and_network>();
|
const auto& idx = db.get_index_type<sidechain_address_index>().indices().get<by_account_and_sidechain>();
|
||||||
BOOST_REQUIRE( idx.size() == 1 );
|
BOOST_REQUIRE( idx.size() == 1 );
|
||||||
auto obj = idx.find( boost::make_tuple( alice_id, graphene::peerplays_sidechain::sidechain_type::bitcoin ) );
|
auto obj = idx.find( boost::make_tuple( alice_id, graphene::peerplays_sidechain::sidechain_type::bitcoin ) );
|
||||||
BOOST_REQUIRE( obj != idx.end() );
|
BOOST_REQUIRE( obj != idx.end() );
|
||||||
|
|
@ -132,7 +132,7 @@ BOOST_AUTO_TEST_CASE( sidechain_address_delete_test ) {
|
||||||
{
|
{
|
||||||
BOOST_TEST_MESSAGE("Check sidechain_address_delete_operation results");
|
BOOST_TEST_MESSAGE("Check sidechain_address_delete_operation results");
|
||||||
|
|
||||||
const auto& idx = db.get_index_type<sidechain_address_index>().indices().get<by_account_and_network>();
|
const auto& idx = db.get_index_type<sidechain_address_index>().indices().get<by_account_and_sidechain>();
|
||||||
BOOST_REQUIRE( idx.size() == 0 );
|
BOOST_REQUIRE( idx.size() == 0 );
|
||||||
auto obj = idx.find( boost::make_tuple( alice_id, graphene::peerplays_sidechain::sidechain_type::bitcoin ) );
|
auto obj = idx.find( boost::make_tuple( alice_id, graphene::peerplays_sidechain::sidechain_type::bitcoin ) );
|
||||||
BOOST_REQUIRE( obj == idx.end() );
|
BOOST_REQUIRE( obj == idx.end() );
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue