walletAPI: add lightwallet login() and importWalletRequest()

This commit is contained in:
Jaquee 2017-08-04 23:31:33 +02:00
parent 79207743b8
commit fc9229342d
3 changed files with 40 additions and 0 deletions

View file

@ -712,6 +712,38 @@ bool WalletImpl::init(const std::string &daemon_address, uint64_t upper_transact
return doInit(daemon_address, upper_transaction_size_limit, use_ssl); return doInit(daemon_address, upper_transaction_size_limit, use_ssl);
} }
bool WalletImpl::lightWalletLogin(bool &isNewWallet) const
{
return m_wallet->light_wallet_login(isNewWallet);
}
bool WalletImpl::lightWalletImportWalletRequest(std::string &payment_id, uint64_t &fee, bool &new_request, bool &request_fulfilled, std::string &payment_address, std::string &status)
{
try
{
cryptonote::COMMAND_RPC_IMPORT_WALLET_REQUEST::response response;
if(!m_wallet->light_wallet_import_wallet_request(response)){
m_errorString = tr("Failed to send import wallet request");
m_status = Status_Error;
return false;
}
fee = response.import_fee;
payment_id = response.payment_id;
new_request = response.new_request;
request_fulfilled = response.request_fulfilled;
payment_address = response.payment_address;
status = response.status;
}
catch (const std::exception &e)
{
LOG_ERROR("Error sending import wallet request: " << e.what());
m_errorString = e.what();
m_status = Status_Error;
return false;
}
return true;
}
void WalletImpl::setRefreshFromBlockHeight(uint64_t refresh_from_block_height) void WalletImpl::setRefreshFromBlockHeight(uint64_t refresh_from_block_height)
{ {
m_wallet->set_refresh_from_block_height(refresh_from_block_height); m_wallet->set_refresh_from_block_height(refresh_from_block_height);

View file

@ -143,6 +143,8 @@ public:
virtual void pauseRefresh(); virtual void pauseRefresh();
virtual bool parse_uri(const std::string &uri, std::string &address, std::string &payment_id, uint64_t &amount, std::string &tx_description, std::string &recipient_name, std::vector<std::string> &unknown_parameters, std::string &error); virtual bool parse_uri(const std::string &uri, std::string &address, std::string &payment_id, uint64_t &amount, std::string &tx_description, std::string &recipient_name, std::vector<std::string> &unknown_parameters, std::string &error);
virtual std::string getDefaultDataDir() const; virtual std::string getDefaultDataDir() const;
virtual bool lightWalletLogin(bool &isNewWallet) const;
virtual bool lightWalletImportWalletRequest(std::string &payment_id, uint64_t &fee, bool &new_request, bool &request_fulfilled, std::string &payment_address, std::string &status);
private: private:
void clearStatus() const; void clearStatus() const;

View file

@ -725,6 +725,12 @@ struct Wallet
* \return true on success * \return true on success
*/ */
virtual bool rescanSpent() = 0; virtual bool rescanSpent() = 0;
//! Light wallet authenticate and login
virtual bool lightWalletLogin(bool &isNewWallet) const = 0;
//! Initiates a light wallet import wallet request
virtual bool lightWalletImportWalletRequest(std::string &payment_id, uint64_t &fee, bool &new_request, bool &request_fulfilled, std::string &payment_address, std::string &status) = 0;
}; };
/** /**