From d573dd53fd3f6374ceddf83a134a3a94a9d2f872 Mon Sep 17 00:00:00 2001 From: cryptozoidberg Date: Wed, 21 Sep 2022 14:50:29 +0200 Subject: [PATCH] assigning asset id from tx --- src/currency_core/currency_format_utils.cpp | 5 +++++ src/currency_core/currency_format_utils.h | 1 + src/wallet/wallet2.cpp | 4 ++++ 3 files changed, 10 insertions(+) diff --git a/src/currency_core/currency_format_utils.cpp b/src/currency_core/currency_format_utils.cpp index 142d12eb..ec547e25 100644 --- a/src/currency_core/currency_format_utils.cpp +++ b/src/currency_core/currency_format_utils.cpp @@ -2594,6 +2594,11 @@ namespace currency if (is_out_to_acc(acc, zo, derivation, output_index, amount, blinding_mask)) { outs.emplace_back(output_index, amount, blinding_mask); + open_asset_id v = AUTO_VAL_INIT(v); + if (get_type_in_variant_container(zo.etc_details, v)) + { + outs.back().asset_id = v.asset_id; + } money_transfered += amount; } VARIANT_SWITCH_END(); diff --git a/src/currency_core/currency_format_utils.h b/src/currency_core/currency_format_utils.h index c020c2dd..0e0da357 100644 --- a/src/currency_core/currency_format_utils.h +++ b/src/currency_core/currency_format_utils.h @@ -211,6 +211,7 @@ namespace currency size_t index = SIZE_MAX; uint64_t amount = 0; crypto::scalar_t blinding_mask = 0; + crypto::hash asset_id = currency::null_hash; }; diff --git a/src/wallet/wallet2.cpp b/src/wallet/wallet2.cpp index 8b28744f..88f01620 100644 --- a/src/wallet/wallet2.cpp +++ b/src/wallet/wallet2.cpp @@ -626,6 +626,10 @@ void wallet2::process_new_transaction(const currency::transaction& tx, uint64_t td.m_ptx_wallet_info = pwallet_info; td.m_internal_output_index = o; td.m_key_image = ki; + if (outs[i_in_outs].asset_id != currency::null_hash) + { + td.m_asset_id.reset(new crypto::hash(outs[i_in_outs].asset_id)); + } td.m_amount = outs[i_in_outs].amount; if (m_use_deffered_global_outputs) {