From 5305757136414cffb6935e9e8a6ed65db0260618 Mon Sep 17 00:00:00 2001 From: obucina <11353193+obucina@users.noreply.github.com> Date: Fri, 17 Apr 2020 21:02:30 +0200 Subject: [PATCH 1/2] [SON-354] Fix son_info compare function (#350) --- libraries/chain/include/graphene/chain/son_info.hpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/libraries/chain/include/graphene/chain/son_info.hpp b/libraries/chain/include/graphene/chain/son_info.hpp index b85fb03a..2bfecac4 100644 --- a/libraries/chain/include/graphene/chain/son_info.hpp +++ b/libraries/chain/include/graphene/chain/son_info.hpp @@ -24,7 +24,15 @@ namespace graphene { namespace chain { (sidechain_public_keys.size() == rhs.sidechain_public_keys.size()); if (son_sets_equal) { - // Compare sidechain public keys + bool sidechain_public_keys_equal = true; + for (size_t i = 0; i < sidechain_public_keys.size(); i++) { + const auto lhs_scpk = sidechain_public_keys.nth(i); + const auto rhs_scpk = rhs.sidechain_public_keys.nth(i); + sidechain_public_keys_equal = sidechain_public_keys_equal && + (lhs_scpk->first == rhs_scpk->first) && + (lhs_scpk->second == rhs_scpk->second); + } + son_sets_equal = son_sets_equal && sidechain_public_keys_equal; } return son_sets_equal; } From fbb4bbd75757b4f4afd3c84cfd9b313852061aef Mon Sep 17 00:00:00 2001 From: gladcow Date: Fri, 17 Apr 2020 22:38:47 +0300 Subject: [PATCH 2/2] check object's id (#351) Co-authored-by: gladcow --- .../peerplays_sidechain/sidechain_net_handler.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/libraries/plugins/peerplays_sidechain/sidechain_net_handler.cpp b/libraries/plugins/peerplays_sidechain/sidechain_net_handler.cpp index 74328ea1..68ca01e3 100644 --- a/libraries/plugins/peerplays_sidechain/sidechain_net_handler.cpp +++ b/libraries/plugins/peerplays_sidechain/sidechain_net_handler.cpp @@ -326,6 +326,9 @@ void sidechain_net_handler::process_deposits() { const auto &idx_range = idx.equal_range(std::make_tuple(sidechain, true, false)); std::for_each(idx_range.first, idx_range.second, [&](const son_wallet_deposit_object &swdo) { + if(swdo.id == object_id_type(0, 0, 0)) + return; + ilog("Deposit to process: ${swdo}", ("swdo", swdo)); bool process_deposit_result = process_deposit(swdo); @@ -376,6 +379,9 @@ void sidechain_net_handler::process_withdrawals() { const auto &idx_range = idx.equal_range(std::make_tuple(sidechain, true, false)); std::for_each(idx_range.first, idx_range.second, [&](const son_wallet_withdraw_object &swwo) { + if(swwo.id == object_id_type(0, 0, 0)) + return; + ilog("Withdraw to process: ${swwo}", ("swwo", swwo)); bool process_withdrawal_result = process_withdrawal(swwo); @@ -420,6 +426,9 @@ void sidechain_net_handler::process_sidechain_transactions() { const auto &idx_range = idx.equal_range(std::make_tuple(sidechain, false)); std::for_each(idx_range.first, idx_range.second, [&](const sidechain_transaction_object &sto) { + if(sto.id == object_id_type(0, 0, 0)) + return; + ilog("Sidechain transaction to process: ${sto}", ("sto", sto.id)); bool complete = false; @@ -452,6 +461,9 @@ void sidechain_net_handler::send_sidechain_transactions() { const auto &idx_range = idx.equal_range(std::make_tuple(sidechain, true, false)); std::for_each(idx_range.first, idx_range.second, [&](const sidechain_transaction_object &sto) { + if(sto.id == object_id_type(0, 0, 0)) + return; + ilog("Sidechain transaction to send: ${sto}", ("sto", sto.id)); std::string sidechain_transaction = send_sidechain_transaction(sto);