From a7aa7feff44c7fa9a3ade97662a5feabd805bc0c Mon Sep 17 00:00:00 2001 From: Amir Bandeali Date: Tue, 24 Sep 2019 09:08:21 -0700 Subject: [PATCH] Remove getAvailableRewardsBalance public function, make wethReservedForPoolRewards public --- .../contracts/src/fees/MixinExchangeFees.sol | 14 -------------- .../contracts/src/immutable/MixinStorage.sol | 2 +- .../src/staking_pools/MixinStakingPoolRewards.sol | 4 ++-- .../staking/contracts/src/sys/MixinFinalizer.sol | 2 +- contracts/staking/test/actors/finalizer_actor.ts | 2 +- contracts/staking/test/utils/api_wrapper.ts | 11 +++++++---- 6 files changed, 12 insertions(+), 23 deletions(-) diff --git a/contracts/staking/contracts/src/fees/MixinExchangeFees.sol b/contracts/staking/contracts/src/fees/MixinExchangeFees.sol index c302e7599d..21661ee15e 100644 --- a/contracts/staking/contracts/src/fees/MixinExchangeFees.sol +++ b/contracts/staking/contracts/src/fees/MixinExchangeFees.sol @@ -124,20 +124,6 @@ contract MixinExchangeFees is activePoolsThisEpoch[poolId] = pool; } - /// @dev Returns the total balance of this contract, including WETH, - /// minus any WETH that has been reserved for rewards. - /// @return totalBalance Total balance. - function getAvailableRewardsBalance() - external - view - returns (uint256 totalBalance) - { - totalBalance = address(this).balance.safeAdd( - _getAvailableWethBalance() - ); - return totalBalance; - } - /// @dev Get information on an active staking pool in this epoch. /// @param poolId Pool Id to query. /// @return pool ActivePool struct. diff --git a/contracts/staking/contracts/src/immutable/MixinStorage.sol b/contracts/staking/contracts/src/immutable/MixinStorage.sol index 256e49460a..958b8e2c28 100644 --- a/contracts/staking/contracts/src/immutable/MixinStorage.sol +++ b/contracts/staking/contracts/src/immutable/MixinStorage.sol @@ -147,7 +147,7 @@ contract MixinStorage is IStructs.UnfinalizedState public unfinalizedState; /// @dev The WETH balance of this contract that is reserved for pool reward payouts. - uint256 internal _wethReservedForPoolRewards; + uint256 public wethReservedForPoolRewards; /// @dev Adds owner as an authorized address. constructor() diff --git a/contracts/staking/contracts/src/staking_pools/MixinStakingPoolRewards.sol b/contracts/staking/contracts/src/staking_pools/MixinStakingPoolRewards.sol index 4d66736b28..36f44e9a9f 100644 --- a/contracts/staking/contracts/src/staking_pools/MixinStakingPoolRewards.sol +++ b/contracts/staking/contracts/src/staking_pools/MixinStakingPoolRewards.sol @@ -435,7 +435,7 @@ contract MixinStakingPoolRewards is private { rewardsByPoolId[poolId] = rewardsByPoolId[poolId].safeAdd(amount); - _wethReservedForPoolRewards = _wethReservedForPoolRewards.safeAdd(amount); + wethReservedForPoolRewards = wethReservedForPoolRewards.safeAdd(amount); } /// @dev Decreases rewards for a pool. @@ -445,6 +445,6 @@ contract MixinStakingPoolRewards is private { rewardsByPoolId[poolId] = rewardsByPoolId[poolId].safeSub(amount); - _wethReservedForPoolRewards = _wethReservedForPoolRewards.safeSub(amount); + wethReservedForPoolRewards = wethReservedForPoolRewards.safeSub(amount); } } diff --git a/contracts/staking/contracts/src/sys/MixinFinalizer.sol b/contracts/staking/contracts/src/sys/MixinFinalizer.sol index 8d511f14e3..bc3a6dd9df 100644 --- a/contracts/staking/contracts/src/sys/MixinFinalizer.sol +++ b/contracts/staking/contracts/src/sys/MixinFinalizer.sol @@ -257,7 +257,7 @@ contract MixinFinalizer is returns (uint256 wethBalance) { wethBalance = _getWethContract().balanceOf(address(this)) - .safeSub(_wethReservedForPoolRewards); + .safeSub(wethReservedForPoolRewards); return wethBalance; } diff --git a/contracts/staking/test/actors/finalizer_actor.ts b/contracts/staking/test/actors/finalizer_actor.ts index 744b4802b2..36dcd237f5 100644 --- a/contracts/staking/test/actors/finalizer_actor.ts +++ b/contracts/staking/test/actors/finalizer_actor.ts @@ -241,7 +241,7 @@ export class FinalizerActor extends BaseActor { this._stakingApiWrapper.stakingContract.getActiveStakingPoolThisEpoch.callAsync(poolId), ), ); - const totalRewards = await this._stakingApiWrapper.stakingContract.getAvailableRewardsBalance.callAsync(); + const totalRewards = await this._stakingApiWrapper.utils.getAvailableRewardsBalanceAsync(); const totalFeesCollected = BigNumber.sum(...activePools.map(p => p.feesCollected)); const totalWeightedStake = BigNumber.sum(...activePools.map(p => p.weightedStake)); if (totalRewards.eq(0) || totalFeesCollected.eq(0) || totalWeightedStake.eq(0)) { diff --git a/contracts/staking/test/utils/api_wrapper.ts b/contracts/staking/test/utils/api_wrapper.ts index 94ac58c1e1..c1f6b5a829 100644 --- a/contracts/staking/test/utils/api_wrapper.ts +++ b/contracts/staking/test/utils/api_wrapper.ts @@ -122,10 +122,13 @@ export class StakingApiWrapper { ); }, - getEthAndWethBalanceOfAsync: async (address: string): Promise => { - const ethBalance = await this._web3Wrapper.getBalanceInWeiAsync(address); - const wethBalance = await this.wethContract.balanceOf.callAsync(address); - return BigNumber.sum(ethBalance, wethBalance); + getAvailableRewardsBalanceAsync: async (): Promise => { + const [ethBalance, wethBalance, reservedRewards] = await Promise.all([ + this._web3Wrapper.getBalanceInWeiAsync(this.stakingProxyContract.address), + this.wethContract.balanceOf.callAsync(this.stakingProxyContract.address), + this.stakingContract.wethReservedForPoolRewards.callAsync(), + ]); + return BigNumber.sum(ethBalance, wethBalance).minus(reservedRewards); }, getParamsAsync: async (): Promise => {