Skip to content

Commit

Permalink
fixed issue #1050 - added exit_wallet method
Browse files Browse the repository at this point in the history
  • Loading branch information
cogutvalera committed Jul 1, 2018
1 parent bda32c1 commit 2226b20
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 0 deletions.
7 changes: 7 additions & 0 deletions libraries/wallet/include/graphene/wallet/wallet.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -632,6 +632,12 @@ class wallet_api
*/
bool load_wallet_file(string wallet_filename = "");

/** Exits from Graphene wallet.
*
* The current wallet will be closed.
*/
void exit_wallet();

/** Saves the current wallet to the given filename.
*
* @warning This does not change the wallet filename that will be used for future
Expand Down Expand Up @@ -1815,4 +1821,5 @@ FC_API( graphene::wallet::wallet_api,
(blind_history)
(receive_blind_transfer)
(get_order_book)
(exit_wallet)
)
14 changes: 14 additions & 0 deletions libraries/wallet/wallet.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -770,6 +770,15 @@ class wallet_api_impl

return true;
}

void exit_wallet()
{
ilog( "exiting wallet ..." );
save_wallet_file();
ilog( "closed wallet successfully" );
exit(0);
}

void save_wallet_file(string wallet_filename = "")
{
//
Expand Down Expand Up @@ -3762,6 +3771,11 @@ bool wallet_api::load_wallet_file( string wallet_filename )
return my->load_wallet_file( wallet_filename );
}

void wallet_api::exit_wallet()
{
my->exit_wallet();
}

void wallet_api::save_wallet_file( string wallet_filename )
{
my->save_wallet_file( wallet_filename );
Expand Down
27 changes: 27 additions & 0 deletions tests/cli/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -388,3 +388,30 @@ BOOST_AUTO_TEST_CASE( cli_set_voting_proxy )
}
app1->shutdown();
}

///////////////
// Start a server and connect using the same calls as the CLI
// Testing exit_wallet method
////////////////
BOOST_AUTO_TEST_CASE( cli_exit )
{
using namespace graphene::chain;
using namespace graphene::app;
std::shared_ptr<graphene::app::application> app1;
try {
BOOST_TEST_MESSAGE("Connecting and exiting wallet test.");
fc::temp_directory app_dir ( graphene::utilities::temp_directory_path() );

int server_port_number = 0;
app1 = start_application(app_dir, server_port_number);

// connect to the server
client_connection con(app1, app_dir, server_port_number);

con.wallet_api_ptr->exit_wallet();
} catch( fc::exception& e ) {
edump((e.to_detail_string()));
throw;
}
app1->shutdown();
}

0 comments on commit 2226b20

Please sign in to comment.