From 022ffdb54ab98f8816575d5e2c93465f2dd56105 Mon Sep 17 00:00:00 2001 From: Nick Freyaldenhoven Date: Wed, 24 Jul 2019 10:12:46 -0500 Subject: [PATCH 1/3] Addressing the linear growth of the reward rate --- .../contracts/validator/ValidatorRegistry.sol | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/kosu-system-contracts/contracts/validator/ValidatorRegistry.sol b/packages/kosu-system-contracts/contracts/validator/ValidatorRegistry.sol index 40f739e5..3a29a83d 100644 --- a/packages/kosu-system-contracts/contracts/validator/ValidatorRegistry.sol +++ b/packages/kosu-system-contracts/contracts/validator/ValidatorRegistry.sol @@ -406,7 +406,7 @@ contract ValidatorRegistry { } else { if (listing.rewardRate > 0) { uint rewardRate = uint(listing.rewardRate); - _maxGenerationSum = _maxGenerationSum.add(rewardRate.mul(rewardRate)); + _maxGenerationSum = _maxGenerationSum.add(rewardRate); } listing.lastRewardBlock = block.number; @@ -555,7 +555,7 @@ contract ValidatorRegistry { function removeListing(Listing storage l) internal { if (l.rewardRate > 0 && l.confirmationBlock > 0) { uint rewardRate = uint(l.rewardRate); - _maxGenerationSum = _maxGenerationSum.sub(rewardRate.mul(rewardRate)); + _maxGenerationSum = _maxGenerationSum.sub(rewardRate); } bytes32[] memory data = new bytes32[](1); From e8479e65cce97e919c26dbf11eb452d1421bd60d Mon Sep 17 00:00:00 2001 From: Nick Freyaldenhoven Date: Thu, 25 Jul 2019 16:58:33 -0500 Subject: [PATCH 2/3] Forcing a build before local tests. --- packages/kosu-system-contracts/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/kosu-system-contracts/package.json b/packages/kosu-system-contracts/package.json index 939758f3..f4da61ac 100644 --- a/packages/kosu-system-contracts/package.json +++ b/packages/kosu-system-contracts/package.json @@ -13,7 +13,7 @@ "url": "https://github.com/ParadigmFoundation/kosu-monorepo/issues" }, "scripts": { - "test": "ts-mocha -p test/tsconfig.json test/* --timeout 0 --slow 2000", + "test": "yarn build && ts-mocha -p test/tsconfig.json test/* --timeout 0 --slow 2000", "contracts:test:ci": "ts-mocha -p test/tsconfig.json test/* --slow 2000 --timeout 0 -b -- geth", "coverage": "ts-mocha -p test/tsconfig.json test/* --slow 2000 --timeout 100000 -- runCoverage && istanbul report html && open coverage/index.html", "build": "run-s compile:solidity generate_contract_wrappers compile:typescript", From eff1ba8b834500a81c3accc3cf2f69b7e201e23a Mon Sep 17 00:00:00 2001 From: Nick Freyaldenhoven Date: Thu, 25 Jul 2019 16:58:47 -0500 Subject: [PATCH 3/3] Swaping the way the calculation will be handled. --- .../contracts/validator/ValidatorRegistry.sol | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/kosu-system-contracts/contracts/validator/ValidatorRegistry.sol b/packages/kosu-system-contracts/contracts/validator/ValidatorRegistry.sol index 3a29a83d..98f4b6fa 100644 --- a/packages/kosu-system-contracts/contracts/validator/ValidatorRegistry.sol +++ b/packages/kosu-system-contracts/contracts/validator/ValidatorRegistry.sol @@ -64,7 +64,7 @@ contract ValidatorRegistry { uint public nextChallenge = 1; bytes32[] public _listingKeys; EventEmitter private eventEmitter; - uint _maxGenerationSum = 2 ether * 2 ether; + uint _maxGenerationSum = 2 ether; /** @dev Create a new ValidatorRegistry implementation @notice Create a new ValidatorRegistry implementation @@ -103,7 +103,7 @@ contract ValidatorRegistry { @return Maximum KosuToken a validator can generate per period. */ function maxRewardRate() public view returns (uint) { - return (sqrt(_maxGenerationSum)); + return _maxGenerationSum; } /** @dev Expose listing data for given public key. @@ -406,7 +406,7 @@ contract ValidatorRegistry { } else { if (listing.rewardRate > 0) { uint rewardRate = uint(listing.rewardRate); - _maxGenerationSum = _maxGenerationSum.add(rewardRate); + _maxGenerationSum = _maxGenerationSum.add(sqrt(rewardRate)); } listing.lastRewardBlock = block.number; @@ -555,7 +555,7 @@ contract ValidatorRegistry { function removeListing(Listing storage l) internal { if (l.rewardRate > 0 && l.confirmationBlock > 0) { uint rewardRate = uint(l.rewardRate); - _maxGenerationSum = _maxGenerationSum.sub(rewardRate); + _maxGenerationSum = _maxGenerationSum.sub(sqrt(rewardRate)); } bytes32[] memory data = new bytes32[](1);