Wallet API: Add support for daemon rpc login

This commit is contained in:
Jaquee 2017-02-25 22:08:50 +01:00
parent 1e7f783f69
commit 5310574382
No known key found for this signature in database
GPG key ID: 384E52B09F45DC39
3 changed files with 7 additions and 4 deletions

View file

@ -656,9 +656,11 @@ string WalletImpl::keysFilename() const
return m_wallet->get_keys_file(); return m_wallet->get_keys_file();
} }
bool WalletImpl::init(const std::string &daemon_address, uint64_t upper_transaction_size_limit) bool WalletImpl::init(const std::string &daemon_address, uint64_t upper_transaction_size_limit, const std::string &daemon_username, const std::string &daemon_password)
{ {
clearStatus(); clearStatus();
if(daemon_username != "")
m_daemon_login.emplace(daemon_username, daemon_password);
return doInit(daemon_address, upper_transaction_size_limit); return doInit(daemon_address, upper_transaction_size_limit);
} }
@ -1365,7 +1367,7 @@ bool WalletImpl::isNewWallet() const
bool WalletImpl::doInit(const string &daemon_address, uint64_t upper_transaction_size_limit) bool WalletImpl::doInit(const string &daemon_address, uint64_t upper_transaction_size_limit)
{ {
if (!m_wallet->init(daemon_address, boost::none, upper_transaction_size_limit)) if (!m_wallet->init(daemon_address, m_daemon_login, upper_transaction_size_limit))
return false; return false;
// in case new wallet, this will force fast-refresh (pulling hashes instead of blocks) // in case new wallet, this will force fast-refresh (pulling hashes instead of blocks)

View file

@ -78,7 +78,7 @@ public:
bool store(const std::string &path); bool store(const std::string &path);
std::string filename() const; std::string filename() const;
std::string keysFilename() const; std::string keysFilename() const;
bool init(const std::string &daemon_address, uint64_t upper_transaction_size_limit = 0); bool init(const std::string &daemon_address, uint64_t upper_transaction_size_limit = 0, const std::string &daemon_username = "", const std::string &daemon_password = "");
bool connectToDaemon(); bool connectToDaemon();
ConnectionStatus connected() const; ConnectionStatus connected() const;
void setTrustedDaemon(bool arg); void setTrustedDaemon(bool arg);
@ -170,6 +170,7 @@ private:
std::atomic<bool> m_rebuildWalletCache; std::atomic<bool> m_rebuildWalletCache;
// cache connection status to avoid unnecessary RPC calls // cache connection status to avoid unnecessary RPC calls
mutable std::atomic<bool> m_is_connected; mutable std::atomic<bool> m_is_connected;
boost::optional<epee::net_utils::http::login> m_daemon_login{};
}; };

View file

@ -340,7 +340,7 @@ struct Wallet
* \param upper_transaction_size_limit * \param upper_transaction_size_limit
* \return - true on success * \return - true on success
*/ */
virtual bool init(const std::string &daemon_address, uint64_t upper_transaction_size_limit) = 0; virtual bool init(const std::string &daemon_address, uint64_t upper_transaction_size_limit, const std::string &daemon_username = "", const std::string &daemon_password = "") = 0;
/*! /*!
* \brief createWatchOnly - Creates a watch only wallet * \brief createWatchOnly - Creates a watch only wallet