diff --git a/src/currency_core/currency_format_utils.h b/src/currency_core/currency_format_utils.h index 7e28632a..0724d822 100644 --- a/src/currency_core/currency_format_utils.h +++ b/src/currency_core/currency_format_utils.h @@ -405,6 +405,25 @@ namespace currency return stub; } + template + bool is_out_burned(const out_t& out) { CHECK_AND_ASSERT_THROW_MES(false, "incorrect out type: " << typeid(out).name()); } + bool is_out_burned(const tx_out_bare& o) { return is_out_burned(o.target); } + bool is_out_burned(const txout_to_key& o) { return o.key == null_pkey; } + bool is_out_burned(const tx_out_zarcanum& o) { return o.stealth_address == null_pkey; } + struct zz_is_out_burned_helper_visitor : boost::static_visitor + { + template + bool operator()(const T& v) const { return is_out_burned(v); } + }; + bool is_out_burned(const tx_out_v& v) + { + return boost::apply_visitor(zz_is_out_burned_helper_visitor(), v); + } + bool is_out_burned(const txout_target_v& v) + { + return boost::apply_visitor(zz_is_out_burned_helper_visitor(), v); + } + template bool add_attachments_info_to_extra(t_extra_container& extra_container, const std::vector& attachments) { diff --git a/src/currency_core/currency_format_utils_transactions.h b/src/currency_core/currency_format_utils_transactions.h index 337d40d7..b1424c96 100644 --- a/src/currency_core/currency_format_utils_transactions.h +++ b/src/currency_core/currency_format_utils_transactions.h @@ -16,7 +16,7 @@ namespace currency { struct tx_source_entry { - typedef serializable_pair output_entry; // txout_v is either global output index or ref_by_id; public_key - is output ephemeral pub key + typedef serializable_pair output_entry; // txout_ref_v is either global output index or ref_by_id; public_key - is output's stealth address std::vector outputs; //index + key uint64_t real_output; //index in outputs vector of real output_entry