public virtual Task <decimal> UpdateBlockRewardBalancesAsync(IDbConnection con, IDbTransaction tx, Block block, PoolConfig pool) { var blockRewardRemaining = block.Reward; foreach (var recipient in poolConfig.RewardRecipients.Where(x => x.Percentage > 0)) { var amount = block.Reward * (recipient.Percentage / 100.0m); var address = recipient.Address; blockRewardRemaining -= amount; if (address != poolConfig.Address) { logger.Info(() => $"Adding {FormatAmount(amount)} to balance of {address}"); balanceRepo.AddAmount(con, tx, poolConfig.Id, poolConfig.Coin.Type, address, amount, $"Reward for block {block.BlockHeight}"); } } return(Task.FromResult(blockRewardRemaining)); }
public virtual Task CalculateBlockEffortAsync(Block block, double accumulatedBlockShareDiff) { block.Effort = accumulatedBlockShareDiff / block.NetworkDifficulty; return(Task.FromResult(true)); }