diff --git a/lib/transactions.js b/lib/transactions.js index 76cc1e8c4..133679e36 100644 --- a/lib/transactions.js +++ b/lib/transactions.js @@ -132,8 +132,47 @@ var generateOutputTransactions = function(poolRecipient, recipients, rpcData){ - if (rpcData.payee) { - var payeeReward = Math.ceil(reward / 5); +/* Dash 12.1 */ +if (rpcData.masternode && rpcData.superblock) { + if (rpcData.masternode.payee) { + var payeeReward = 0; + + payeeReward = rpcData.masternode.amount; + reward -= payeeReward; + rewardToPool -= payeeReward; + + var payeeScript = util.addressToScript(rpcData.masternode.payee); + txOutputBuffers.push(Buffer.concat([ + util.packInt64LE(payeeReward), + util.varIntBuffer(payeeScript.length), + payeeScript + ])); + } else if (rpcData.superblock.length > 0) { + for(var i in rpcData.superblock){ + var payeeReward = 0; + + payeeReward = rpcData.superblock[i].amount; + reward -= payeeReward; + rewardToPool -= payeeReward; + + var payeeScript = util.addressToScript(rpcData.superblock[i].payee); + txOutputBuffers.push(Buffer.concat([ + util.packInt64LE(payeeReward), + util.varIntBuffer(payeeScript.length), + payeeScript + ])); + } + } +} + +if (rpcData.payee) { + var payeeReward = 0; + + if (rpcData.payee_amount) { + payeeReward = rpcData.payee_amount; + } else { + payeeReward = Math.ceil(reward / 5); + } reward -= payeeReward; rewardToPool -= payeeReward;