diff options
author | moneromooo-monero <moneromooo-monero@users.noreply.github.com> | 2015-11-22 12:13:59 +0000 |
---|---|---|
committer | moneromooo-monero <moneromooo-monero@users.noreply.github.com> | 2015-11-22 12:13:59 +0000 |
commit | b3d4d41e290c1a36ad39c85c2b5de284c0291297 (patch) | |
tree | 4dee04fd1d4d36ef5b74cd2b70a586eaa8ef73c6 /src/wallet/wallet2.h | |
parent | wallet: use incoming blocks to keep track of payments too (diff) | |
download | monero-b3d4d41e290c1a36ad39c85c2b5de284c0291297.tar.xz |
wallet: improve show_transfers
More information is now saved and displayed
Diffstat (limited to '')
-rw-r--r-- | src/wallet/wallet2.h | 31 |
1 files changed, 27 insertions, 4 deletions
diff --git a/src/wallet/wallet2.h b/src/wallet/wallet2.h index 70f34c91e..803312eea 100644 --- a/src/wallet/wallet2.h +++ b/src/wallet/wallet2.h @@ -107,6 +107,8 @@ namespace tools cryptonote::transaction m_tx; uint64_t m_change; time_t m_sent_time; + std::vector<cryptonote::tx_destination_entry> m_dests; + crypto::hash m_payment_id; }; struct confirmed_transfer_details @@ -115,9 +117,12 @@ namespace tools uint64_t m_amount_out; uint64_t m_change; uint64_t m_block_height; - confirmed_transfer_details(): m_amount_in(0), m_amount_out(0), m_change((uint64_t)-1), m_block_height(0) {} + std::vector<cryptonote::tx_destination_entry> m_dests; + crypto::hash m_payment_id; + + confirmed_transfer_details(): m_amount_in(0), m_amount_out(0), m_change((uint64_t)-1), m_block_height(0), m_payment_id(cryptonote::null_hash) {} confirmed_transfer_details(const unconfirmed_transfer_details &utd, uint64_t height): - m_amount_out(get_outs_money_amount(utd.m_tx)), m_change(utd.m_change), m_block_height(height) { get_inputs_money_amount(utd.m_tx, m_amount_in); } + m_amount_out(get_outs_money_amount(utd.m_tx)), m_change(utd.m_change), m_block_height(height), m_dests(utd.m_dests), m_payment_id(utd.m_payment_id) { get_inputs_money_amount(utd.m_tx, m_amount_in); } }; typedef std::vector<transfer_details> transfer_container; @@ -131,6 +136,7 @@ namespace tools std::list<transfer_container::iterator> selected_transfers; std::string key_images; crypto::secret_key tx_key; + std::vector<cryptonote::tx_destination_entry> dests; }; struct keys_file_data @@ -342,10 +348,11 @@ namespace tools bool prepare_file_names(const std::string& file_path); void process_unconfirmed(const cryptonote::transaction& tx, uint64_t height); void process_outgoing(const cryptonote::transaction& tx, uint64_t height, uint64_t spent, uint64_t received); - void add_unconfirmed_tx(const cryptonote::transaction& tx, uint64_t change_amount); + void add_unconfirmed_tx(const cryptonote::transaction& tx, const std::vector<cryptonote::tx_destination_entry> &dests, const crypto::hash &payment_id, uint64_t change_amount); void generate_genesis(cryptonote::block& b); void check_genesis(const crypto::hash& genesis_hash) const; //throws bool generate_chacha8_key_from_secret_keys(crypto::chacha8_key &key) const; + crypto::hash get_payment_id(const pending_tx &ptx) const; cryptonote::account_base m_account; std::string m_daemon_address; @@ -377,7 +384,7 @@ namespace tools uint32_t m_default_mixin; }; } -BOOST_CLASS_VERSION(tools::wallet2, 9) +BOOST_CLASS_VERSION(tools::wallet2, 10) namespace boost { @@ -400,6 +407,10 @@ namespace boost a & x.m_change; a & x.m_sent_time; a & x.m_tx; + if (ver < 9) + return; + a & x.m_dests; + a & x.m_payment_id; } template <class Archive> @@ -409,6 +420,10 @@ namespace boost a & x.m_amount_out; a & x.m_change; a & x.m_block_height; + if (ver < 9) + return; + a & x.m_dests; + a & x.m_payment_id; } template <class Archive> @@ -419,6 +434,13 @@ namespace boost a & x.m_block_height; a & x.m_unlock_time; } + + template <class Archive> + inline void serialize(Archive& a, cryptonote::tx_destination_entry& x, const boost::serialization::version_type ver) + { + a & x.amount; + a & x.addr; + } } } @@ -629,6 +651,7 @@ namespace tools ptx.change_dts = change_dts; ptx.selected_transfers = selected_transfers; ptx.tx_key = tx_key; + ptx.dests = dsts; } |