Skip to content

Commit

Permalink
chore: add new minter controller for balancer (#66)
Browse files Browse the repository at this point in the history
* chore: add new minter controller for balancer

* chore: update aura controller and deployment
  • Loading branch information
r0ohafza authored Jul 5, 2023
1 parent aefd073 commit 63dad72
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 27 deletions.
38 changes: 20 additions & 18 deletions docs/deployment.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,25 @@
### Arbitrum Deployment Addresses

---
ControllerFacade: [0xe7128748A9d70fb48af14F8e6907C5aA8415F065](https://arbiscan.io/address/0xe7128748A9d70fb48af14F8e6907C5aA8415F065)
BaseController: [0x947e74f019A47EcccB8d81e802EC92D1364Ed278](https://arbiscan.io/address/0x947e74f019A47EcccB8d81e802EC92D1364Ed278)
0x/TransformController: [0xFac8859851677074a3F029c44a3cB88ED94e825f](https://arbiscan.io/address/0xFac8859851677074a3F029c44a3cB88ED94e825f)
aave/AaveV3Controller: [0xC44f3ae3950efb7735C179714D133BA62bE7BDec](https://arbiscan.io/address/0xC44f3ae3950efb7735C179714D133BA62bE7BDec)
aave/AaveEthController: [0xc04b6ecA0400001d112f23714B6b4136381DC16B](https://arbiscan.io/address/0xc04b6ecA0400001d112f23714B6b4136381DC16B)
balancer/BalancerController: [0xC243f6e368ac321Ccce360E8BAaa7525e4b1BDD9](https://arbiscan.io/address/0xC243f6e368ac321Ccce360E8BAaa7525e4b1BDD9)
balancer/BalancerLPStakingController: [0x2aD380c9c480cffEd54C24F8E9eeC3a701d0fFE0](https://arbiscan.io/address/0x2aD380c9c480cffEd54C24F8E9eeC3a701d0fFE0)
convex/BoosterController: [0x30aedA69AB89402193933C82Df418b419BB645f2](https://arbiscan.io/address/0x30aedA69AB89402193933C82Df418b419BB645f2)
convex/RewardController: [0x9b4c4B2EAde35CE2Ab0bC3Fb97Ac81E3Dba3B5B2](https://arbiscan.io/address/0x9b4c4B2EAde35CE2Ab0bC3Fb97Ac81E3Dba3B5B2)
curve/CurveCryptoSwapController: [0x3Ec0e77eAECE115e8c253614028815beAE7B6ff4](https://arbiscan.io/address/0x3Ec0e77eAECE115e8c253614028815beAE7B6ff4)
curve/CurveLPStakingController: [0xa20528fB3545c269691dbEbAa971eE42852BEb71](https://arbiscan.io/address/0xa20528fB3545c269691dbEbAa971eE42852BEb71)
curve/CurveMinterController: [0x05F685b113f9b79F5044b030b8280BD93F1e9E23](https://arbiscan.io/address/0x05F685b113f9b79F5044b030b8280BD93F1e9E23)
curve/StableSwap2PoolController: [0xfCC9Ea8bBbBd2dCB558931B189027e42EeF7e9D8](https://arbiscan.io/address/0xfCC9Ea8bBbBd2dCB558931B189027e42EeF7e9D8)
gmx/RewardRouterController: [0x48b7CB0489F0aeD4E0D48f34b38851cF54c5b9AF](https://arbiscan.io/address/0x48b7CB0489F0aeD4E0D48f34b38851cF54c5b9AF)
gmx/RewardRouterV2Controller: [0x3e1C3E175eba948eb74a68C2f946678A863550CE](https://arbiscan.io/address/0x3e1C3E175eba948eb74a68C2f946678A863550CE)
uniswap/UniV2Controller: [0x6Df0b4F7E3056d52Fff8D9d3B5E45b4E29ee7Bfd](https://arbiscan.io/address/0x6Df0b4F7E3056d52Fff8D9d3B5E45b4E29ee7Bfd)
uniswap/UniV3Controller: [0x4f0da4c622C07D126c87fD3fA9B93Bf5721f9edB](https://arbiscan.io/address/0x4f0da4c622C07D126c87fD3fA9B93Bf5721f9edB)
weth/WethController: [0x697cfba173537f9C59FeE745Bbd8A4A28F5381cc](https://arbiscan.io/address/0x697cfba173537f9C59FeE745Bbd8A4A28F5381cc)
ControllerFacade: [0xe7128748A9d70fb48af14F8e6907C5aA8415F065](https://arbiscan.io/address/0xe7128748A9d70fb48af14F8e6907C5aA8415F065)\
BaseController: [0x947e74f019A47EcccB8d81e802EC92D1364Ed278](https://arbiscan.io/address/0x947e74f019A47EcccB8d81e802EC92D1364Ed278)\
0x/TransformController: [0xFac8859851677074a3F029c44a3cB88ED94e825f](https://arbiscan.io/address/0xFac8859851677074a3F029c44a3cB88ED94e825f)\
aave/AaveV3Controller: [0xC44f3ae3950efb7735C179714D133BA62bE7BDec](https://arbiscan.io/address/0xC44f3ae3950efb7735C179714D133BA62bE7BDec)\
aave/AaveEthController: [0xc04b6ecA0400001d112f23714B6b4136381DC16B](https://arbiscan.io/address/0xc04b6ecA0400001d112f23714B6b4136381DC16B)\
balancer/BalancerController: [0xC243f6e368ac321Ccce360E8BAaa7525e4b1BDD9](https://arbiscan.io/address/0xC243f6e368ac321Ccce360E8BAaa7525e4b1BDD9)\
balancer/BalancerLPStakingController: [0x2aD380c9c480cffEd54C24F8E9eeC3a701d0fFE0](https://arbiscan.io/address/0x2aD380c9c480cffEd54C24F8E9eeC3a701d0fFE0)\
convex/BoosterController: [0x30aedA69AB89402193933C82Df418b419BB645f2](https://arbiscan.io/address/0x30aedA69AB89402193933C82Df418b419BB645f2)\
convex/RewardController: [0x9b4c4B2EAde35CE2Ab0bC3Fb97Ac81E3Dba3B5B2](https://arbiscan.io/address/0x9b4c4B2EAde35CE2Ab0bC3Fb97Ac81E3Dba3B5B2)\
curve/CurveCryptoSwapController: [0x3Ec0e77eAECE115e8c253614028815beAE7B6ff4](https://arbiscan.io/address/0x3Ec0e77eAECE115e8c253614028815beAE7B6ff4)\
curve/CurveLPStakingController: [0xa20528fB3545c269691dbEbAa971eE42852BEb71](https://arbiscan.io/address/0xa20528fB3545c269691dbEbAa971eE42852BEb71)\
curve/CurveMinterController: [0x05F685b113f9b79F5044b030b8280BD93F1e9E23](https://arbiscan.io/address/0x05F685b113f9b79F5044b030b8280BD93F1e9E23)\
curve/CurveMinterController(for Balancer): [0xD2664D856b455733B49d5F33702e4F4d8cDfAe75](https://arbiscan.io/address/0xD2664D856b455733B49d5F33702e4F4d8cDfAe75)\
curve/StableSwap2PoolController: [0xfCC9Ea8bBbBd2dCB558931B189027e42EeF7e9D8](https://arbiscan.io/address/0xfCC9Ea8bBbBd2dCB558931B189027e42EeF7e9D8)\
gmx/RewardRouterController: [0x48b7CB0489F0aeD4E0D48f34b38851cF54c5b9AF](https://arbiscan.io/address/0x48b7CB0489F0aeD4E0D48f34b38851cF54c5b9AF)\
gmx/RewardRouterV2Controller: [0x3e1C3E175eba948eb74a68C2f946678A863550CE](https://arbiscan.io/address/0x3e1C3E175eba948eb74a68C2f946678A863550CE)\
uniswap/UniV2Controller: [0x6Df0b4F7E3056d52Fff8D9d3B5E45b4E29ee7Bfd](https://arbiscan.io/address/0x6Df0b4F7E3056d52Fff8D9d3B5E45b4E29ee7Bfd)\
uniswap/UniV3Controller: [0x4f0da4c622C07D126c87fD3fA9B93Bf5721f9edB](https://arbiscan.io/address/0x4f0da4c622C07D126c87fD3fA9B93Bf5721f9edB)\
weth/WethController: [0x697cfba173537f9C59FeE745Bbd8A4A28F5381cc](https://arbiscan.io/address/0x697cfba173537f9C59FeE745Bbd8A4A28F5381cc)\
aura/RewardPoolController: [0x2AB248C6A51261ef86BB99fa0C210B097349d628](https://arbiscan.io/address/0x2AB248C6A51261ef86BB99fa0C210B097349d628)\

---
6 changes: 6 additions & 0 deletions src/aura/IStashToken.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;

interface IStashToken {
function baseToken() external view returns (address);
}
7 changes: 5 additions & 2 deletions src/aura/RewardPoolController.sol
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import {IController} from "../core/IController.sol";
import {IERC4626} from "../erc4626/IERC4626.sol";
import {IRewards} from "./IRewards.sol";
import {IBooster} from "./IBooster.sol";
import {IStashToken} from "./IStashToken.sol";

/**
* @title Aura reward pool controller
Expand All @@ -29,6 +30,8 @@ contract RewardPoolController is IController {
/// @notice getReward()
bytes4 constant GET_REWARD = 0x3d18b912;

address public immutable AURA = 0x1509706a6c66CA549ff0cB464de88231DDBe213B;

/* -------------------------------------------------------------------------- */
/* PUBLIC FUNCTIONS */
/* -------------------------------------------------------------------------- */
Expand Down Expand Up @@ -80,10 +83,10 @@ contract RewardPoolController is IController {
uint256 rewardLength = IRewards(target).extraRewardsLength();
address[] memory tokensIn = new address[](rewardLength + 2);
for (uint256 i = 0; i < rewardLength; i++) {
tokensIn[i] = IRewards(IRewards(target).extraRewards(i)).rewardToken();
tokensIn[i] = IStashToken(IRewards(IRewards(target).extraRewards(i)).rewardToken()).baseToken();
}
tokensIn[rewardLength] = IRewards(target).rewardToken();
tokensIn[rewardLength + 1] = IBooster(IRewards(target).operator()).minter();
tokensIn[rewardLength + 1] = AURA;
return (true, tokensIn, new address[](0));
}
}
14 changes: 7 additions & 7 deletions src/tests/AuraRewardPoolController.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@ import {RewardPoolController} from "../aura/RewardPoolController.sol";
import {IERC4626} from "../erc4626/IERC4626.sol";
import {IRewards} from "../aura/IRewards.sol";

contract TestRewardPoolControllerMainnet is TestBase {
contract TestRewardPoolControllerArbi is TestBase {
RewardPoolController rewardPoolController;

address target = 0xe4683Fe8F53da14cA5DAc4251EaDFb3aa614d528;
address BAL = 0xba100000625a3754423978a60c9317c58a424e3D;
address LDO = 0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32;
address AURA = 0xC0c293ce456fF0ED870ADd98a0828Dd4d2903DBF;
address target = 0x49e998899FF11598182918098588E8b90d7f60D3;
address BAL = 0x040d1EdC9569d4Bab2D15287Dc5A4F10F56a56B8;
address ARB = 0x912CE59144191C1204E64559FE8253a0e49E6548;
address AURA = 0x1509706a6c66CA549ff0cB464de88231DDBe213B;

function setUp() public override {
super.setUp();
Expand Down Expand Up @@ -90,7 +90,7 @@ contract TestRewardPoolControllerMainnet is TestBase {

function testCanGetRewards() public {
// Setup
controllerFacade.toggleTokenAllowance(LDO);
controllerFacade.toggleTokenAllowance(ARB);
controllerFacade.toggleTokenAllowance(BAL);
controllerFacade.toggleTokenAllowance(AURA);

Expand All @@ -103,7 +103,7 @@ contract TestRewardPoolControllerMainnet is TestBase {
// Assert
assertTrue(canCall);
assertEq(tokensOut.length, 0);
assertEq(tokensIn[0], LDO);
assertEq(tokensIn[0], ARB);
assertEq(tokensIn[1], BAL);
assertEq(tokensIn[2], AURA);
assertEq(tokensIn.length, 3);
Expand Down

0 comments on commit 63dad72

Please sign in to comment.