diff --git a/src/wallet/wallet2.cpp b/src/wallet/wallet2.cpp index 6b0eb09..e8fe2b4 100644 --- a/src/wallet/wallet2.cpp +++ b/src/wallet/wallet2.cpp @@ -2415,23 +2415,24 @@ bool wallet2::get_yield_summary_info(uint64_t &total_burnt, // Iterate over the transfers in our wallet std::map map_payouts; std::map>> payouts_active; - for (size_t idx = m_transfers.size()-1; idx>0; --idx) { - const tools::wallet2::transfer_details& td = m_transfers[idx]; - //if (td.m_block_height < ybi_data[0].block_height) break; - if (td.m_tx.type == cryptonote::transaction_type::STAKE) { - if (map_payouts.count(idx)) { - payouts.push_back(std::make_tuple(td.m_block_height, epee::string_tools::pod_to_hex(td.m_txid), td.m_tx.amount_burnt, m_transfers[map_payouts[idx]].m_amount - td.m_tx.amount_burnt)); - } else { - //payouts.push_back(std::make_tuple(td.m_block_height, epee::string_tools::pod_to_hex(td.m_txid), td.m_tx.amount_burnt, 0)); - payouts_active[epee::string_tools::pod_to_hex(td.m_txid)] = std::make_pair(td.m_block_height, std::make_pair(td.m_tx.amount_burnt, 0)); + if (m_transfers.size() > 0) { + for (size_t idx = m_transfers.size()-1; idx>0; --idx) { + const tools::wallet2::transfer_details& td = m_transfers[idx]; + //if (td.m_block_height < ybi_data[0].block_height) break; + if (td.m_tx.type == cryptonote::transaction_type::STAKE) { + if (map_payouts.count(idx)) { + payouts.push_back(std::make_tuple(td.m_block_height, epee::string_tools::pod_to_hex(td.m_txid), td.m_tx.amount_burnt, m_transfers[map_payouts[idx]].m_amount - td.m_tx.amount_burnt)); + } else { + //payouts.push_back(std::make_tuple(td.m_block_height, epee::string_tools::pod_to_hex(td.m_txid), td.m_tx.amount_burnt, 0)); + payouts_active[epee::string_tools::pod_to_hex(td.m_txid)] = std::make_pair(td.m_block_height, std::make_pair(td.m_tx.amount_burnt, 0)); + } + } else if (td.m_tx.type == cryptonote::transaction_type::PROTOCOL) { + // Store list of reverse-lookup indices to tell YIELD TXs how much they earned + if (m_transfers[td.m_td_origin_idx].m_tx.type == cryptonote::transaction_type::STAKE) + map_payouts[td.m_td_origin_idx] = idx; } - } else if (td.m_tx.type == cryptonote::transaction_type::PROTOCOL) { - // Store list of reverse-lookup indices to tell YIELD TXs how much they earned - if (m_transfers[td.m_td_origin_idx].m_tx.type == cryptonote::transaction_type::STAKE) - map_payouts[td.m_td_origin_idx] = idx; } } - // Scan the entries we have received to gather the state (total yield over period captured) total_burnt = 0;