From 1b5f7eb731c63d6693445690c1e306906c980b60 Mon Sep 17 00:00:00 2001 From: woodser Date: Thu, 22 Aug 2019 07:28:47 -0400 Subject: [PATCH] cleanup: group sync private helpers at bottom --- src/wallet/monero_wallet.cpp | 80 ++++++++++++++++++------------------ 1 file changed, 40 insertions(+), 40 deletions(-) diff --git a/src/wallet/monero_wallet.cpp b/src/wallet/monero_wallet.cpp index fde09a9..22f0f13 100644 --- a/src/wallet/monero_wallet.cpp +++ b/src/wallet/monero_wallet.cpp @@ -2973,6 +2973,46 @@ namespace monero { }); } + // private helper to initialize subaddresses using transfer details + vector monero_wallet::get_subaddresses_aux(const uint32_t account_idx, const vector& subaddress_indices, const vector& transfers) const { + vector subaddresses; + + // get balances per subaddress as maps + map balance_per_subaddress = m_w2->balance_per_subaddress(account_idx); + map> unlocked_balance_per_subaddress = m_w2->unlocked_balance_per_subaddress(account_idx); + + // get all indices if no indices given + vector subaddress_indices_req; + if (subaddress_indices.empty()) { + for (uint32_t subaddress_idx = 0; subaddress_idx < m_w2->get_num_subaddresses(account_idx); subaddress_idx++) { + subaddress_indices_req.push_back(subaddress_idx); + } + } else { + subaddress_indices_req = subaddress_indices; + } + + // initialize subaddresses at indices + for (uint32_t subaddressIndicesIdx = 0; subaddressIndicesIdx < subaddress_indices_req.size(); subaddressIndicesIdx++) { + monero_subaddress subaddress; + subaddress.m_account_index = account_idx; + uint32_t subaddress_idx = subaddress_indices_req.at(subaddressIndicesIdx); + subaddress.m_index = subaddress_idx; + subaddress.m_address = get_address(account_idx, subaddress_idx); + subaddress.m_label = m_w2->get_subaddress_label({account_idx, subaddress_idx}); + auto iter1 = balance_per_subaddress.find(subaddress_idx); + subaddress.m_balance = iter1 == balance_per_subaddress.end() ? 0 : iter1->second; + auto iter2 = unlocked_balance_per_subaddress.find(subaddress_idx); + subaddress.m_unlocked_balance = iter2 == unlocked_balance_per_subaddress.end() ? 0 : iter2->second.first; + cryptonote::subaddress_index index = {account_idx, subaddress_idx}; + subaddress.m_num_unspent_outputs = count_if(transfers.begin(), transfers.end(), [&](const tools::wallet2::transfer_details& td) { return !td.m_spent && td.m_subaddr_index == index; }); + subaddress.m_is_used = find_if(transfers.begin(), transfers.end(), [&](const tools::wallet2::transfer_details& td) { return td.m_subaddr_index == index; }) != transfers.end(); + subaddress.m_num_blocks_to_unlock = iter1 == balance_per_subaddress.end() ? 0 : iter2->second.second; + subaddresses.push_back(subaddress); + } + + return subaddresses; + } + void monero_wallet::sync_thread_func() { MTRACE("sync_thread_func()"); while (true) { @@ -3037,44 +3077,4 @@ namespace monero { m_w2_listener->on_sync_end(); return result; } - - // private helper to initialize subaddresses using transfer details - vector monero_wallet::get_subaddresses_aux(const uint32_t account_idx, const vector& subaddress_indices, const vector& transfers) const { - vector subaddresses; - - // get balances per subaddress as maps - map balance_per_subaddress = m_w2->balance_per_subaddress(account_idx); - map> unlocked_balance_per_subaddress = m_w2->unlocked_balance_per_subaddress(account_idx); - - // get all indices if no indices given - vector subaddress_indices_req; - if (subaddress_indices.empty()) { - for (uint32_t subaddress_idx = 0; subaddress_idx < m_w2->get_num_subaddresses(account_idx); subaddress_idx++) { - subaddress_indices_req.push_back(subaddress_idx); - } - } else { - subaddress_indices_req = subaddress_indices; - } - - // initialize subaddresses at indices - for (uint32_t subaddressIndicesIdx = 0; subaddressIndicesIdx < subaddress_indices_req.size(); subaddressIndicesIdx++) { - monero_subaddress subaddress; - subaddress.m_account_index = account_idx; - uint32_t subaddress_idx = subaddress_indices_req.at(subaddressIndicesIdx); - subaddress.m_index = subaddress_idx; - subaddress.m_address = get_address(account_idx, subaddress_idx); - subaddress.m_label = m_w2->get_subaddress_label({account_idx, subaddress_idx}); - auto iter1 = balance_per_subaddress.find(subaddress_idx); - subaddress.m_balance = iter1 == balance_per_subaddress.end() ? 0 : iter1->second; - auto iter2 = unlocked_balance_per_subaddress.find(subaddress_idx); - subaddress.m_unlocked_balance = iter2 == unlocked_balance_per_subaddress.end() ? 0 : iter2->second.first; - cryptonote::subaddress_index index = {account_idx, subaddress_idx}; - subaddress.m_num_unspent_outputs = count_if(transfers.begin(), transfers.end(), [&](const tools::wallet2::transfer_details& td) { return !td.m_spent && td.m_subaddr_index == index; }); - subaddress.m_is_used = find_if(transfers.begin(), transfers.end(), [&](const tools::wallet2::transfer_details& td) { return td.m_subaddr_index == index; }) != transfers.end(); - subaddress.m_num_blocks_to_unlock = iter1 == balance_per_subaddress.end() ? 0 : iter2->second.second; - subaddresses.push_back(subaddress); - } - - return subaddresses; - } }