From 4f5f87c3d90e11f5d654a1739c23c71a7081477b Mon Sep 17 00:00:00 2001 From: blondfrogs Date: Mon, 22 Oct 2018 09:13:15 -0600 Subject: [PATCH] fix duplicate unqiue in same tx --- src/assets/assets.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/assets/assets.cpp b/src/assets/assets.cpp index d34fa08fee..e00e21b6da 100644 --- a/src/assets/assets.cpp +++ b/src/assets/assets.cpp @@ -753,8 +753,10 @@ bool CTransaction::VerifyNewUniqueAsset(std::string& strError) const } // check for (and count) new unique asset outpoints. make sure they share a root. + std::set setUniqueAssets; std::string assetRoot = ""; int assetOutpointCount = 0; + for (auto out : vout) { if (IsScriptNewUniqueAsset(out.scriptPubKey)) { CNewAsset asset; @@ -770,6 +772,14 @@ bool CTransaction::VerifyNewUniqueAsset(std::string& strError) const strError = "bad-txns-issue-unique-asset-compare-failed"; return false; } + + // Check for duplicate unique assets in the same transaction + if (setUniqueAssets.count(asset.strName)) { + strError = "bad-txns-issue-unique-duplicate-name-in-same-tx"; + return false; + } + + setUniqueAssets.insert(asset.strName); assetOutpointCount += 1; } }