wallet_api: catch getTxKey exception

- getTxKey method throws an exception, e.g., when user declines txKey export
This commit is contained in:
Dusan Klinec 2019-06-19 12:07:50 +02:00
parent 6335509727
commit 097cca59c1
No known key found for this signature in database
GPG Key ID: 6337E118CCBCE103
1 changed files with 17 additions and 8 deletions

View File

@ -1729,18 +1729,27 @@ std::string WalletImpl::getTxKey(const std::string &txid_str) const
crypto::secret_key tx_key;
std::vector<crypto::secret_key> additional_tx_keys;
if (m_wallet->get_tx_key(txid, tx_key, additional_tx_keys))
try
{
clearStatus();
std::ostringstream oss;
oss << epee::string_tools::pod_to_hex(tx_key);
for (size_t i = 0; i < additional_tx_keys.size(); ++i)
oss << epee::string_tools::pod_to_hex(additional_tx_keys[i]);
return oss.str();
if (m_wallet->get_tx_key(txid, tx_key, additional_tx_keys))
{
clearStatus();
std::ostringstream oss;
oss << epee::string_tools::pod_to_hex(tx_key);
for (size_t i = 0; i < additional_tx_keys.size(); ++i)
oss << epee::string_tools::pod_to_hex(additional_tx_keys[i]);
return oss.str();
}
else
{
setStatusError(tr("no tx keys found for this txid"));
return "";
}
}
else
catch (const std::exception &e)
{
setStatusError(tr("no tx keys found for this txid"));
setStatusError(e.what());
return "";
}
}