diff options
author | Sjors Provoost <sjors@sprovoost.nl> | 2024-02-13 13:25:59 +0100 |
---|---|---|
committer | Sjors Provoost <sjors@sprovoost.nl> | 2024-04-16 17:47:43 +0200 |
commit | 4357158c4712d479522d5cd441ad4dd1693fdd05 (patch) | |
tree | e53759850827b1275022fe3ea96a405dfd7226d6 /src/qt | |
parent | dc55531087478d01fbde4f5fbb75375b672960c3 (diff) |
wallet: return and display signer error
Both RPC and GUI now render a useful error message instead of (silently) failing.
Replace bool with util::Result<void> to clarify that this either succeeds or returns an error message.
Diffstat (limited to 'src/qt')
-rw-r--r-- | src/qt/walletmodel.cpp | 9 | ||||
-rw-r--r-- | src/qt/walletmodel.h | 2 |
2 files changed, 6 insertions, 5 deletions
diff --git a/src/qt/walletmodel.cpp b/src/qt/walletmodel.cpp index 1bdf94d3b5..fe000bcbb8 100644 --- a/src/qt/walletmodel.cpp +++ b/src/qt/walletmodel.cpp @@ -569,16 +569,17 @@ bool WalletModel::bumpFee(uint256 hash, uint256& new_hash) return true; } -bool WalletModel::displayAddress(std::string sAddress) const +void WalletModel::displayAddress(std::string sAddress) const { CTxDestination dest = DecodeDestination(sAddress); - bool res = false; try { - res = m_wallet->displayAddress(dest); + util::Result<void> result = m_wallet->displayAddress(dest); + if (!result) { + QMessageBox::warning(nullptr, tr("Signer error"), QString::fromStdString(util::ErrorString(result).translated)); + } } catch (const std::runtime_error& e) { QMessageBox::critical(nullptr, tr("Can't display address"), e.what()); } - return res; } bool WalletModel::isWalletEnabled() diff --git a/src/qt/walletmodel.h b/src/qt/walletmodel.h index 503ee16823..ab2096c1fe 100644 --- a/src/qt/walletmodel.h +++ b/src/qt/walletmodel.h @@ -130,7 +130,7 @@ public: UnlockContext requestUnlock(); bool bumpFee(uint256 hash, uint256& new_hash); - bool displayAddress(std::string sAddress) const; + void displayAddress(std::string sAddress) const; static bool isWalletEnabled(); |