miner: remove unnecessary fee outputs
Closed this issue · 0 comments
nkostoulas commented
Miner creates placeholder outputs for all assets transacted but in the case of issuance/reissuance or any other policy, fees are zero. These placeholders are replaced by 0 amount policyAsset outputs that should be removed.
related code in miner.cpp:
if (!nFees.empty())
{
coinbaseTx.vout.resize(nFees.size());
int nCount = 0;
for (auto const& fee : nFees)
{
coinbaseTx.vout[nCount].scriptPubKey = fee.second ? scriptPubKeyIn : CScript() << OP_RETURN;
coinbaseTx.vout[nCount].nValue = fee.second;
coinbaseTx.vout[nCount].nAsset = fee.second ? fee.first : policyAsset;
nFeeSum += fee.second;
nCount++;
}
}
else
{
coinbaseTx.vout[0].scriptPubKey = CScript() << OP_RETURN;
coinbaseTx.vout[0].nValue = 0;
coinbaseTx.vout[0].nAsset = policyAsset;
}