mirror of
https://github.com/monero-project/monero.git
synced 2025-08-15 17:20:18 -04:00
wallet2: check wallet compatibility with daemon's hard fork version
This commit is contained in:
parent
af4f97bf66
commit
864a78ee5f
15 changed files with 251 additions and 30 deletions
|
@ -181,7 +181,6 @@ namespace
|
|||
const command_line::arg_descriptor<bool> arg_restore_from_seed = {"restore-from-seed", sw::tr("alias for --restore-deterministic-wallet"), false};
|
||||
const command_line::arg_descriptor<bool> arg_restore_multisig_wallet = {"restore-multisig-wallet", sw::tr("Recover multisig wallet using Electrum-style mnemonic seed"), false};
|
||||
const command_line::arg_descriptor<bool> arg_non_deterministic = {"non-deterministic", sw::tr("Generate non-deterministic view and spend keys"), false};
|
||||
const command_line::arg_descriptor<bool> arg_allow_mismatched_daemon_version = {"allow-mismatched-daemon-version", sw::tr("Allow communicating with a daemon that uses a different RPC version"), false};
|
||||
const command_line::arg_descriptor<uint64_t> arg_restore_height = {"restore-height", sw::tr("Restore from specific blockchain height"), 0};
|
||||
const command_line::arg_descriptor<std::string> arg_restore_date = {"restore-date", sw::tr("Restore from estimated blockchain height on specified date"), ""};
|
||||
const command_line::arg_descriptor<bool> arg_do_not_relay = {"do-not-relay", sw::tr("The newly created transaction will not be relayed to the monero network"), false};
|
||||
|
@ -3233,8 +3232,7 @@ bool simple_wallet::scan_tx(const std::vector<std::string> &args)
|
|||
}
|
||||
|
||||
simple_wallet::simple_wallet()
|
||||
: m_allow_mismatched_daemon_version(false)
|
||||
, m_refresh_progress_reporter(*this)
|
||||
: m_refresh_progress_reporter(*this)
|
||||
, m_idle_run(true)
|
||||
, m_auto_refresh_enabled(false)
|
||||
, m_auto_refresh_refreshing(false)
|
||||
|
@ -4755,7 +4753,6 @@ bool simple_wallet::handle_command_line(const boost::program_options::variables_
|
|||
m_restore_deterministic_wallet = command_line::get_arg(vm, arg_restore_deterministic_wallet) || command_line::get_arg(vm, arg_restore_from_seed);
|
||||
m_restore_multisig_wallet = command_line::get_arg(vm, arg_restore_multisig_wallet);
|
||||
m_non_deterministic = command_line::get_arg(vm, arg_non_deterministic);
|
||||
m_allow_mismatched_daemon_version = command_line::get_arg(vm, arg_allow_mismatched_daemon_version);
|
||||
m_restore_height = command_line::get_arg(vm, arg_restore_height);
|
||||
m_restore_date = command_line::get_arg(vm, arg_restore_date);
|
||||
m_do_not_relay = command_line::get_arg(vm, arg_do_not_relay);
|
||||
|
@ -4786,12 +4783,20 @@ bool simple_wallet::try_connect_to_daemon(bool silent, uint32_t* version)
|
|||
uint32_t version_ = 0;
|
||||
if (!version)
|
||||
version = &version_;
|
||||
if (!m_wallet->check_connection(version))
|
||||
bool wallet_is_outdated, daemon_is_outdated = false;
|
||||
if (!m_wallet->check_connection(version, NULL, 200000, &wallet_is_outdated, &daemon_is_outdated))
|
||||
{
|
||||
if (!silent)
|
||||
{
|
||||
if (m_wallet->is_offline())
|
||||
fail_msg_writer() << tr("wallet failed to connect to daemon, because it is set to offline mode");
|
||||
else if (wallet_is_outdated)
|
||||
fail_msg_writer() << tr("wallet failed to connect to daemon, because it is not up to date. ") <<
|
||||
tr("Please make sure you are running the latest wallet.");
|
||||
else if (daemon_is_outdated)
|
||||
fail_msg_writer() << tr("wallet failed to connect to daemon: ") << m_wallet->get_daemon_address() << ". " <<
|
||||
tr("Daemon is not up to date. "
|
||||
"Please make sure the daemon is running the latest version or change the daemon address using the 'set_daemon' command.");
|
||||
else
|
||||
fail_msg_writer() << tr("wallet failed to connect to daemon: ") << m_wallet->get_daemon_address() << ". " <<
|
||||
tr("Daemon either is not started or wrong port was passed. "
|
||||
|
@ -4799,7 +4804,7 @@ bool simple_wallet::try_connect_to_daemon(bool silent, uint32_t* version)
|
|||
}
|
||||
return false;
|
||||
}
|
||||
if (!m_allow_mismatched_daemon_version && ((*version >> 16) != CORE_RPC_VERSION_MAJOR))
|
||||
if (!m_wallet->is_mismatched_daemon_version_allowed() && ((*version >> 16) != CORE_RPC_VERSION_MAJOR))
|
||||
{
|
||||
if (!silent)
|
||||
fail_msg_writer() << boost::format(tr("Daemon uses a different RPC major version (%u) than the wallet (%u): %s. Either update one of them, or use --allow-mismatched-daemon-version.")) % (*version>>16) % CORE_RPC_VERSION_MAJOR % m_wallet->get_daemon_address();
|
||||
|
@ -10629,7 +10634,6 @@ int main(int argc, char* argv[])
|
|||
command_line::add_arg(desc_params, arg_restore_multisig_wallet );
|
||||
command_line::add_arg(desc_params, arg_non_deterministic );
|
||||
command_line::add_arg(desc_params, arg_electrum_seed );
|
||||
command_line::add_arg(desc_params, arg_allow_mismatched_daemon_version);
|
||||
command_line::add_arg(desc_params, arg_restore_height);
|
||||
command_line::add_arg(desc_params, arg_restore_date);
|
||||
command_line::add_arg(desc_params, arg_do_not_relay);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue