48 TransactionHistory::~TransactionHistory() {}
51 TransactionHistoryImpl::TransactionHistoryImpl(
WalletImpl *wallet)
59 for (
auto t : m_history)
65 boost::shared_lock<boost::shared_mutex> lock(m_historyMutex);
66 int result = m_history.size();
72 boost::shared_lock<boost::shared_mutex> lock(m_historyMutex);
76 unsigned index_ =
static_cast<unsigned>(index);
77 return index_ < m_history.size() ? m_history[index_] :
nullptr;
82 boost::shared_lock<boost::shared_mutex> lock(m_historyMutex);
83 auto itr = std::find_if(m_history.begin(), m_history.end(),
85 return ti->hash() == id;
87 return itr != m_history.end() ? *itr :
nullptr;
92 boost::shared_lock<boost::shared_mutex> lock(m_historyMutex);
101 boost::unique_lock<boost::shared_mutex> lock(m_historyMutex);
109 for (
auto t : m_history)
121 std::list<std::pair<crypto::hash, tools::wallet2::payment_details>> in_payments;
122 m_wallet->m_wallet->get_payments(in_payments, min_height, max_height);
123 for (std::list<std::pair<crypto::hash, tools::wallet2::payment_details>>::const_iterator i = in_payments.begin(); i != in_payments.end(); ++i) {
126 if (payment_id.substr(16).find_first_not_of(
'0') == std::string::npos)
127 payment_id = payment_id.substr(0,16);
129 ti->m_paymentid = payment_id;
136 ti->m_label = m_wallet->m_wallet->get_subaddress_label(pd.
m_subaddr_index);
140 m_history.push_back(ti);
152 std::list<std::pair<crypto::hash, tools::wallet2::confirmed_transfer_details>> out_payments;
153 m_wallet->m_wallet->get_payments_out(out_payments, min_height, max_height);
155 for (std::list<std::pair<crypto::hash, tools::wallet2::confirmed_transfer_details>>::const_iterator i = out_payments.begin();
156 i != out_payments.end(); ++i) {
166 if (payment_id.substr(16).find_first_not_of(
'0') == std::string::npos)
167 payment_id = payment_id.substr(0,16);
171 ti->m_paymentid = payment_id;
187 m_history.push_back(ti);
191 std::list<std::pair<crypto::hash, tools::wallet2::unconfirmed_transfer_details>> upayments_out;
192 m_wallet->m_wallet->get_unconfirmed_payments_out(upayments_out);
193 for (std::list<std::pair<crypto::hash, tools::wallet2::unconfirmed_transfer_details>>::const_iterator i = upayments_out.begin(); i != upayments_out.end(); ++i) {
199 if (payment_id.substr(16).find_first_not_of(
'0') == std::string::npos)
200 payment_id = payment_id.substr(0,16);
204 ti->m_paymentid = payment_id;
205 ti->m_amount = amount - pd.
m_change - fee;
208 ti->m_failed = is_failed;
209 ti->m_pending =
true;
215 ti->m_confirmations = 0;
216 m_history.push_back(ti);
221 std::list<std::pair<crypto::hash, tools::wallet2::pool_payment_details>> upayments;
222 m_wallet->m_wallet->get_unconfirmed_payments(upayments);
223 for (std::list<std::pair<crypto::hash, tools::wallet2::pool_payment_details>>::const_iterator i = upayments.begin(); i != upayments.end(); ++i) {
226 if (payment_id.substr(16).find_first_not_of(
'0') == std::string::npos)
227 payment_id = payment_id.substr(0,16);
229 ti->m_paymentid = payment_id;
234 ti->m_pending =
true;
237 ti->m_label = m_wallet->m_wallet->get_subaddress_label(pd.
m_subaddr_index);
239 ti->m_confirmations = 0;
240 m_history.push_back(ti);
std::string get_account_address_as_str(network_type nettype, bool subaddress, account_public_address const &adr)
~TransactionHistoryImpl()
virtual int count() const
for(i=1;i< 1;++i) fe_sq(t0
unsigned __int64 uint64_t
uint64_t blockChainHeight() const override
blockChainHeight - returns current blockchain height
virtual std::vector< TransactionInfo * > getAll() const
virtual TransactionInfo * transaction(int index) const
The TransactionInfo - interface for displaying transaction information.