From 7fbddab572ae099b3fbc255ea9ec84e7ca0101f9 Mon Sep 17 00:00:00 2001 From: Ryan Ofsky Date: Tue, 6 Sep 2022 11:47:47 -0400 Subject: [PATCH] Use ResultPtr instead of Result --- src/addrdb.cpp | 2 +- src/addrdb.h | 2 +- src/init.cpp | 2 +- src/interfaces/wallet.h | 6 +++--- src/qt/walletcontroller.cpp | 6 +++--- src/wallet/interfaces.cpp | 30 +++++++++--------------------- 6 files changed, 18 insertions(+), 30 deletions(-) diff --git a/src/addrdb.cpp b/src/addrdb.cpp index 889f7b3859b14..11a6ddd119116 100644 --- a/src/addrdb.cpp +++ b/src/addrdb.cpp @@ -188,7 +188,7 @@ void ReadFromStream(AddrMan& addr, DataStream& ssPeers) DeserializeDB(ssPeers, addr, false); } -util::Result> LoadAddrman(const NetGroupManager& netgroupman, const ArgsManager& args) +util::ResultPtr> LoadAddrman(const NetGroupManager& netgroupman, const ArgsManager& args) { auto check_addrman = std::clamp(args.GetIntArg("-checkaddrman", DEFAULT_ADDRMAN_CONSISTENCY_CHECKS), 0, 1000000); bool deterministic = HasTestOption(args, "addrman"); // use a deterministic addrman only for tests diff --git a/src/addrdb.h b/src/addrdb.h index cc3014dce29b3..c6c28257c5cc8 100644 --- a/src/addrdb.h +++ b/src/addrdb.h @@ -49,7 +49,7 @@ class CBanDB }; /** Returns an error string on failure */ -util::Result> LoadAddrman(const NetGroupManager& netgroupman, const ArgsManager& args); +util::ResultPtr> LoadAddrman(const NetGroupManager& netgroupman, const ArgsManager& args); /** * Dump the anchor IP address database (anchors.dat) diff --git a/src/init.cpp b/src/init.cpp index 824490bb76f66..8737ac2778785 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -1423,7 +1423,7 @@ bool AppInitMain(NodeContext& node, interfaces::BlockAndHeaderTipInfo* tip_info) uiInterface.InitMessage(_("Loading P2P addresses…").translated); auto addrman{LoadAddrman(*node.netgroupman, args)}; if (!addrman) return InitError(util::ErrorString(addrman)); - node.addrman = std::move(*addrman); + node.addrman = std::move(addrman.value()); } FastRandomContext rng; diff --git a/src/interfaces/wallet.h b/src/interfaces/wallet.h index df1ced48a7142..a195f8062ebb0 100644 --- a/src/interfaces/wallet.h +++ b/src/interfaces/wallet.h @@ -328,16 +328,16 @@ class WalletLoader : public ChainClient { public: //! Create new wallet. - virtual util::Result> createWallet(const std::string& name, const SecureString& passphrase, uint64_t wallet_creation_flags, std::vector& warnings) = 0; + virtual util::ResultPtr> createWallet(const std::string& name, const SecureString& passphrase, uint64_t wallet_creation_flags, std::vector& warnings) = 0; //! Load existing wallet. - virtual util::Result> loadWallet(const std::string& name, std::vector& warnings) = 0; + virtual util::ResultPtr> loadWallet(const std::string& name, std::vector& warnings) = 0; //! Return default wallet directory. virtual std::string getWalletDir() = 0; //! Restore backup wallet - virtual util::Result> restoreWallet(const fs::path& backup_file, const std::string& wallet_name, std::vector& warnings) = 0; + virtual util::ResultPtr> restoreWallet(const fs::path& backup_file, const std::string& wallet_name, std::vector& warnings) = 0; //! Migrate a wallet virtual util::Result migrateWallet(const std::string& name, const SecureString& passphrase) = 0; diff --git a/src/qt/walletcontroller.cpp b/src/qt/walletcontroller.cpp index dd093e984a37b..79face5fc35be 100644 --- a/src/qt/walletcontroller.cpp +++ b/src/qt/walletcontroller.cpp @@ -270,7 +270,7 @@ void CreateWalletActivity::createWallet() auto wallet{node().walletLoader().createWallet(name, m_passphrase, flags, m_warning_message)}; if (wallet) { - m_wallet_model = m_wallet_controller->getOrCreateWallet(std::move(*wallet)); + m_wallet_model = m_wallet_controller->getOrCreateWallet(std::move(wallet.value())); } else { m_error_message = util::ErrorString(wallet); } @@ -359,7 +359,7 @@ void OpenWalletActivity::open(const std::string& path) auto wallet{node().walletLoader().loadWallet(path, m_warning_message)}; if (wallet) { - m_wallet_model = m_wallet_controller->getOrCreateWallet(std::move(*wallet)); + m_wallet_model = m_wallet_controller->getOrCreateWallet(std::move(wallet.value())); } else { m_error_message = util::ErrorString(wallet); } @@ -412,7 +412,7 @@ void RestoreWalletActivity::restore(const fs::path& backup_file, const std::stri auto wallet{node().walletLoader().restoreWallet(backup_file, wallet_name, m_warning_message)}; if (wallet) { - m_wallet_model = m_wallet_controller->getOrCreateWallet(std::move(*wallet)); + m_wallet_model = m_wallet_controller->getOrCreateWallet(std::move(wallet.value())); } else { m_error_message = util::ErrorString(wallet); } diff --git a/src/wallet/interfaces.cpp b/src/wallet/interfaces.cpp index 21e8a0b3bd24c..808c831628504 100644 --- a/src/wallet/interfaces.cpp +++ b/src/wallet/interfaces.cpp @@ -599,7 +599,7 @@ class WalletLoaderImpl : public WalletLoader void schedulerMockForward(std::chrono::seconds delta) override { Assert(m_context.scheduler)->MockForward(delta); } //! WalletLoader methods - util::Result> createWallet(const std::string& name, const SecureString& passphrase, uint64_t wallet_creation_flags, std::vector& warnings) override + util::ResultPtr> createWallet(const std::string& name, const SecureString& passphrase, uint64_t wallet_creation_flags, std::vector& warnings) override { DatabaseOptions options; DatabaseStatus status; @@ -608,37 +608,25 @@ class WalletLoaderImpl : public WalletLoader options.create_flags = wallet_creation_flags; options.create_passphrase = passphrase; bilingual_str error; - std::unique_ptr wallet{MakeWallet(m_context, CreateWallet(m_context, name, /*load_on_start=*/true, options, status, error, warnings))}; - if (wallet) { - return wallet; - } else { - return util::Error{error}; - } + util::ResultPtr> wallet{MakeWallet(m_context, CreateWallet(m_context, name, /*load_on_start=*/true, options, status, error, warnings))}; + return wallet ? std::move(wallet) : util::Error{error}; } - util::Result> loadWallet(const std::string& name, std::vector& warnings) override + util::ResultPtr> loadWallet(const std::string& name, std::vector& warnings) override { DatabaseOptions options; DatabaseStatus status; ReadDatabaseArgs(*m_context.args, options); options.require_existing = true; bilingual_str error; - std::unique_ptr wallet{MakeWallet(m_context, LoadWallet(m_context, name, /*load_on_start=*/true, options, status, error, warnings))}; - if (wallet) { - return wallet; - } else { - return util::Error{error}; - } + util::ResultPtr> wallet{MakeWallet(m_context, LoadWallet(m_context, name, /*load_on_start=*/true, options, status, error, warnings))}; + return wallet ? std::move(wallet) : util::Error{error}; } - util::Result> restoreWallet(const fs::path& backup_file, const std::string& wallet_name, std::vector& warnings) override + util::ResultPtr> restoreWallet(const fs::path& backup_file, const std::string& wallet_name, std::vector& warnings) override { DatabaseStatus status; bilingual_str error; - std::unique_ptr wallet{MakeWallet(m_context, RestoreWallet(m_context, backup_file, wallet_name, /*load_on_start=*/true, status, error, warnings))}; - if (wallet) { - return wallet; - } else { - return util::Error{error}; - } + util::ResultPtr> wallet{MakeWallet(m_context, RestoreWallet(m_context, backup_file, wallet_name, /*load_on_start=*/true, status, error, warnings))}; + return wallet ? std::move(wallet) : util::Error{error}; } util::Result migrateWallet(const std::string& name, const SecureString& passphrase) override {