wallet2: fix create view-only wallet from existing wallet
This commit is contained in:
parent
fc907a9570
commit
cac5083427
@ -535,7 +535,7 @@ bool WalletImpl::createWatchOnly(const std::string &path, const std::string &pas
|
||||
view_wallet->generate(path, password, address, viewkey);
|
||||
|
||||
// Export/Import outputs
|
||||
auto outputs = m_wallet->export_outputs();
|
||||
auto outputs = m_wallet->export_outputs(true/*all*/);
|
||||
view_wallet->import_outputs(outputs);
|
||||
|
||||
// Copy scanned blockchain
|
||||
@ -553,7 +553,7 @@ bool WalletImpl::createWatchOnly(const std::string &path, const std::string &pas
|
||||
|
||||
// Export/Import key images
|
||||
// We already know the spent status from the outputs we exported, thus no need to check them again
|
||||
auto key_images = m_wallet->export_key_images();
|
||||
auto key_images = m_wallet->export_key_images(true/*all*/);
|
||||
uint64_t spent = 0;
|
||||
uint64_t unspent = 0;
|
||||
view_wallet->import_key_images(key_images.second, key_images.first, spent, unspent, false);
|
||||
|
@ -13330,9 +13330,7 @@ size_t wallet2::import_outputs(const std::tuple<uint64_t, uint64_t, std::vector<
|
||||
THROW_WALLET_EXCEPTION_IF(offset > m_transfers.size(), error::wallet_internal_error,
|
||||
"Imported outputs omit more outputs that we know of");
|
||||
|
||||
THROW_WALLET_EXCEPTION_IF(offset >= num_outputs, error::wallet_internal_error,
|
||||
"Offset is larger than total outputs");
|
||||
THROW_WALLET_EXCEPTION_IF(output_array.size() > num_outputs - offset, error::wallet_internal_error,
|
||||
THROW_WALLET_EXCEPTION_IF(offset + output_array.size() > num_outputs, error::wallet_internal_error,
|
||||
"Offset is larger than total outputs");
|
||||
|
||||
const size_t original_size = m_transfers.size();
|
||||
@ -13412,9 +13410,7 @@ size_t wallet2::import_outputs(const std::tuple<uint64_t, uint64_t, std::vector<
|
||||
THROW_WALLET_EXCEPTION_IF(offset > m_transfers.size(), error::wallet_internal_error,
|
||||
"Imported outputs omit more outputs that we know of. Try using export_outputs all.");
|
||||
|
||||
THROW_WALLET_EXCEPTION_IF(offset >= num_outputs, error::wallet_internal_error,
|
||||
"Offset is larger than total outputs");
|
||||
THROW_WALLET_EXCEPTION_IF(output_array.size() > num_outputs - offset, error::wallet_internal_error,
|
||||
THROW_WALLET_EXCEPTION_IF(offset + output_array.size() > num_outputs, error::wallet_internal_error,
|
||||
"Offset is larger than total outputs");
|
||||
|
||||
const size_t original_size = m_transfers.size();
|
||||
|
Loading…
Reference in New Issue
Block a user