diff --git a/src/blind.cpp b/src/blind.cpp index 5909452784d2a..52b53bc453594 100644 --- a/src/blind.cpp +++ b/src/blind.cpp @@ -188,3 +188,20 @@ void CreateValueCommitment(CConfidentialValue& conf_value, secp256k1_pedersen_co secp256k1_pedersen_commitment_serialize(secp256k1_blind_context, conf_value.vchCommitment.data(), &value_commit); assert(conf_value.IsValid()); } + +size_t GetNumIssuances(const CTransaction& tx) +{ + unsigned int num_issuances = 0; + for (unsigned int i = 0; i < tx.vin.size(); i++) { + if (!tx.vin[i].assetIssuance.IsNull()) { + if (!tx.vin[i].assetIssuance.nAmount.IsNull()) { + num_issuances++; + } + if (!tx.vin[i].assetIssuance.nInflationKeys.IsNull()) { + num_issuances++; + } + } + } + return num_issuances; +} + diff --git a/src/blind.h b/src/blind.h index e54ce56362a26..e15e420ca9611 100644 --- a/src/blind.h +++ b/src/blind.h @@ -35,4 +35,6 @@ void BlindAsset(CConfidentialAsset& conf_asset, secp256k1_generator& asset_gen, void CreateValueCommitment(CConfidentialValue& conf_value, secp256k1_pedersen_commitment& value_commit, const unsigned char* value_blindptr, const secp256k1_generator& asset_gen, const CAmount amount); +size_t GetNumIssuances(const CTransaction& tx); + #endif //BITCOIN_WALLET_BLIND_H diff --git a/src/primitives/transaction.cpp b/src/primitives/transaction.cpp index d5c677de090be..e22803e19f45e 100644 --- a/src/primitives/transaction.cpp +++ b/src/primitives/transaction.cpp @@ -41,6 +41,8 @@ std::string CTxIn::ToString() const str += strprintf(", scriptSig=%s", HexStr(scriptSig).substr(0, 24)); if (nSequence != SEQUENCE_FINAL) str += strprintf(", nSequence=%u", nSequence); + if (!assetIssuance.IsNull()) + str += strprintf(", %s", assetIssuance.ToString()); str += ")"; return str; } diff --git a/src/primitives/transaction.h b/src/primitives/transaction.h index 687682abb25c1..60797c43249d1 100644 --- a/src/primitives/transaction.h +++ b/src/primitives/transaction.h @@ -11,6 +11,7 @@ #include