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

NameTypeDescription

_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

NameTypeDescription

_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

NameTypeDescription

_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

NameTypeDescription

_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

NameTypeDescription

_penalty

uint256

- the amount of the new penalty (in BIPS)

setStrategy

function setStrategy(address _strategy) external

Set the address of the strategy contract

Parameters

NameTypeDescription

_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

NameTypeDescription

_reward

address

VirtualBalanceRewardPool address

Return Values

NameTypeDescription

[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

NameTypeDescription

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

NameTypeDescription

user

address

- address whose claimable amount to query

Return Values

NameTypeDescription

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

NameTypeDescription

_amount

uint256

- the amount of underlying to deposit

_receiver

address

Return Values

NameTypeDescription

_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

NameTypeDescription

_shares

uint256

- the number of shares sent

_receiver

address

_owner

address

Return Values

NameTypeDescription

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

NameTypeDescription

_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

NameTypeDescription

_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

NameTypeDescription

[0]

uint256

the number of reward tokens

totalUnderlying

function totalUnderlying() public view returns (uint256 total)

Query the amount currently staked

Return Values

NameTypeDescription

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

NameTypeDescription

_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

NameTypeDescription

_minAmountOut

uint256

- min amount of LP tokens to receive w/o revert

Return Values

NameTypeDescription

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