From 383204007e727b4022ac8310babbc37467465588 Mon Sep 17 00:00:00 2001 From: mtyszczak Date: Wed, 31 Aug 2022 13:19:41 +0200 Subject: [PATCH 1/4] Add endpoint information to the cli_wallet prompt --- programs/cli_wallet/main.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/programs/cli_wallet/main.cpp b/programs/cli_wallet/main.cpp index 03157ff3e..862773e61 100644 --- a/programs/cli_wallet/main.cpp +++ b/programs/cli_wallet/main.cpp @@ -34,6 +34,7 @@ #include #include #include +#include #include #include #include @@ -295,15 +296,20 @@ int main( int argc, char** argv ) for( auto& name_formatter : wallet_formatter::get_result_formatters() ) wallet_cli->format_result( name_formatter.first, name_formatter.second ); + fc::url _server{ wdata.ws_server }; + + std::string _server_str = wdata.offline ? "offline" : + _server.host().value() + ':' + std::to_string( _server.port().value() ); + if( wapiptr->is_new() ) { std::cout << "Please use the set_password method to initialize a new wallet before continuing\n"; - wallet_cli->set_prompt( "new >>> " ); + wallet_cli->set_prompt( "new@" + _server_str + " >>> " ); } else - wallet_cli->set_prompt( "locked >>> " ); + wallet_cli->set_prompt( "locked@" + _server_str + " >>> " ); boost::signals2::scoped_connection locked_connection(wapiptr->lock_changed.connect([&](bool locked) { - wallet_cli->set_prompt( locked ? "locked >>> " : "unlocked >>> " ); + wallet_cli->set_prompt( locked ? "locked@" + _server_str + " >>> " : "unlocked@" + _server_str + " >>> " ); })); auto _websocket_server = std::make_shared(); -- GitLab From d40befdff57d9bbab0b500b0569c8622b70bd373 Mon Sep 17 00:00:00 2001 From: mtyszczak Date: Wed, 31 Aug 2022 13:41:15 +0200 Subject: [PATCH 2/4] Make port optional in prompt --- programs/cli_wallet/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/programs/cli_wallet/main.cpp b/programs/cli_wallet/main.cpp index 862773e61..2e6a15ddb 100644 --- a/programs/cli_wallet/main.cpp +++ b/programs/cli_wallet/main.cpp @@ -299,7 +299,7 @@ int main( int argc, char** argv ) fc::url _server{ wdata.ws_server }; std::string _server_str = wdata.offline ? "offline" : - _server.host().value() + ':' + std::to_string( _server.port().value() ); + _server.host().value() + (_server.port().valid() ? (':' + std::to_string( _server.port().value() )) : ""); if( wapiptr->is_new() ) { -- GitLab From 7e4671f8248c2bbf1ca6ef2b3ac8782b5d54ae5b Mon Sep 17 00:00:00 2001 From: mtyszczak Date: Wed, 7 Sep 2022 15:40:53 +0200 Subject: [PATCH 3/4] Add option to use legacy prompt in cli_wallet --- programs/cli_wallet/main.cpp | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/programs/cli_wallet/main.cpp b/programs/cli_wallet/main.cpp index 2e6a15ddb..cc3e2e89b 100644 --- a/programs/cli_wallet/main.cpp +++ b/programs/cli_wallet/main.cpp @@ -107,6 +107,7 @@ int main( int argc, char** argv ) ("output-formatter", bpo::value< std::string >(), "Allows to present a result in different ways. Possible values(none/text/json)" ) ("transaction-serialization", bpo::value< std::string >()->default_value( "legacy" ), "Allows to generate JSON using legacy/HF26 format. Possible values(legacy/hf26). By default is `legacy`." ) ("store-transaction", bpo::value< std::string >(), "Requires a name of file. Allows to save a serialized transaction into the file in a current directory. By default a name of file is empty." ) + ("use-legacy-prompt", bpo::bool_switch()->default_value( false ), "Uses legacy prompt (not displaying server which the user is connected to). Option disabled by default." ) ; vector allowed_ips; @@ -296,20 +297,24 @@ int main( int argc, char** argv ) for( auto& name_formatter : wallet_formatter::get_result_formatters() ) wallet_cli->format_result( name_formatter.first, name_formatter.second ); - fc::url _server{ wdata.ws_server }; + std::string _server_str; - std::string _server_str = wdata.offline ? "offline" : - _server.host().value() + (_server.port().valid() ? (':' + std::to_string( _server.port().value() )) : ""); + if( !options.at("use-legacy-prompt").as() ) { + fc::url _server{ wdata.ws_server }; + + _server_str = '@' + ( wdata.offline ? "offline" : + _server.host().value() + (_server.port().valid() ? (':' + std::to_string( _server.port().value() )) : "") ); + } if( wapiptr->is_new() ) { std::cout << "Please use the set_password method to initialize a new wallet before continuing\n"; - wallet_cli->set_prompt( "new@" + _server_str + " >>> " ); + wallet_cli->set_prompt( "new" + _server_str + " >>> " ); } else - wallet_cli->set_prompt( "locked@" + _server_str + " >>> " ); + wallet_cli->set_prompt( "locked" + _server_str + " >>> " ); boost::signals2::scoped_connection locked_connection(wapiptr->lock_changed.connect([&](bool locked) { - wallet_cli->set_prompt( locked ? "locked@" + _server_str + " >>> " : "unlocked@" + _server_str + " >>> " ); + wallet_cli->set_prompt( locked ? "locked" + _server_str + " >>> " : "unlocked" + _server_str + " >>> " ); })); auto _websocket_server = std::make_shared(); -- GitLab From e324537118257ab701ae449ea31c89087f62c161 Mon Sep 17 00:00:00 2001 From: mtyszczak Date: Wed, 7 Sep 2022 16:42:23 +0200 Subject: [PATCH 4/4] Add missing cli_wallet option to the python tests --- tests/functional/python_tests/cli_wallet/test_wallet_cli.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/functional/python_tests/cli_wallet/test_wallet_cli.py b/tests/functional/python_tests/cli_wallet/test_wallet_cli.py index 176e60fb8..29bbccabc 100755 --- a/tests/functional/python_tests/cli_wallet/test_wallet_cli.py +++ b/tests/functional/python_tests/cli_wallet/test_wallet_cli.py @@ -9,7 +9,8 @@ def test_help_option(): '--help', '--version', '--offline', '--server-rpc-endpoint', '--cert-authority', '--retry-server-connection', '--rpc-endpoint', '--rpc-tls-endpoint', '--rpc-tls-certificate', '--rpc-http-endpoint', '--unlock', '--daemon', - '--rpc-http-allowip', '--wallet-file', '--chain-id', '--output-formatter', '--transaction-serialization', '--store-transaction' + '--rpc-http-allowip', '--wallet-file', '--chain-id', '--output-formatter', '--transaction-serialization', + '--store-transaction', '--use-legacy-prompt' ] cli_wallet_path = tt.paths_to_executables.get_path_of('cli_wallet') -- GitLab