Add "seed" option to CLI (#1772)
Supported in wallet_change_seed & wallet_create
This commit is contained in:
parent
cb6fef6bd5
commit
3da9b480a8
1 changed files with 36 additions and 14 deletions
|
@ -53,6 +53,7 @@ void nano::add_node_options (boost::program_options::options_description & descr
|
|||
("account", boost::program_options::value<std::string> (), "Defines <account> for other commands")
|
||||
("file", boost::program_options::value<std::string> (), "Defines <file> for other commands")
|
||||
("key", boost::program_options::value<std::string> (), "Defines the <key> for other commands, hex")
|
||||
("seed", boost::program_options::value<std::string> (), "Defines the <seed> for other commands, hex")
|
||||
("password", boost::program_options::value<std::string> (), "Defines <password> for other commands")
|
||||
("wallet", boost::program_options::value<std::string> (), "Defines <wallet> for other commands")
|
||||
("force", boost::program_options::value<bool>(), "Bool to force command if allowed");
|
||||
|
@ -424,7 +425,7 @@ std::error_code nano::handle_node_options (boost::program_options::variables_map
|
|||
}
|
||||
else if (vm.count ("wallet_change_seed"))
|
||||
{
|
||||
if (vm.count ("wallet") == 1 && vm.count ("key") == 1)
|
||||
if (vm.count ("wallet") == 1 && (vm.count ("seed") == 1 || vm.count ("key") == 1))
|
||||
{
|
||||
nano::uint256_union wallet_id;
|
||||
if (!wallet_id.decode_hex (vm["wallet"].as<std::string> ()))
|
||||
|
@ -441,16 +442,24 @@ std::error_code nano::handle_node_options (boost::program_options::variables_map
|
|||
auto transaction (wallet->wallets.tx_begin_write ());
|
||||
if (!wallet->enter_password (transaction, password))
|
||||
{
|
||||
nano::raw_key key;
|
||||
if (!key.data.decode_hex (vm["key"].as<std::string> ()))
|
||||
nano::raw_key seed;
|
||||
if (vm.count ("seed"))
|
||||
{
|
||||
if (seed.data.decode_hex (vm["seed"].as<std::string> ()))
|
||||
{
|
||||
std::cerr << "Invalid seed\n";
|
||||
ec = nano::error_cli::invalid_arguments;
|
||||
}
|
||||
}
|
||||
else if (seed.data.decode_hex (vm["key"].as<std::string> ()))
|
||||
{
|
||||
std::cerr << "Invalid key seed\n";
|
||||
ec = nano::error_cli::invalid_arguments;
|
||||
}
|
||||
if (!ec)
|
||||
{
|
||||
std::cout << "Changing seed and caching work. Please wait..." << std::endl;
|
||||
wallet->change_seed (transaction, key);
|
||||
}
|
||||
else
|
||||
{
|
||||
std::cerr << "Invalid key\n";
|
||||
ec = nano::error_cli::invalid_arguments;
|
||||
wallet->change_seed (transaction, seed);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -473,24 +482,37 @@ std::error_code nano::handle_node_options (boost::program_options::variables_map
|
|||
}
|
||||
else
|
||||
{
|
||||
std::cerr << "wallet_change_seed command requires one <wallet> option and one <key> option and optionally one <password> option\n";
|
||||
std::cerr << "wallet_change_seed command requires one <wallet> option and one <seed> option and optionally one <password> option\n";
|
||||
ec = nano::error_cli::invalid_arguments;
|
||||
}
|
||||
}
|
||||
else if (vm.count ("wallet_create"))
|
||||
{
|
||||
nano::raw_key seed_key;
|
||||
if (vm.count ("key") == 1)
|
||||
if (vm.count ("seed") == 1)
|
||||
{
|
||||
if (seed_key.data.decode_hex (vm["seed"].as<std::string> ()))
|
||||
{
|
||||
std::cerr << "Invalid seed\n";
|
||||
ec = nano::error_cli::invalid_arguments;
|
||||
}
|
||||
}
|
||||
else if (vm.count ("seed") > 1)
|
||||
{
|
||||
std::cerr << "wallet_create command allows one optional <seed> parameter\n";
|
||||
ec = nano::error_cli::invalid_arguments;
|
||||
}
|
||||
else if (vm.count ("key") == 1)
|
||||
{
|
||||
if (seed_key.data.decode_hex (vm["key"].as<std::string> ()))
|
||||
{
|
||||
std::cerr << "Invalid key\n";
|
||||
std::cerr << "Invalid seed key\n";
|
||||
ec = nano::error_cli::invalid_arguments;
|
||||
}
|
||||
}
|
||||
else if (vm.count ("key") > 1)
|
||||
{
|
||||
std::cerr << "wallet_create command allows one optional <key> parameter\n";
|
||||
std::cerr << "wallet_create command allows one optional <key> seed parameter\n";
|
||||
ec = nano::error_cli::invalid_arguments;
|
||||
}
|
||||
if (!ec)
|
||||
|
@ -511,7 +533,7 @@ std::error_code nano::handle_node_options (boost::program_options::variables_map
|
|||
ec = nano::error_cli::invalid_arguments;
|
||||
}
|
||||
}
|
||||
if (vm.count ("key"))
|
||||
if (vm.count ("seed") || vm.count ("key"))
|
||||
{
|
||||
auto transaction (wallet->wallets.tx_begin_write ());
|
||||
wallet->change_seed (transaction, seed_key);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue