Skip to content

Commit 5da7b23

Browse files
committed
correctly calculate rewards for uncles and nephews
1 parent b58eac2 commit 5da7b23

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

lib/runBlock.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,9 @@ module.exports = function (opts, cb) {
189189
var ommers = block.uncleHeaders
190190
// pay each ommer
191191
ommers.forEach(rewardOmmer)
192+
192193
// calculate nibling reward
194+
var niblingReward = minerReward.div(new BN(32))
193195
var totalNiblingReward = niblingReward.mul(new BN(ommers.length))
194196
minerAccount = self.stateManager.cache.get(block.header.coinbase)
195197
// give miner the block reward
@@ -203,7 +205,12 @@ module.exports = function (opts, cb) {
203205
function rewardOmmer (ommer) {
204206
// calculate reward
205207
var heightDiff = new BN(block.header.number).sub(new BN(ommer.number))
206-
var reward = minerReward.sub(ommerReward.mul(heightDiff))
208+
var reward = ((new BN(8)).sub(heightDiff)).mul(minerReward.div(new BN(8)))
209+
210+
if(reward.lt(new BN(0))) {
211+
reward = new BN(0)
212+
}
213+
207214
// credit miners account
208215
var ommerAccount = self.stateManager.cache.get(ommer.coinbase)
209216
ommerAccount.balance = reward.add(new BN(ommerAccount.balance))

0 commit comments

Comments
 (0)