AuraBalVault - Compounder
The AuraBalVault compounder is ERC4626 compatible
Stake auraBal into the AuraBalVault, which will automatically compound the rewards. The Vault earns three reward tokens: BAL, bb-a-USD, and AURA. BAL and bb-a-USD are sold in the market for auraBal, which is then re-stake. AURA added as an additional reward token that can be claimed.
AuraBalVault
Forked from llama.airforce
isHarvestPermissioned
bool isHarvestPermissioned
authorizedHarvesters
mapping(address => bool) authorizedHarvesters
constructor
constructor(address _token, address _virtualRewardFactory) public
setHarvestPermissions
function setHarvestPermissions(bool _status) external
Sets whether only whitelisted addresses can harvest
Parameters
_status
bool
Whether or not harvests are permissioned
updateAuthorizedHarvesters
function updateAuthorizedHarvesters(address _harvester, bool _authorized) external
Adds or remove an address from the harvesters' whitelist
Parameters
_harvester
address
address of the authorized harvester
_authorized
bool
Whether to add or remove harvester
harvest
function harvest(uint256 _minAmountOut) public
Claim rewards and swaps them to auraBAL for restaking
Parameters
_minAmountOut
uint256
- min amount of auraBAL to receive for harvest
harvest
function harvest() public
Claim rewards and swaps them to auraBAL for restaking
FeeForwarder
Forwards collected fees to Vault.
Forwarded
event Forwarded(address vault, address token, uint256 amount)
constructor
constructor(address _dao) public
Parameters
_dao
address
Address of DAO
forward
function forward(address vault, address token, uint256 amount) public
GenericUnionVault
withdrawalPenalty
uint256 withdrawalPenalty
MAX_WITHDRAWAL_PENALTY
uint256 MAX_WITHDRAWAL_PENALTY
FEE_DENOMINATOR
uint256 FEE_DENOMINATOR
underlying
address underlying
virtualRewardFactory
address virtualRewardFactory
strategy
address strategy
extraRewards
address[] extraRewards
isExtraReward
mapping(address => bool) isExtraReward
WithdrawalPenaltyUpdated
event WithdrawalPenaltyUpdated(uint256 _penalty)
Harvest
event Harvest(address _caller, uint256 _value)
CallerIncentiveUpdated
event CallerIncentiveUpdated(uint256 _incentive)
StrategySet
event StrategySet(address _strategy)
ExtraRewardAdded
event ExtraRewardAdded(address _reward, address extraReward)
ExtraRewardCleared
event ExtraRewardCleared(address _reward)
constructor
constructor(address _token, address _virtualRewardFactory) public
setWithdrawalPenalty
function setWithdrawalPenalty(uint256 _penalty) external
Updates the withdrawal penalty
Parameters
_penalty
uint256
- the amount of the new penalty (in BIPS)
setStrategy
function setStrategy(address _strategy) external
Set the address of the strategy contract
Parameters
_strategy
address
- address of the strategy contract
extraRewardsLength
function extraRewardsLength() external view returns (uint256)
Count of extra rewards
addExtraReward
function addExtraReward(address _reward) external returns (bool)
Add extra reward contract
Parameters
_reward
address
VirtualBalanceRewardPool address
Return Values
[0]
bool
bool success
clearExtraRewards
function clearExtraRewards() external
Clear extra rewards array
totalUnderlying
function totalUnderlying() public view returns (uint256 total)
Query the amount currently staked
Return Values
total
uint256
- the total amount of tokens staked
balanceOfUnderlying
function balanceOfUnderlying(address user) external view returns (uint256 amount)
Returns the amount of underlying a user can claim
Parameters
user
address
- address whose claimable amount to query
Return Values
amount
uint256
- claimable amount
deposit
function deposit(uint256 _amount, address _receiver) public returns (uint256 _shares)
Deposit user funds in the autocompounder and mints tokens representing user's share of the pool in exchange
Parameters
_amount
uint256
- the amount of underlying to deposit
_receiver
address
Return Values
_shares
uint256
- the amount of shares issued
redeem
function redeem(uint256 _shares, address _receiver, address _owner) public returns (uint256 withdrawn)
Unstake underlying token in proportion to the amount of shares sent
Parameters
_shares
uint256
- the number of shares sent
_receiver
address
_owner
address
Return Values
withdrawn
uint256
- the amount of underlying returned to the user
harvest
function harvest() public virtual
Claim rewards and swaps them to auraBAL for restaking
asset
function asset() public view returns (address)
The address of the underlying token used for the Vault for accounting, depositing, and withdrawing.
totalAssets
function totalAssets() public view returns (uint256)
Total amount of the underlying asset that is “managed” by Vault.
convertToShares
function convertToShares(uint256 _assets) public view returns (uint256)
The amount of shares that the Vault would exchange for the amount of assets provided, in an ideal scenario where all the conditions are met.
convertToAssets
function convertToAssets(uint256 _shares) public view returns (uint256)
The amount of assets that the Vault would exchange for the amount of shares provided, in an ideal scenario where all the conditions are met.
maxDeposit
function maxDeposit(address) public pure returns (uint256)
Maximum amount of the underlying asset that can be deposited into the Vault for the receiver, through a deposit call.
previewDeposit
function previewDeposit(uint256 _assets) public view returns (uint256)
Allows an on-chain or off-chain user to simulate the effects of their deposit at the current block, given current on-chain conditions.
maxMint
function maxMint(address) public pure returns (uint256)
Maximum amount of shares that can be minted from the Vault for the receiver, through a mint call.
previewMint
function previewMint(uint256 _shares) public view returns (uint256)
Allows an on-chain or off-chain user to simulate the effects of their mint at the current block, given current on-chain conditions.
mint
function mint(uint256 _shares, address _receiver) public returns (uint256)
Mints exactly shares Vault shares to receiver by depositing assets of underlying tokens.
maxWithdraw
function maxWithdraw(address _owner) public view returns (uint256)
Maximum amount of the underlying asset that can be withdrawn from the owner balance in the Vault, through a withdraw call.
previewWithdraw
function previewWithdraw(uint256 _assets) public view returns (uint256)
Allows an on-chain or off-chain user to simulate the effects of their withdrawal at the current block, given current on-chain conditions.
withdraw
function withdraw(uint256 _assets, address _receiver, address _owner) public returns (uint256)
Burns shares from owner and sends exactly assets of underlying tokens to receiver.
maxRedeem
function maxRedeem(address _owner) public view returns (uint256)
Maximum amount of Vault shares that can be redeemed from the owner balance in the Vault, through a redeem call.
previewRedeem
function previewRedeem(uint256 _shares) public view returns (uint256)
Allows an on-chain or off-chain user to simulate the effects of their redeemption at the current block, given current on-chain conditions.
AuraBalStrategy
vault
address vault
rewardTokens
address[] rewardTokens
rewardHandlers
mapping(address => address) rewardHandlers
FEE_DENOMINATOR
uint256 FEE_DENOMINATOR
constructor
constructor(address _vault, address _balVault, address _auraBalStaking, address _balToken, address _wethToken, address _auraToken, address _auraBalToken, address _bbusdToken, bytes32 _auraBalBalETHBptPoolId, bytes32 _balETHPoolId) public
setApprovals
function setApprovals() external
Set approvals for the contracts used when swapping & staking
addRewardToken
function addRewardToken(address _token, address _handler) external
Add a reward token and its handler
Parameters
_token
address
the reward token to add
_handler
address
address of the contract that will sell for BAL or ETH
updateRewardToken
function updateRewardToken(address _token, address _handler) external
Update the handler of a reward token
Parameters
_token
address
the reward token to add
_handler
address
address of the contract that will sell for BAL or ETH
totalRewardTokens
function totalRewardTokens() external view returns (uint256)
returns the number of reward tokens
Return Values
[0]
uint256
the number of reward tokens
totalUnderlying
function totalUnderlying() public view returns (uint256 total)
Query the amount currently staked
Return Values
total
uint256
- the total amount of tokens staked
stake
function stake(uint256 _amount) public
Deposits underlying tokens in the staking contract
withdraw
function withdraw(uint256 _amount) external
Withdraw a certain amount from the staking contract
Parameters
_amount
uint256
- the amount to withdraw
harvest
function harvest(uint256 _minAmountOut) public returns (uint256 harvested)
Claim rewards and swaps them to auraBAL for restaking
Parameters
_minAmountOut
uint256
- min amount of LP tokens to receive w/o revert
Return Values
harvested
uint256
- the amount harvested
AuraBalStrategyBase
BBUSD_TOKEN
address BBUSD_TOKEN
AURA_TOKEN
address AURA_TOKEN
AURABAL_TOKEN
address AURABAL_TOKEN
WETH_TOKEN
address WETH_TOKEN
BAL_TOKEN
address BAL_TOKEN
BAL_ETH_POOL_TOKEN
address BAL_ETH_POOL_TOKEN
auraBalStaking
contract IBasicRewards auraBalStaking
balVault
contract IBalancerVault balVault
constructor
constructor(address _balVault, address _auraBalStaking, address _balToken, address _wethToken, address _auraToken, address _auraBalToken, address _bbusdToken, bytes32 _auraBalBalETHBptPoolId, bytes32 _balETHPoolId) public
BalancerSwapsHandler
SwapPath
struct SwapPath {
bytes32[] poolIds;
address[] assetsIn;
}
constructor
constructor(address _token, address _strategy, address _balVault, address _wethToken, struct BalancerSwapsHandler.SwapPath _swapPath) public
getSwapPath
function getSwapPath() external view returns (struct BalancerSwapsHandler.SwapPath)
setApprovals
function setApprovals() external
sell
function sell() external
HandlerBase
owner
address owner
pendingOwner
address pendingOwner
token
address token
strategy
address strategy
WETH_TOKEN
address WETH_TOKEN
balVault
contract IBalancerVault balVault
constructor
constructor(address _token, address _strategy, address _balVault, address _wethToken) public
setPendingOwner
function setPendingOwner(address _po) external
applyPendingOwner
function applyPendingOwner() external
rescueToken
function rescueToken(address _token, address _to) external
sell
function sell() external virtual
receive
receive() external payable
Last updated