From b9569ce89b970e47b8240aa3d05a2e6569adef6b Mon Sep 17 00:00:00 2001 From: sowle Date: Fri, 1 May 2020 12:56:09 +0300 Subject: [PATCH] extra_alias_entry/extra_alias_entry_old fixes, all types added to payload_items and compiles ok --- src/currency_core/currency_basic.h | 34 ++++++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/src/currency_core/currency_basic.h b/src/currency_core/currency_basic.h index da8291dc..f1f79d05 100644 --- a/src/currency_core/currency_basic.h +++ b/src/currency_core/currency_basic.h @@ -398,6 +398,15 @@ namespace currency struct extra_alias_entry_base { + extra_alias_entry_base() = default; + extra_alias_entry_base(const extra_alias_entry_base_old& old) + : m_address(account_public_address::from_old(old.m_address)) + , m_text_comment(old.m_text_comment) + , m_view_key(old.m_view_key) + , m_sign(old.m_sign) + { + } + account_public_address m_address; std::string m_text_comment; std::vector m_view_key; // only one or zero elments expected (std::vector is using as memory efficient container for such a case) @@ -413,12 +422,29 @@ namespace currency struct extra_alias_entry : public extra_alias_entry_base { + extra_alias_entry() = default; + extra_alias_entry(const extra_alias_entry_old& old) + : extra_alias_entry_base(old) + , m_alias(old.m_alias) + {} + std::string m_alias; BEGIN_SERIALIZE() FIELD(m_alias) FIELDS(*static_cast(this)) - END_SERIALIZE() + END_SERIALIZE() + + extra_alias_entry_old to_old() const + { + extra_alias_entry_old result = AUTO_VAL_INIT(result); + result.m_address = m_address.to_old(); + result.m_text_comment = m_text_comment; + result.m_view_key = m_view_key; + result.m_sign = m_sign; + result.m_alias = m_alias; + return result; + } }; @@ -487,10 +513,10 @@ namespace currency END_SERIALIZE() }; - typedef boost::mpl::vector20< + typedef boost::mpl::vector21< tx_service_attachment, tx_comment, tx_payer_old, tx_receiver_old, tx_derivation_hint, std::string, tx_crypto_checksum, etc_tx_time, etc_tx_details_unlock_time, etc_tx_details_expiration_time, - etc_tx_details_flags, crypto::public_key, extra_attachment_info, extra_alias_entry, extra_user_data, extra_padding, etc_tx_uint16_t, etc_tx_details_unlock_time2 - , tx_payer, tx_receiver//, extra_alias_entry + etc_tx_details_flags, crypto::public_key, extra_attachment_info, extra_alias_entry_old, extra_user_data, extra_padding, etc_tx_uint16_t, etc_tx_details_unlock_time2, + tx_payer, tx_receiver, extra_alias_entry > all_payload_types; typedef boost::make_variant_over::type payload_items_v;