@0x/contract-staking: Make solidity uniformly hideous ;-).
				
					
				
			This commit is contained in:
		@@ -89,8 +89,7 @@ contract MixinExchangeFees is
 | 
				
			|||||||
            return;
 | 
					            return;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        uint256 poolStake =
 | 
					        uint256 poolStake = getTotalStakeDelegatedToPool(poolId).currentEpochBalance;
 | 
				
			||||||
            getTotalStakeDelegatedToPool(poolId).currentEpochBalance;
 | 
					 | 
				
			||||||
        // Ignore pools with dust stake.
 | 
					        // Ignore pools with dust stake.
 | 
				
			||||||
        if (poolStake < minimumPoolStake) {
 | 
					        if (poolStake < minimumPoolStake) {
 | 
				
			||||||
            return;
 | 
					            return;
 | 
				
			||||||
@@ -105,12 +104,10 @@ contract MixinExchangeFees is
 | 
				
			|||||||
        // If the pool was previously inactive in this epoch, initialize it.
 | 
					        // If the pool was previously inactive in this epoch, initialize it.
 | 
				
			||||||
        if (pool.feesCollected == 0) {
 | 
					        if (pool.feesCollected == 0) {
 | 
				
			||||||
            // Compute member and total weighted stake.
 | 
					            // Compute member and total weighted stake.
 | 
				
			||||||
            (pool.membersStake, pool.weightedStake) =
 | 
					            (pool.membersStake, pool.weightedStake) = _computeMembersAndWeightedStake(poolId, poolStake);
 | 
				
			||||||
                _computeMembersAndWeightedStake(poolId, poolStake);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
            // Increase the total weighted stake.
 | 
					            // Increase the total weighted stake.
 | 
				
			||||||
            totalWeightedStakeThisEpoch =
 | 
					            totalWeightedStakeThisEpoch = totalWeightedStakeThisEpoch.safeAdd(pool.weightedStake);
 | 
				
			||||||
                totalWeightedStakeThisEpoch.safeAdd(pool.weightedStake);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
            // Increase the number of active pools.
 | 
					            // Increase the number of active pools.
 | 
				
			||||||
            numActivePoolsThisEpoch += 1;
 | 
					            numActivePoolsThisEpoch += 1;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -71,9 +71,9 @@ library LibCobbDouglas {
 | 
				
			|||||||
        // `totalRewards * stakeRatio / e^(alpha * (ln(stakeRatio / feeRatio)))`
 | 
					        // `totalRewards * stakeRatio / e^(alpha * (ln(stakeRatio / feeRatio)))`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Compute
 | 
					        // Compute
 | 
				
			||||||
        // `e^(alpha * (ln(feeRatio/stakeRatio)))` if feeRatio <= stakeRatio
 | 
					        // `e^(alpha * ln(feeRatio/stakeRatio))` if feeRatio <= stakeRatio
 | 
				
			||||||
        // or
 | 
					        // or
 | 
				
			||||||
        // `e^(ln(stakeRatio/feeRatio))` if feeRatio > stakeRatio
 | 
					        // `e^(alpa * ln(stakeRatio/feeRatio))` if feeRatio > stakeRatio
 | 
				
			||||||
        int256 n = feeRatio <= stakeRatio ?
 | 
					        int256 n = feeRatio <= stakeRatio ?
 | 
				
			||||||
            LibFixedMath.div(feeRatio, stakeRatio) :
 | 
					            LibFixedMath.div(feeRatio, stakeRatio) :
 | 
				
			||||||
            LibFixedMath.div(stakeRatio, feeRatio);
 | 
					            LibFixedMath.div(stakeRatio, feeRatio);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -162,8 +162,7 @@ contract MixinCumulativeRewards is
 | 
				
			|||||||
        internal
 | 
					        internal
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        // Check if we should do any work
 | 
					        // Check if we should do any work
 | 
				
			||||||
        uint256 currentMostRecentEpoch =
 | 
					        uint256 currentMostRecentEpoch = _cumulativeRewardsByPoolLastStored[poolId];
 | 
				
			||||||
            _cumulativeRewardsByPoolLastStored[poolId];
 | 
					 | 
				
			||||||
        if (epoch == currentMostRecentEpoch) {
 | 
					        if (epoch == currentMostRecentEpoch) {
 | 
				
			||||||
            return;
 | 
					            return;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -81,8 +81,7 @@ contract MixinStakingPoolRewards is
 | 
				
			|||||||
        // rewards.
 | 
					        // rewards.
 | 
				
			||||||
        IStructs.Pool memory pool = _poolById[poolId];
 | 
					        IStructs.Pool memory pool = _poolById[poolId];
 | 
				
			||||||
        // Get any unfinalized rewards.
 | 
					        // Get any unfinalized rewards.
 | 
				
			||||||
        (uint256 unfinalizedTotalRewards, uint256 unfinalizedMembersStake) =
 | 
					        (uint256 unfinalizedTotalRewards, uint256 unfinalizedMembersStake) = _getUnfinalizedPoolRewards(poolId);
 | 
				
			||||||
            _getUnfinalizedPoolRewards(poolId);
 | 
					 | 
				
			||||||
        // Get the operators' portion.
 | 
					        // Get the operators' portion.
 | 
				
			||||||
        (reward,) = _computeSplitStakingPoolRewards(
 | 
					        (reward,) = _computeSplitStakingPoolRewards(
 | 
				
			||||||
            pool.operatorShare,
 | 
					            pool.operatorShare,
 | 
				
			||||||
@@ -203,21 +202,18 @@ contract MixinStakingPoolRewards is
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        // Fetch the last epoch at which we stored an entry for this pool;
 | 
					        // Fetch the last epoch at which we stored an entry for this pool;
 | 
				
			||||||
        // this is the most up-to-date cumulative rewards for this pool.
 | 
					        // this is the most up-to-date cumulative rewards for this pool.
 | 
				
			||||||
        IStructs.Fraction memory mostRecentCumulativeReward =
 | 
					        IStructs.Fraction memory mostRecentCumulativeReward = _getMostRecentCumulativeReward(poolId);
 | 
				
			||||||
            _getMostRecentCumulativeReward(poolId);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Compute new cumulative reward
 | 
					        // Compute new cumulative reward
 | 
				
			||||||
        IStructs.Fraction memory cumulativeReward;
 | 
					        IStructs.Fraction memory cumulativeReward;
 | 
				
			||||||
        (cumulativeReward.numerator, cumulativeReward.denominator) =
 | 
					        (cumulativeReward.numerator, cumulativeReward.denominator) = LibFractions.add(
 | 
				
			||||||
            LibFractions.add(
 | 
					 | 
				
			||||||
                mostRecentCumulativeReward.numerator,
 | 
					                mostRecentCumulativeReward.numerator,
 | 
				
			||||||
                mostRecentCumulativeReward.denominator,
 | 
					                mostRecentCumulativeReward.denominator,
 | 
				
			||||||
                membersReward,
 | 
					                membersReward,
 | 
				
			||||||
                membersStake
 | 
					                membersStake
 | 
				
			||||||
            );
 | 
					            );
 | 
				
			||||||
        // Normalize to prevent overflows.
 | 
					        // Normalize to prevent overflows.
 | 
				
			||||||
        (cumulativeReward.numerator, cumulativeReward.denominator) =
 | 
					        (cumulativeReward.numerator, cumulativeReward.denominator) = LibFractions.normalize(
 | 
				
			||||||
            LibFractions.normalize(
 | 
					 | 
				
			||||||
                cumulativeReward.numerator,
 | 
					                cumulativeReward.numerator,
 | 
				
			||||||
                cumulativeReward.denominator
 | 
					                cumulativeReward.denominator
 | 
				
			||||||
            );
 | 
					            );
 | 
				
			||||||
@@ -404,8 +400,7 @@ contract MixinStakingPoolRewards is
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        // Get the most recent cumulative reward, which will serve as a
 | 
					        // Get the most recent cumulative reward, which will serve as a
 | 
				
			||||||
        // reference point when updating dependencies
 | 
					        // reference point when updating dependencies
 | 
				
			||||||
        IStructs.Fraction memory mostRecentCumulativeReward =
 | 
					        IStructs.Fraction memory mostRecentCumulativeReward = _getMostRecentCumulativeReward(poolId);
 | 
				
			||||||
            _getMostRecentCumulativeReward(poolId);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Record dependency on current epoch.
 | 
					        // Record dependency on current epoch.
 | 
				
			||||||
        if (_delegatedStakeToPoolByOwner.currentEpochBalance != 0
 | 
					        if (_delegatedStakeToPoolByOwner.currentEpochBalance != 0
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -286,8 +286,7 @@ contract MixinFinalizer is
 | 
				
			|||||||
        // Clip the reward to always be under
 | 
					        // Clip the reward to always be under
 | 
				
			||||||
        // `rewardsAvailable - totalRewardsPaid`,
 | 
					        // `rewardsAvailable - totalRewardsPaid`,
 | 
				
			||||||
        // in case cobb-douglas overflows, which should be unlikely.
 | 
					        // in case cobb-douglas overflows, which should be unlikely.
 | 
				
			||||||
        uint256 rewardsRemaining =
 | 
					        uint256 rewardsRemaining = state.rewardsAvailable.safeSub(state.totalRewardsFinalized);
 | 
				
			||||||
            state.rewardsAvailable.safeSub(state.totalRewardsFinalized);
 | 
					 | 
				
			||||||
        if (rewardsRemaining < rewards) {
 | 
					        if (rewardsRemaining < rewards) {
 | 
				
			||||||
            rewards = rewardsRemaining;
 | 
					            rewards = rewardsRemaining;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -82,8 +82,7 @@ contract TestDelegatorRewards is
 | 
				
			|||||||
    )
 | 
					    )
 | 
				
			||||||
        external
 | 
					        external
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        unfinalizedPoolRewardsByEpoch[currentEpoch][poolId] =
 | 
					        unfinalizedPoolRewardsByEpoch[currentEpoch][poolId] = UnfinalizedPoolReward({
 | 
				
			||||||
            UnfinalizedPoolReward({
 | 
					 | 
				
			||||||
                operatorReward: operatorReward,
 | 
					                operatorReward: operatorReward,
 | 
				
			||||||
                membersReward: membersReward,
 | 
					                membersReward: membersReward,
 | 
				
			||||||
                membersStake: membersStake
 | 
					                membersStake: membersStake
 | 
				
			||||||
@@ -132,10 +131,8 @@ contract TestDelegatorRewards is
 | 
				
			|||||||
        external
 | 
					        external
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        _initGenesisCumulativeRewards(poolId);
 | 
					        _initGenesisCumulativeRewards(poolId);
 | 
				
			||||||
        IStructs.StoredBalance memory initialStake =
 | 
					        IStructs.StoredBalance memory initialStake = _delegatedStakeToPoolByOwner[delegator][poolId];
 | 
				
			||||||
            _delegatedStakeToPoolByOwner[delegator][poolId];
 | 
					        IStructs.StoredBalance storage _stake = _delegatedStakeToPoolByOwner[delegator][poolId];
 | 
				
			||||||
        IStructs.StoredBalance storage _stake =
 | 
					 | 
				
			||||||
            _delegatedStakeToPoolByOwner[delegator][poolId];
 | 
					 | 
				
			||||||
        _stake.isInitialized = true;
 | 
					        _stake.isInitialized = true;
 | 
				
			||||||
        _stake.currentEpochBalance += uint96(stake);
 | 
					        _stake.currentEpochBalance += uint96(stake);
 | 
				
			||||||
        _stake.nextEpochBalance += uint96(stake);
 | 
					        _stake.nextEpochBalance += uint96(stake);
 | 
				
			||||||
@@ -159,10 +156,8 @@ contract TestDelegatorRewards is
 | 
				
			|||||||
        external
 | 
					        external
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        _initGenesisCumulativeRewards(poolId);
 | 
					        _initGenesisCumulativeRewards(poolId);
 | 
				
			||||||
        IStructs.StoredBalance memory initialStake =
 | 
					        IStructs.StoredBalance memory initialStake = _delegatedStakeToPoolByOwner[delegator][poolId];
 | 
				
			||||||
            _delegatedStakeToPoolByOwner[delegator][poolId];
 | 
					        IStructs.StoredBalance storage _stake = _delegatedStakeToPoolByOwner[delegator][poolId];
 | 
				
			||||||
        IStructs.StoredBalance storage _stake =
 | 
					 | 
				
			||||||
            _delegatedStakeToPoolByOwner[delegator][poolId];
 | 
					 | 
				
			||||||
        if (_stake.currentEpoch < currentEpoch) {
 | 
					        if (_stake.currentEpoch < currentEpoch) {
 | 
				
			||||||
            _stake.currentEpochBalance = _stake.nextEpochBalance;
 | 
					            _stake.currentEpochBalance = _stake.nextEpochBalance;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@@ -188,10 +183,8 @@ contract TestDelegatorRewards is
 | 
				
			|||||||
        external
 | 
					        external
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        _initGenesisCumulativeRewards(poolId);
 | 
					        _initGenesisCumulativeRewards(poolId);
 | 
				
			||||||
        IStructs.StoredBalance memory initialStake =
 | 
					        IStructs.StoredBalance memory initialStake = _delegatedStakeToPoolByOwner[delegator][poolId];
 | 
				
			||||||
            _delegatedStakeToPoolByOwner[delegator][poolId];
 | 
					        IStructs.StoredBalance storage _stake = _delegatedStakeToPoolByOwner[delegator][poolId];
 | 
				
			||||||
        IStructs.StoredBalance storage _stake =
 | 
					 | 
				
			||||||
            _delegatedStakeToPoolByOwner[delegator][poolId];
 | 
					 | 
				
			||||||
        if (_stake.currentEpoch < currentEpoch) {
 | 
					        if (_stake.currentEpoch < currentEpoch) {
 | 
				
			||||||
            _stake.currentEpochBalance = _stake.nextEpochBalance;
 | 
					            _stake.currentEpochBalance = _stake.nextEpochBalance;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@@ -244,8 +237,7 @@ contract TestDelegatorRewards is
 | 
				
			|||||||
            uint256 membersStake
 | 
					            uint256 membersStake
 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        UnfinalizedPoolReward memory reward =
 | 
					        UnfinalizedPoolReward memory reward = unfinalizedPoolRewardsByEpoch[currentEpoch][poolId];
 | 
				
			||||||
            unfinalizedPoolRewardsByEpoch[currentEpoch][poolId];
 | 
					 | 
				
			||||||
        delete unfinalizedPoolRewardsByEpoch[currentEpoch][poolId];
 | 
					        delete unfinalizedPoolRewardsByEpoch[currentEpoch][poolId];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        _setOperatorShare(poolId, reward.operatorReward, reward.membersReward);
 | 
					        _setOperatorShare(poolId, reward.operatorReward, reward.membersReward);
 | 
				
			||||||
@@ -266,8 +258,7 @@ contract TestDelegatorRewards is
 | 
				
			|||||||
            uint256 membersStake
 | 
					            uint256 membersStake
 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        UnfinalizedPoolReward storage reward =
 | 
					        UnfinalizedPoolReward storage reward = unfinalizedPoolRewardsByEpoch[currentEpoch][poolId];
 | 
				
			||||||
            unfinalizedPoolRewardsByEpoch[currentEpoch][poolId];
 | 
					 | 
				
			||||||
        totalReward = reward.operatorReward + reward.membersReward;
 | 
					        totalReward = reward.operatorReward + reward.membersReward;
 | 
				
			||||||
        membersStake = reward.membersStake;
 | 
					        membersStake = reward.membersStake;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -77,8 +77,9 @@ contract TestFinalizer is
 | 
				
			|||||||
        external
 | 
					        external
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        require(feesCollected > 0, "FEES_MUST_BE_NONZERO");
 | 
					        require(feesCollected > 0, "FEES_MUST_BE_NONZERO");
 | 
				
			||||||
        mapping (bytes32 => IStructs.ActivePool) storage activePools =
 | 
					        mapping (bytes32 => IStructs.ActivePool) storage activePools = _getActivePoolsFromEpoch(
 | 
				
			||||||
            _getActivePoolsFromEpoch(currentEpoch);
 | 
					            currentEpoch
 | 
				
			||||||
 | 
					        );
 | 
				
			||||||
        IStructs.ActivePool memory pool = activePools[poolId];
 | 
					        IStructs.ActivePool memory pool = activePools[poolId];
 | 
				
			||||||
        require(pool.feesCollected == 0, "POOL_ALREADY_ADDED");
 | 
					        require(pool.feesCollected == 0, "POOL_ALREADY_ADDED");
 | 
				
			||||||
        _operatorSharesByPool[poolId] = operatorShare;
 | 
					        _operatorSharesByPool[poolId] = operatorShare;
 | 
				
			||||||
@@ -128,8 +129,9 @@ contract TestFinalizer is
 | 
				
			|||||||
        view
 | 
					        view
 | 
				
			||||||
        returns (UnfinalizedPoolReward memory reward)
 | 
					        returns (UnfinalizedPoolReward memory reward)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        (reward.totalReward, reward.membersStake) =
 | 
					        (reward.totalReward, reward.membersStake) = _getUnfinalizedPoolRewards(
 | 
				
			||||||
            _getUnfinalizedPoolRewards(poolId);
 | 
					            poolId
 | 
				
			||||||
 | 
					        );
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /// @dev Expose `_getActivePoolFromEpoch`.
 | 
					    /// @dev Expose `_getActivePoolFromEpoch`.
 | 
				
			||||||
@@ -151,8 +153,11 @@ contract TestFinalizer is
 | 
				
			|||||||
        returns (uint256 operatorReward, uint256 membersReward)
 | 
					        returns (uint256 operatorReward, uint256 membersReward)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        uint32 operatorShare = _operatorSharesByPool[poolId];
 | 
					        uint32 operatorShare = _operatorSharesByPool[poolId];
 | 
				
			||||||
        (operatorReward, membersReward) =
 | 
					        (operatorReward, membersReward) = _computeSplitStakingPoolRewards(
 | 
				
			||||||
            _computeSplitStakingPoolRewards(operatorShare, reward, membersStake);
 | 
					            operatorShare,
 | 
				
			||||||
 | 
					            reward,
 | 
				
			||||||
 | 
					            membersStake
 | 
				
			||||||
 | 
					        );
 | 
				
			||||||
        address(_operatorRewardsReceiver).transfer(operatorReward);
 | 
					        address(_operatorRewardsReceiver).transfer(operatorReward);
 | 
				
			||||||
        address(_membersRewardsReceiver).transfer(membersReward);
 | 
					        address(_membersRewardsReceiver).transfer(membersReward);
 | 
				
			||||||
        emit DepositStakingPoolRewards(poolId, reward, membersStake);
 | 
					        emit DepositStakingPoolRewards(poolId, reward, membersStake);
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user