Merge pull request #7677
445a9d8
wallet_api: import / export output function (tobtoht)
This commit is contained in:
commit
e505ffef5f
@ -1214,6 +1214,68 @@ bool WalletImpl::importKeyImages(const string &filename)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool WalletImpl::exportOutputs(const string &filename, bool all)
|
||||||
|
{
|
||||||
|
if (m_wallet->key_on_device())
|
||||||
|
{
|
||||||
|
setStatusError(string(tr("Not supported on HW wallets.")) + filename);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
std::string data = m_wallet->export_outputs_to_str(all);
|
||||||
|
bool r = m_wallet->save_to_file(filename, data);
|
||||||
|
if (!r)
|
||||||
|
{
|
||||||
|
LOG_ERROR("Failed to save file " << filename);
|
||||||
|
setStatusError(string(tr("Failed to save file: ")) + filename);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (const std::exception &e)
|
||||||
|
{
|
||||||
|
LOG_ERROR("Error exporting outputs: " << e.what());
|
||||||
|
setStatusError(string(tr("Error exporting outputs: ")) + e.what());
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
LOG_PRINT_L2("Outputs exported to " << filename);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool WalletImpl::importOutputs(const string &filename)
|
||||||
|
{
|
||||||
|
if (m_wallet->key_on_device())
|
||||||
|
{
|
||||||
|
setStatusError(string(tr("Not supported on HW wallets.")) + filename);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::string data;
|
||||||
|
bool r = m_wallet->load_from_file(filename, data);
|
||||||
|
if (!r)
|
||||||
|
{
|
||||||
|
LOG_ERROR("Failed to read file: " << filename);
|
||||||
|
setStatusError(string(tr("Failed to read file: ")) + filename);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
size_t n_outputs = m_wallet->import_outputs_from_str(data);
|
||||||
|
LOG_PRINT_L2(std::to_string(n_outputs) << " outputs imported");
|
||||||
|
}
|
||||||
|
catch (const std::exception &e)
|
||||||
|
{
|
||||||
|
LOG_ERROR("Failed to import outputs: " << e.what());
|
||||||
|
setStatusError(string(tr("Failed to import outputs: ")) + e.what());
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
void WalletImpl::addSubaddressAccount(const std::string& label)
|
void WalletImpl::addSubaddressAccount(const std::string& label)
|
||||||
{
|
{
|
||||||
m_wallet->add_subaddress_account(label);
|
m_wallet->add_subaddress_account(label);
|
||||||
|
@ -167,6 +167,8 @@ public:
|
|||||||
virtual UnsignedTransaction * loadUnsignedTx(const std::string &unsigned_filename) override;
|
virtual UnsignedTransaction * loadUnsignedTx(const std::string &unsigned_filename) override;
|
||||||
bool exportKeyImages(const std::string &filename, bool all = false) override;
|
bool exportKeyImages(const std::string &filename, bool all = false) override;
|
||||||
bool importKeyImages(const std::string &filename) override;
|
bool importKeyImages(const std::string &filename) override;
|
||||||
|
bool exportOutputs(const std::string &filename, bool all = false) override;
|
||||||
|
bool importOutputs(const std::string &filename) override;
|
||||||
|
|
||||||
virtual void disposeTransaction(PendingTransaction * t) override;
|
virtual void disposeTransaction(PendingTransaction * t) override;
|
||||||
virtual uint64_t estimateTransactionFee(const std::vector<std::pair<std::string, uint64_t>> &destinations,
|
virtual uint64_t estimateTransactionFee(const std::vector<std::pair<std::string, uint64_t>> &destinations,
|
||||||
|
@ -919,6 +919,19 @@ struct Wallet
|
|||||||
*/
|
*/
|
||||||
virtual bool importKeyImages(const std::string &filename) = 0;
|
virtual bool importKeyImages(const std::string &filename) = 0;
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief importOutputs - exports outputs to file
|
||||||
|
* \param filename
|
||||||
|
* \return - true on success
|
||||||
|
*/
|
||||||
|
virtual bool exportOutputs(const std::string &filename, bool all = false) = 0;
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief importOutputs - imports outputs from file
|
||||||
|
* \param filename
|
||||||
|
* \return - true on success
|
||||||
|
*/
|
||||||
|
virtual bool importOutputs(const std::string &filename) = 0;
|
||||||
|
|
||||||
virtual TransactionHistory * history() = 0;
|
virtual TransactionHistory * history() = 0;
|
||||||
virtual AddressBook * addressBook() = 0;
|
virtual AddressBook * addressBook() = 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user