diff --git a/src/currency_core/tx_semantic_validation.cpp b/src/currency_core/tx_semantic_validation.cpp index 57901f02f..9c2399dc5 100644 --- a/src/currency_core/tx_semantic_validation.cpp +++ b/src/currency_core/tx_semantic_validation.cpp @@ -23,6 +23,7 @@ namespace currency bool check_tx_inputs_keyimages_diff(const transaction& tx) { std::unordered_set key_images; + std::unordered_set multisig_out_ids; crypto::key_image ki{}; for(const auto& in_v : tx.vin) { @@ -31,6 +32,12 @@ namespace currency if (!key_images.insert(ki).second) return false; } + else if (in_v.type() == typeid(txin_multisig)) + { + const auto& ms_in = boost::get(in_v); + if (!multisig_out_ids.insert(ms_in.multisig_out_id).second) + return false; + } } return true; }