@@ -21,12 +21,13 @@ pragma experimental "ABIEncoderV2";
2121import "./../common/ERC20Extended.sol " ;
2222import "./../common/EtherRouter.sol " ;
2323import "./../common/MultiChain.sol " ;
24+ import "./../common/ScaleReputation.sol " ;
2425import "./../reputationMiningCycle/IReputationMiningCycle.sol " ;
2526import "./../tokenLocking/ITokenLocking.sol " ;
2627import "./ColonyNetworkStorage.sol " ;
2728
2829
29- contract ColonyNetworkMining is ColonyNetworkStorage , MultiChain {
30+ contract ColonyNetworkMining is ColonyNetworkStorage , MultiChain , ScaleReputation {
3031 // TODO: Can we handle a dispute regarding the very first hash that should be set?
3132
3233 modifier onlyReputationMiningCycle () {
@@ -201,7 +202,8 @@ contract ColonyNetworkMining is ColonyNetworkStorage, MultiChain {
201202 stakers,
202203 minerWeights,
203204 metaColony,
204- totalMinerRewardPerCycle,
205+ // totalMinerRewardPerCycle,
206+ uint256 (scaleReputation (int256 (totalMinerRewardPerCycle), WAD - skills[reputationMiningSkillId].reputationScalingFactorComplement)),
205207 reputationMiningSkillId
206208 );
207209 }
@@ -275,6 +277,7 @@ contract ColonyNetworkMining is ColonyNetworkStorage, MultiChain {
275277 }
276278
277279 function setReputationMiningCycleReward (uint256 _amount ) public stoppable calledByMetaColony {
280+ require (_amount < uint256 (type (int256 ).max), "colony-network-too-large-reward " );
278281 totalMinerRewardPerCycle = _amount;
279282
280283 emit ReputationMiningRewardSet (_amount);
@@ -284,6 +287,12 @@ contract ColonyNetworkMining is ColonyNetworkStorage, MultiChain {
284287 return totalMinerRewardPerCycle;
285288 }
286289
290+ function setReputationMiningCycleRewardReputationScaling (uint256 _factor ) public calledByMetaColony stoppable
291+ {
292+ require (_factor <= WAD, "colony-network-invalid-reputation-scale-factor " );
293+ skills[reputationMiningSkillId].reputationScalingFactorComplement = WAD - _factor;
294+ }
295+
287296 uint256 constant UINT192_MAX = 2 ** 192 - 1 ; // Used for updating the stake timestamp
288297
289298 function getNewTimestamp (uint256 _prevWeight , uint256 _currWeight , uint256 _prevTime , uint256 _currTime ) internal pure returns (uint256 ) {
0 commit comments