aboutsummaryrefslogtreecommitdiff
path: root/src/wallet/wallet_rpc_server.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/wallet/wallet_rpc_server.cpp')
-rw-r--r--src/wallet/wallet_rpc_server.cpp29
1 files changed, 10 insertions, 19 deletions
diff --git a/src/wallet/wallet_rpc_server.cpp b/src/wallet/wallet_rpc_server.cpp
index 768bc420a..7c46d9887 100644
--- a/src/wallet/wallet_rpc_server.cpp
+++ b/src/wallet/wallet_rpc_server.cpp
@@ -1,4 +1,4 @@
-// Copyright (c) 2014-2022, The Monero Project
+// Copyright (c) 2014-2023, The Monero Project
//
// All rights reserved.
//
@@ -583,9 +583,9 @@ namespace tools
if (!m_wallet) return not_open(er);
try
{
- if (req.count < 1 || req.count > 64) {
+ if (req.count < 1 || req.count > 65536) {
er.code = WALLET_RPC_ERROR_CODE_UNKNOWN_ERROR;
- er.message = "Count must be between 1 and 64.";
+ er.message = "Count must be between 1 and 65536.";
return false;
}
@@ -3173,7 +3173,7 @@ namespace tools
return false;
}
- std::vector<crypto::hash> txids;
+ std::unordered_set<crypto::hash> txids;
std::list<std::string>::const_iterator i = req.txids.begin();
while (i != req.txids.end())
{
@@ -3186,11 +3186,15 @@ namespace tools
}
crypto::hash txid = *reinterpret_cast<const crypto::hash*>(txid_blob.data());
- txids.push_back(txid);
+ txids.insert(txid);
}
try {
m_wallet->scan_tx(txids);
+ } catch (const tools::error::wont_reprocess_recent_txs_via_untrusted_daemon &e) {
+ er.code = WALLET_RPC_ERROR_CODE_UNKNOWN_ERROR;
+ er.message = e.what() + std::string(". Either connect to a trusted daemon or rescan the chain.");
+ return false;
} catch (const std::exception &e) {
handle_rpc_exception(std::current_exception(), er, WALLET_RPC_ERROR_CODE_UNKNOWN_ERROR);
return false;
@@ -4517,7 +4521,6 @@ public:
const auto arg_wallet_file = wallet_args::arg_wallet_file();
const auto arg_from_json = wallet_args::arg_generate_from_json();
- const auto arg_rpc_client_secret_key = wallet_args::arg_rpc_client_secret_key();
const auto arg_password_file = wallet_args::arg_password_file();
const auto wallet_file = command_line::get_arg(vm, arg_wallet_file);
@@ -4575,17 +4578,6 @@ public:
return false;
}
- if (!command_line::is_arg_defaulted(vm, arg_rpc_client_secret_key))
- {
- crypto::secret_key client_secret_key;
- if (!epee::string_tools::hex_to_pod(command_line::get_arg(vm, arg_rpc_client_secret_key), client_secret_key))
- {
- MERROR(arg_rpc_client_secret_key.name << ": RPC client secret key should be 32 byte in hex format");
- return false;
- }
- wal->set_rpc_client_secret_key(client_secret_key);
- }
-
bool quit = false;
tools::signal_handler::install([&wal, &quit](int) {
assert(wal);
@@ -4692,7 +4684,6 @@ int main(int argc, char** argv) {
const auto arg_wallet_file = wallet_args::arg_wallet_file();
const auto arg_from_json = wallet_args::arg_generate_from_json();
- const auto arg_rpc_client_secret_key = wallet_args::arg_rpc_client_secret_key();
po::options_description hidden_options("Hidden");
@@ -4706,8 +4697,8 @@ int main(int argc, char** argv) {
command_line::add_arg(desc_params, arg_from_json);
command_line::add_arg(desc_params, arg_wallet_dir);
command_line::add_arg(desc_params, arg_prompt_for_password);
- command_line::add_arg(desc_params, arg_rpc_client_secret_key);
command_line::add_arg(desc_params, arg_no_initial_sync);
+ command_line::add_arg(hidden_options, daemonizer::arg_non_interactive);
daemonizer::init_options(hidden_options, desc_params);
desc_params.add(hidden_options);