Skip to content

Commit 61a2cae

Browse files
committed
Update permissions, kill nested terneries with fire
1 parent 1272c2f commit 61a2cae

5 files changed

Lines changed: 14 additions & 13 deletions

File tree

contracts/colony/Colony.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -326,7 +326,7 @@ contract Colony is BasicMetaTransaction, Multicall, ColonyStorage, PatriciaTreeP
326326
sig = bytes4(keccak256("setExpenditureMetadata(uint256,uint256,uint256,string)"));
327327
colonyAuthority.setRoleCapability(uint8(ColonyRole.Arbitration), address(this), sig, true);
328328

329-
sig = bytes4(keccak256("setDomainReputationScaling(uint256,bool,uint256)"));
329+
sig = bytes4(keccak256("setDomainReputationScaling(uint256,uint256)"));
330330
colonyAuthority.setRoleCapability(uint8(ColonyRole.Root), address(this), sig, true);
331331

332332
// Set the default token weighting for the native token

contracts/colony/ColonyAuthority.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ contract ColonyAuthority is CommonAuthority {
131131
addRoleCapability(ARBITRATION_ROLE, "setExpenditurePayout(uint256,uint256,uint256,uint256,address,uint256)");
132132

133133
// Added in colony v xxxxx
134-
addRoleCapability(ROOT_ROLE, "setDomainReputationScaling(uint256,bool,uint256)");
134+
addRoleCapability(ROOT_ROLE, "setDomainReputationScaling(uint256,uint256)");
135135
addRoleCapability(ROOT_ROLE, "setReputationDecayRate(uint256,uint256)");
136136
addRoleCapability(ROOT_ROLE, "setReputationMiningCycleRewardReputationScaling(uint256)");
137137

contracts/common/ScaleReputation.sol

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,13 @@ contract ScaleReputation is DSMath {
2828
if (reputationAmount == 0 || scaleFactor == 0) { return 0; }
2929

3030
int256 sgnAmount = (reputationAmount >= 0) ? int256(1) : -1;
31-
int256 absAmount = (reputationAmount == type(int256).min)
32-
? type(int256).max // Off by one, but best we can do - probably gets capped anyway
33-
: (reputationAmount >= 0) ? reputationAmount : -reputationAmount;
31+
int256 absAmount;
32+
33+
if (reputationAmount == type(int256).min){
34+
absAmount = type(int256).max; // Off by one, but best we can do - probably gets capped anyway
35+
} else {
36+
absAmount = reputationAmount >= 0 ? reputationAmount : -reputationAmount;
37+
}
3438

3539
// Guard against overflows during calculation with wmul
3640
if (type(uint256).max / scaleFactor < uint256(absAmount)) {

test/contracts-network/colony.js

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -543,7 +543,7 @@ contract("Colony", (accounts) => {
543543
});
544544

545545
it("cannot set scale factor to larger than 1", async () => {
546-
await checkErrorRevert(colony.setDomainReputationScaling(1, WAD.muln(2)), "colony-invalid-scale-factor");
546+
await checkErrorRevert(colony.setDomainReputationScaling(1, WAD.muln(2)), "colony-network-invalid-reputation-scale-factor");
547547
});
548548

549549
it("non-root users cannot set domain scale factor", async () => {
@@ -563,15 +563,9 @@ contract("Colony", (accounts) => {
563563
expect(skill.reputationScalingFactorComplement).to.be.eq.BN(WAD);
564564
});
565565

566-
it("setting domain reputation scaling to false with a nonzero scale factor fails", async () => {
567-
await colony.setDomainReputationScaling(1, WAD.divn(2));
568-
569-
await checkErrorRevert(colony.setDomainReputationScaling(1, 1), "colony-invalid-configuration");
570-
});
571-
572566
it("an event is emitted when reputation scaling is changed", async () => {
573567
const tx = await colony.setDomainReputationScaling(1, WAD.divn(2));
574-
await expectEvent(tx, "DomainReputationScalingSet(uint256,bool,uint256)", [1, true, WAD.divn(2)]);
568+
await expectEvent(tx, "DomainReputationScalingSet(uint256,uint256)", [1, WAD.divn(2)]);
575569
});
576570
});
577571

test/reputation-system/root-hash-submissions.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -337,6 +337,9 @@ contract("Reputation mining - root hash submissions", (accounts) => {
337337

338338
const reputationUpdateLogLength = await inactiveRepCycle.getReputationUpdateLogLength();
339339
expect(reputationUpdateLogLength).to.eq.BN(2);
340+
341+
// Reset scaling factor
342+
await metaColony.setReputationMiningCycleRewardReputationScaling(WAD);
340343
});
341344

342345
it("should only allow 12 entries to back a single hash in each cycle", async () => {

0 commit comments

Comments
 (0)