Update blockUnlocker.js

support for solofee and finders reward
This commit is contained in:
XMR Miners Club
2021-01-03 21:37:16 -05:00
committed by GitHub
parent c937579855
commit bc4f5eb7ae

View File

@@ -223,7 +223,9 @@ function runInterval () {
block.reward block.reward
].join(':')]) ].join(':')])
let feePercent = config.blockUnlocker.poolFee / 100 let feePercent = (config.blockUnlocker.poolFee > 0 ? config.blockUnlocker.poolFee : 0) / 100
if (block.rewardType === 'solo')
feePercent = (config.blockUnlocker.soloFee >= 0 ? config.blockUnlocker.soloFee : (config.blockUnlocker.poolFee > 0 ? config.blockUnlocker.poolFee : 0)) / 100
if (Object.keys(donations) if (Object.keys(donations)
.length) { .length) {
@@ -235,9 +237,18 @@ function runInterval () {
} }
} }
let reward = Math.round(block.reward - (block.reward * feePercent)) let reward = 0
let finderReward = 0
log('info', logSystem, 'Unlocked %d block with reward %d and donation fee %d. Miners reward: %d', [block.height, block.reward, feePercent, reward]) if (block.rewardType === 'solo') {
reward = Math.round(block.reward - (block.reward * feePercent))
log('info', logSystem, 'Unlocked SOLO block %d with reward %d and donation fee %d. Miners reward: %d', [block.height, block.reward, feePercent, reward])
} else {
let finderPercent = (config.blockUnlocker.finderReward > 0 ? config.blockUnlocker.finderReward : 0) / 100
finderReward = Math.round(block.reward * finderPercent)
reward = Math.round(block.reward - (block.reward * (feePercent + finderPercent)))
log('info', logSystem, 'Unlocked PROP block %d with reward %d, finders fee %d, and donation fee %d. Miners reward: %d Finders Reward: %d', [block.height, block.reward, finderPercent, feePercent, reward, finderReward])
}
if (block.workerScores) { if (block.workerScores) {
let totalScore = parseFloat(block.score) let totalScore = parseFloat(block.score)
@@ -251,7 +262,7 @@ function runInterval () {
.forEach(function (worker) { .forEach(function (worker) {
let percent = block.workerScores[worker] / totalScore let percent = block.workerScores[worker] / totalScore
let workerReward = Math.round(reward * percent) let workerReward = Math.round(reward * percent)
payments[worker] = (payments[worker] || 0) + workerReward payments[worker] = block.login === worker ? (payments[worker] || 0) + (workerReward + finderReward) : (payments[worker] || 0) + workerReward
log('info', logSystem, 'PROP Block %d payment to %s for %d%% of total block score: %d', [block.height, worker, percent * 100, payments[worker]]) log('info', logSystem, 'PROP Block %d payment to %s for %d%% of total block score: %d', [block.height, worker, percent * 100, payments[worker]])
}) })
} }