diff options
author | moneromooo-monero <moneromooo-monero@users.noreply.github.com> | 2016-11-15 21:22:04 +0000 |
---|---|---|
committer | moneromooo-monero <moneromooo-monero@users.noreply.github.com> | 2016-11-16 09:22:24 +0000 |
commit | a0131c8be3a3965e26bda82697c340962cdc0efd (patch) | |
tree | ec48e7f547b5c671505a4d478b97904795d19556 /src/wallet/wallet2.h | |
parent | wallet2: fill key image and pubkey maps when importing outputs (diff) | |
download | monero-a0131c8be3a3965e26bda82697c340962cdc0efd.tar.xz |
wallet: auto sync outputs and key images in cold signing files
When passing around unsigned and signed transactions, outputs
and key images are passed along (outputs are passed along unsigned
transactions from the hot wallet to the cold wallet, key images
are passed along with signed transations from the cold wallet
to the hot wallet), to allow more user friendly syncing between
hot and cold wallets.
Diffstat (limited to '')
-rw-r--r-- | src/wallet/wallet2.h | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/wallet/wallet2.h b/src/wallet/wallet2.h index 417e754a5..d0075e2ec 100644 --- a/src/wallet/wallet2.h +++ b/src/wallet/wallet2.h @@ -133,6 +133,21 @@ namespace tools bool is_rct() const { return m_rct; } uint64_t amount() const { return m_amount; } const crypto::public_key &get_public_key() const { return boost::get<const cryptonote::txout_to_key>(m_tx.vout[m_internal_output_index].target).key; } + + BEGIN_SERIALIZE_OBJECT() + FIELD(m_block_height) + FIELD(m_tx) + FIELD(m_txid) + FIELD(m_internal_output_index) + FIELD(m_global_output_index) + FIELD(m_spent) + FIELD(m_spent_height) + FIELD(m_key_image) + FIELD(m_mask) + FIELD(m_amount) + FIELD(m_rct) + FIELD(m_key_image_known) + END_SERIALIZE() }; struct payment_details @@ -226,16 +241,20 @@ namespace tools struct unsigned_tx_set { std::vector<tx_construction_data> txes; + wallet2::transfer_container transfers; BEGIN_SERIALIZE_OBJECT() FIELD(txes) + FIELD(transfers) END_SERIALIZE() }; struct signed_tx_set { std::vector<pending_tx> ptx; + std::vector<crypto::key_image> key_images; BEGIN_SERIALIZE_OBJECT() FIELD(ptx) + FIELD(key_images) END_SERIALIZE() }; @@ -377,7 +396,7 @@ namespace tools void commit_tx(pending_tx& ptx_vector); void commit_tx(std::vector<pending_tx>& ptx_vector); bool save_tx(const std::vector<pending_tx>& ptx_vector, const std::string &filename); - bool sign_tx(const std::string &unsigned_filename, const std::string &signed_filename, std::function<bool(const unsigned_tx_set&)> accept_func = NULL); + bool sign_tx(const std::string &unsigned_filename, const std::string &signed_filename, std::vector<wallet2::pending_tx> &ptx, std::function<bool(const unsigned_tx_set&)> accept_func = NULL); bool load_tx(const std::string &signed_filename, std::vector<tools::wallet2::pending_tx> &ptx, std::function<bool(const signed_tx_set&)> accept_func = NULL); std::vector<pending_tx> create_transactions(std::vector<cryptonote::tx_destination_entry> dsts, const size_t fake_outs_count, const uint64_t unlock_time, uint32_t priority, const std::vector<uint8_t> extra, bool trusted_daemon); std::vector<wallet2::pending_tx> create_transactions_2(std::vector<cryptonote::tx_destination_entry> dsts, const size_t fake_outs_count, const uint64_t unlock_time, uint32_t priority, const std::vector<uint8_t> extra, bool trusted_daemon); |