Skip to content

Commit

Permalink
Update permissions, kill nested terneries with fire
Browse files Browse the repository at this point in the history
  • Loading branch information
area committed Jun 18, 2023
1 parent 1272c2f commit b00abe5
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 5 deletions.
2 changes: 1 addition & 1 deletion contracts/colony/Colony.sol
Original file line number Diff line number Diff line change
Expand Up @@ -326,7 +326,7 @@ contract Colony is BasicMetaTransaction, Multicall, ColonyStorage, PatriciaTreeP
sig = bytes4(keccak256("setExpenditureMetadata(uint256,uint256,uint256,string)"));
colonyAuthority.setRoleCapability(uint8(ColonyRole.Arbitration), address(this), sig, true);

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

// Set the default token weighting for the native token
Expand Down
2 changes: 1 addition & 1 deletion contracts/colony/ColonyAuthority.sol
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ contract ColonyAuthority is CommonAuthority {
addRoleCapability(ARBITRATION_ROLE, "setExpenditurePayout(uint256,uint256,uint256,uint256,address,uint256)");

// Added in colony v xxxxx
addRoleCapability(ROOT_ROLE, "setDomainReputationScaling(uint256,bool,uint256)");
addRoleCapability(ROOT_ROLE, "setDomainReputationScaling(uint256,uint256)");
addRoleCapability(ROOT_ROLE, "setReputationDecayRate(uint256,uint256)");
addRoleCapability(ROOT_ROLE, "setReputationMiningCycleRewardReputationScaling(uint256)");

Expand Down
10 changes: 7 additions & 3 deletions contracts/common/ScaleReputation.sol
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,13 @@ contract ScaleReputation is DSMath {
if (reputationAmount == 0 || scaleFactor == 0) { return 0; }

int256 sgnAmount = (reputationAmount >= 0) ? int256(1) : -1;
int256 absAmount = (reputationAmount == type(int256).min)
? type(int256).max // Off by one, but best we can do - probably gets capped anyway
: (reputationAmount >= 0) ? reputationAmount : -reputationAmount;
int256 absAmount;

if (reputationAmount == type(int256).min){
absAmount = type(int256).max; // Off by one, but best we can do - probably gets capped anyway
} else {
absAmount = reputationAmount >= 0 ? reputationAmount : -reputationAmount;
}

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

0 comments on commit b00abe5

Please sign in to comment.