|
|
|
@ -289,6 +289,7 @@ namespace tools
|
|
|
|
|
uint64_t m_timestamp;
|
|
|
|
|
uint32_t m_subaddr_account; // subaddress account of your wallet to be used in this transfer
|
|
|
|
|
std::set<uint32_t> m_subaddr_indices; // set of address indices used as inputs in this transfer
|
|
|
|
|
std::vector<std::pair<crypto::key_image, std::vector<uint64_t>>> m_rings; // relative
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct confirmed_transfer_details
|
|
|
|
@ -303,10 +304,11 @@ namespace tools
|
|
|
|
|
uint64_t m_unlock_time;
|
|
|
|
|
uint32_t m_subaddr_account; // subaddress account of your wallet to be used in this transfer
|
|
|
|
|
std::set<uint32_t> m_subaddr_indices; // set of address indices used as inputs in this transfer
|
|
|
|
|
std::vector<std::pair<crypto::key_image, std::vector<uint64_t>>> m_rings; // relative
|
|
|
|
|
|
|
|
|
|
confirmed_transfer_details(): m_amount_in(0), m_amount_out(0), m_change((uint64_t)-1), m_block_height(0), m_payment_id(crypto::null_hash), m_timestamp(0), m_unlock_time(0), m_subaddr_account((uint32_t)-1) {}
|
|
|
|
|
confirmed_transfer_details(const unconfirmed_transfer_details &utd, uint64_t height):
|
|
|
|
|
m_amount_in(utd.m_amount_in), m_amount_out(utd.m_amount_out), m_change(utd.m_change), m_block_height(height), m_dests(utd.m_dests), m_payment_id(utd.m_payment_id), m_timestamp(utd.m_timestamp), m_unlock_time(utd.m_tx.unlock_time), m_subaddr_account(utd.m_subaddr_account), m_subaddr_indices(utd.m_subaddr_indices) {}
|
|
|
|
|
m_amount_in(utd.m_amount_in), m_amount_out(utd.m_amount_out), m_change(utd.m_change), m_block_height(height), m_dests(utd.m_dests), m_payment_id(utd.m_payment_id), m_timestamp(utd.m_timestamp), m_unlock_time(utd.m_tx.unlock_time), m_subaddr_account(utd.m_subaddr_account), m_subaddr_indices(utd.m_subaddr_indices), m_rings(utd.m_rings) {}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct tx_construction_data
|
|
|
|
@ -1059,6 +1061,7 @@ namespace tools
|
|
|
|
|
void set_ring_database(const std::string &filename);
|
|
|
|
|
const std::string get_ring_database() const { return m_ring_database; }
|
|
|
|
|
bool get_ring(const crypto::key_image &key_image, std::vector<uint64_t> &outs);
|
|
|
|
|
bool get_rings(const crypto::hash &txid, std::vector<std::pair<crypto::key_image, std::vector<uint64_t>>> &outs);
|
|
|
|
|
bool set_ring(const crypto::key_image &key_image, const std::vector<uint64_t> &outs, bool relative);
|
|
|
|
|
bool find_and_save_rings(bool force = true);
|
|
|
|
|
|
|
|
|
@ -1227,8 +1230,8 @@ BOOST_CLASS_VERSION(tools::wallet2::multisig_info::LR, 0)
|
|
|
|
|
BOOST_CLASS_VERSION(tools::wallet2::multisig_tx_set, 1)
|
|
|
|
|
BOOST_CLASS_VERSION(tools::wallet2::payment_details, 3)
|
|
|
|
|
BOOST_CLASS_VERSION(tools::wallet2::pool_payment_details, 1)
|
|
|
|
|
BOOST_CLASS_VERSION(tools::wallet2::unconfirmed_transfer_details, 7)
|
|
|
|
|
BOOST_CLASS_VERSION(tools::wallet2::confirmed_transfer_details, 5)
|
|
|
|
|
BOOST_CLASS_VERSION(tools::wallet2::unconfirmed_transfer_details, 8)
|
|
|
|
|
BOOST_CLASS_VERSION(tools::wallet2::confirmed_transfer_details, 6)
|
|
|
|
|
BOOST_CLASS_VERSION(tools::wallet2::address_book_row, 17)
|
|
|
|
|
BOOST_CLASS_VERSION(tools::wallet2::reserve_proof_entry, 0)
|
|
|
|
|
BOOST_CLASS_VERSION(tools::wallet2::unsigned_tx_set, 0)
|
|
|
|
@ -1428,6 +1431,9 @@ namespace boost
|
|
|
|
|
}
|
|
|
|
|
a & x.m_subaddr_account;
|
|
|
|
|
a & x.m_subaddr_indices;
|
|
|
|
|
if (ver < 8)
|
|
|
|
|
return;
|
|
|
|
|
a & x.m_rings;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
template <class Archive>
|
|
|
|
@ -1472,6 +1478,9 @@ namespace boost
|
|
|
|
|
}
|
|
|
|
|
a & x.m_subaddr_account;
|
|
|
|
|
a & x.m_subaddr_indices;
|
|
|
|
|
if (ver < 6)
|
|
|
|
|
return;
|
|
|
|
|
a & x.m_rings;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
template <class Archive>
|
|
|
|
|