AeraVaultV1
API Documentation for `AeraVaultV1.sol` contract
AeraVaultV1
Risk-managed treasury vault.
Managed n-asset vault that supports withdrawals in line with a pre-defined validator contract.
Vault owner is the asset owner.
Methods
acceptOwnership
Accept ownership
bVault
Balancer Vault.
Returns
Name | Type | Description |
---|---|---|
_0 | contract IBVault | undefined |
cancelOwnershipTransfer
Cancel current pending ownership transfer
cancelWeightUpdates
Cancel the active weight update schedule.
Keep calculated weights from the schedule at the time.
claimGuardianFees
Claim guardian fee.
This function shouldn't be called too frequently.
claimRewards
Claim Balancer rewards.
It calls claimDistributions() function of Balancer MerkleOrchard. Once this function is called, the tokens will be transferred to the Vault and it can be distributed via sweep function.
Parameters
Name | Type | Description |
---|---|---|
claims | IBMerkleOrchard.Claim[] | An array of claims provided as a claim struct. See https://docs.balancer.fi/products/merkle-orchard/claiming-tokens#claiming-from-the-contract-directly. |
tokens | contract IERC20[] | An array consisting of tokens to be claimed. |
deposit
Deposit tokens into vault.
It calls updateWeights() function which cancels current active weights change schedule.
Parameters
Name | Type | Description |
---|---|---|
tokenWithAmount | IProtocolAPI.TokenValue[] | Deposit tokens with amount. |
depositIfBalanceUnchanged
Deposit tokens into vault.
It calls updateWeights() function which cancels current active weights change schedule. It reverts if balances were updated in the current block.
Parameters
Name | Type | Description |
---|---|---|
tokenWithAmount | IProtocolAPI.TokenValue[] | Deposit token with amount. |
description
Describes vault purpose and modelling assumptions for differentiating between vaults
string cannot be immutable bytecode but only set in constructor
Returns
Name | Type | Description |
---|---|---|
_0 | string | undefined |
disableTrading
Disable swap.
enableTradingRiskingArbitrage
Enable swap with current weights.
enableTradingWithWeights
Enable swap with updating weights.
These are checked by Balancer in internal transactions: If weight length and token length match. If total sum of weights is one. If weight is greater than minimum.
Parameters
Name | Type | Description |
---|---|---|
tokenWithWeight | IProtocolAPI.TokenValue[] | Tokens with new weights. |
finalize
Destroy vault and returns all funds to treasury owner.
finalized
Indicates that the Vault has been finalized
Returns
Name | Type | Description |
---|---|---|
_0 | bool | undefined |
getHoldings
Underlying token balances.
Returns
Name | Type | Description |
---|---|---|
amounts | uint256[] | Token balances in underlying pool |
getNormalizedWeights
Get token weights.
Returns
Name | Type | Description |
---|---|---|
_0 | uint256[] | Normalized weights of tokens on Balancer pool. |
getSwapFee
Get swap fee.
Divide by 10**18 for decimal representation
Returns
Name | Type | Description |
---|---|---|
_0 | uint256 | Swap fee from underlying Balancer pool. |
getTokens
Get IERC20 Tokens Balancer Pool.
Returns
Name | Type | Description |
---|---|---|
tokens | contract IERC20[] | IERC20 tokens of Balancer pool. |
getTokensData
Get Token Data of Balancer Pool.
Returns
Name | Type | Description |
---|---|---|
_0 | contract IERC20[] | IERC20 tokens of Balancer pool. |
_1 | uint256[] | Balances of tokens of Balancer pool. |
_2 | uint256 | Last updated Blocknumber. |
holding
Balance of token with given index.
Parameters
Name | Type | Description |
---|---|---|
index | uint256 | undefined |
Returns
Name | Type | Description |
---|---|---|
_0 | uint256 | Token balance in underlying pool. |
initialDeposit
Initialize Vault with first deposit.
Initial deposit must be performed before calling withdraw() or deposit() functions. It enables trading, so weights and balances should be in line with market spot prices, otherwise there is a significant risk of arbitrage. This is checked by Balancer in internal transactions: If token amount is not zero when join pool.
Parameters
Name | Type | Description |
---|---|---|
tokenWithAmount | IProtocolAPI.TokenValue[] | Deposit tokens with amount. |
initialized
Indicates that the Vault has been initialized
Returns
Name | Type | Description |
---|---|---|
_0 | bool | undefined |
initiateFinalization
Initiate vault destruction and return all funds to treasury owner.
isSwapEnabled
Check if vault trading is enabled.
Returns
Name | Type | Description |
---|---|---|
_0 | bool | If public swap is turned on, returns true, otherwise false. |
lastFeeCheckpoint
Last timestamp where guardian fee index was locked.
Returns
Name | Type | Description |
---|---|---|
_0 | uint256 | undefined |
lastSwapFeeCheckpoint
Last timestamp where swap fee was updated.
Returns
Name | Type | Description |
---|---|---|
_0 | uint256 | undefined |
managementFee
Management fee earned proportion per second.
10**18 is 100%
Returns
Name | Type | Description |
---|---|---|
_0 | uint256 | undefined |
guardian
Controls vault parameters.
Returns
Name | Type | Description |
---|---|---|
_0 | address | undefined |
guardianFee
Fee earned amount by current guardian and previous guardians.
Parameters
Name | Type | Description |
---|---|---|
_0 | address | undefined |
_1 | uint256 | undefined |
Returns
Name | Type | Description |
---|---|---|
_0 | uint256 | undefined |
guardiansFeeTotal
Total guardian fee earned amount
Parameters
Name | Type | Description |
---|---|---|
_0 | uint256 | undefined |
Returns
Name | Type | Description |
---|---|---|
_0 | uint256 | undefined |
merkleOrchard
Balancer Merkle Orchard.
Returns
Name | Type | Description |
---|---|---|
_0 | contract IBMerkleOrchard | undefined |
noticePeriod
Notice period for vault termination (in seconds).
Returns
Name | Type | Description |
---|---|---|
_0 | uint256 | undefined |
noticeTimeoutAt
Timestamp when notice elapses or 0 if not yet set
Returns
Name | Type | Description |
---|---|---|
_0 | uint256 | undefined |
owner
Returns the address of the current owner.
Returns
Name | Type | Description |
---|---|---|
_0 | address | undefined |
pendingOwner
Pending account to accept ownership of vault.
Returns
Name | Type | Description |
---|---|---|
_0 | address | undefined |
pool
Balancer Managed Pool.
Returns
Name | Type | Description |
---|---|---|
_0 | contract IBManagedPool | undefined |
poolController
Balancer Managed Pool Controller.
Returns
Name | Type | Description |
---|---|---|
_0 | contract IBManagedPoolController | undefined |
poolId
Pool ID of Balancer pool on Vault.
Returns
Name | Type | Description |
---|---|---|
_0 | bytes32 | undefined |
renounceOwnership
Disable ownership renounceable
setGuardian
Change guardian.
Parameters
Name | Type | Description |
---|---|---|
newGuardian | address | undefined |
setSwapFee
Change swap fee.
These are checked by Balancer in internal transactions: If new swap fee is less than maximum. If new swap fee is greater than minimum.
Parameters
Name | Type | Description |
---|---|---|
newSwapFee | uint256 | undefined |
sweep
Withdraw any tokens accidentally sent to vault.
Parameters
Name | Type | Description |
---|---|---|
token | address | undefined |
amount | uint256 | undefined |
transferOwnership
Offer ownership to another address
It disables immediate transfer of ownership
Parameters
Name | Type | Description |
---|---|---|
newOwner | address | undefined |
updateWeightsGradually
Initiate weight move to target in given update window.
These are checked by Balancer in internal transactions: If target weight length and token length match. If total sum of target weights is one. If target weight is greater than minimum.
Parameters
Name | Type | Description |
---|---|---|
tokenWithWeight | IProtocolAPI.TokenValue[] | Tokens with target weights. |
startTime | uint256 | Timestamp at which weight movement should start. |
endTime | uint256 | Timestamp at which the weights should reach target values. |
validator
Verifies withdraw limits.
Returns
Name | Type | Description |
---|---|---|
_0 | contract IWithdrawalValidator | undefined |
withdraw
Withdraw tokens up to requested amounts.
It calls updateWeights() function which cancels current active weights change schedule.
Parameters
Name | Type | Description |
---|---|---|
tokenWithAmount | IProtocolAPI.TokenValue[] | Requested tokens with amount. |
withdrawIfBalanceUnchanged
Withdraw tokens up to requested amounts.
It calls updateWeights() function which cancels current active weights change schedule. It reverts if balances were updated in the current block.
Parameters
Name | Type | Description |
---|---|---|
tokenWithAmount | IProtocolAPI.TokenValue[] | Requested tokens with amount. |
Events
CancelWeightUpdates
Emitted when cancelWeightUpdates is called.
Parameters
Name | Type | Description |
---|---|---|
weights | uint256[] | Current weights of tokens. |
Created
Emitted when the vault is created.
Parameters
Name | Type | Description |
---|---|---|
factory | address | Balancer Managed Pool factory address. |
name | string | Name of Pool Token. |
symbol | string | Symbol of Pool Token. |
tokens | contract IERC20[] | Token addresses. |
weights | uint256[] | Token weights. |
swapFeePercentage | uint256 | Pool swap fee. |
guardian | address | Vault guardian address. |
validator | address | Withdrawal validator contract address. |
noticePeriod | uint256 | Notice period (in seconds). |
managementFee | uint256 | Management fee earned proportion per second. |
merkleOrchard | address | Merkle Orchard address. |
description | string | Vault description. |
Deposit
Emitted when tokens are deposited.
Parameters
Name | Type | Description |
---|---|---|
requestedAmounts | uint256[] | Requested amounts to deposit. |
amounts | uint256[] | Deposited amounts. |
weights | uint256[] | Token weights following deposit. |
DistributeGuardianFees
Emitted when management fees are withdrawn.
Parameters
Name | Type | Description |
---|---|---|
guardian | address | Guardian address. |
amounts | uint256[] | Withdrawn amounts. |
EnabledTradingWithWeights
Emitted when enableTradingWithWeights is called.
Parameters
Name | Type | Description |
---|---|---|
time | uint256 | timestamp of updates. |
weights | uint256[] | Target weights of tokens. |
FinalizationInitiated
Emitted when initiateFinalization is called.
Parameters
Name | Type | Description |
---|---|---|
noticeTimeoutAt | uint256 | Timestamp for notice timeout. |
Finalized
Emitted when vault is finalized.
Parameters
Name | Type | Description |
---|---|---|
caller | address | Address of finalizer. |
amounts | uint256[] | Returned token amounts. |
GuardianChanged
Emitted when guardian is changed.
Parameters
Name | Type | Description |
---|---|---|
previousGuardian | address | Previous guardian address. |
guardian | address | New guardian address. |
OwnershipTransferCanceled
Emitted when cancelOwnershipTransfer is called.
Parameters
Name | Type | Description |
---|---|---|
currentOwner | address | Address of current owner. |
canceledOwner | address | Address of canceled owner. |
OwnershipTransferOffered
Emitted when transferOwnership is called.
Parameters
Name | Type | Description |
---|---|---|
currentOwner | address | Address of current owner. |
pendingOwner | address | Address of pending owner. |
OwnershipTransferred
Parameters
Name | Type | Description |
---|---|---|
previousOwner | address | undefined |
newOwner | address | undefined |
SetSwapEnabled
Emitted when swap is enabled/disabled.
Parameters
Name | Type | Description |
---|---|---|
swapEnabled | bool | New state of swap. |
SetSwapFee
Emitted when swap fee is updated.
Parameters
Name | Type | Description |
---|---|---|
swapFee | uint256 | New swap fee. |
UpdateWeightsGradually
Emitted when updateWeightsGradually is called.
Parameters
Name | Type | Description |
---|---|---|
startTime | uint256 | Start timestamp of updates. |
endTime | uint256 | End timestamp of updates. |
weights | uint256[] | Target weights of tokens. |
Withdraw
Emitted when tokens are withdrawn.
Parameters
Name | Type | Description |
---|---|---|
requestedAmounts | uint256[] | Requested amounts to withdraw. |
amounts | uint256[] | Withdrawn amounts. |
allowances | uint256[] | Token withdrawal allowances. |
weights | uint256[] | Token weights following withdrawal. |
Errors
Aera__AmountExceedAvailable
Parameters
Name | Type | Description |
---|---|---|
token | address | undefined |
amount | uint256 | undefined |
available | uint256 | undefined |
Aera__AmountIsBelowMin
Parameters
Name | Type | Description |
---|---|---|
actual | uint256 | undefined |
min | uint256 | undefined |
Aera__BalanceChangedInCurrentBlock
Aera__CallerIsNotGuardian
Aera__CallerIsNotOwnerOrGuardian
Aera__CannotSetSwapFeeBeforeCooldown
Aera__CannotSweepPoolToken
Aera__DescriptionIsEmpty
Aera__DifferentTokensInPosition
Parameters
Name | Type | Description |
---|---|---|
actual | address | undefined |
sortedToken | address | undefined |
index | uint256 | undefined |
Aera__FinalizationNotInitiated
Aera__ManagementFeeIsAboveMax
Parameters
Name | Type | Description |
---|---|---|
actual | uint256 | undefined |
max | uint256 | undefined |
Aera__GuardianIsOwner
Parameters
Name | Type | Description |
---|---|---|
newGuardian | address | undefined |
Aera__GuardianIsZeroAddress
Aera__NoAvailableFeeForCaller
Parameters
Name | Type | Description |
---|---|---|
caller | address | undefined |
Aera__NoPendingOwnershipTransfer
Aera__NotPendingOwner
Aera__NoticePeriodIsAboveMax
Parameters
Name | Type | Description |
---|---|---|
actual | uint256 | undefined |
max | uint256 | undefined |
Aera__NoticeTimeoutNotElapsed
Parameters
Name | Type | Description |
---|---|---|
noticeTimeoutAt | uint256 | undefined |
Aera__OwnerIsZeroAddress
Aera__PoolSwapIsAlreadyEnabled
Aera__SwapFeePercentageChangeIsAboveMax
Parameters
Name | Type | Description |
---|---|---|
actual | uint256 | undefined |
max | uint256 | undefined |
Aera__ValidatorIsNotMatched
Parameters
Name | Type | Description |
---|---|---|
numTokens | uint256 | undefined |
numAllowances | uint256 | undefined |
Aera__ValidatorIsNotValid
Parameters
Name | Type | Description |
---|---|---|
validator | address | undefined |
Aera__ValueLengthIsNotSame
ERRORS ///
Parameters
Name | Type | Description |
---|---|---|
numTokens | uint256 | undefined |
numValues | uint256 | undefined |
Aera__VaultIsAlreadyFinalized
Aera__VaultIsAlreadyInitialized
Aera__VaultIsFinalizing
Aera__VaultIsNotRenounceable
Aera__VaultNotInitialized
Aera__WeightChangeDurationIsBelowMin
Parameters
Name | Type | Description |
---|---|---|
actual | uint256 | undefined |
min | uint256 | undefined |
Aera__WeightChangeEndBeforeStart
Aera__WeightChangeEndTimeIsAboveMax
Parameters
Name | Type | Description |
---|---|---|
actual | uint256 | undefined |
max | uint256 | undefined |
Aera__WeightChangeRatioIsAboveMax
Parameters
Name | Type | Description |
---|---|---|
token | address | undefined |
actual | uint256 | undefined |
max | uint256 | undefined |
Aera__WeightChangeStartTimeIsAboveMax
Parameters
Name | Type | Description |
---|---|---|
actual | uint256 | undefined |
max | uint256 | undefined |
Aera__WeightIsAboveMax
Parameters
Name | Type | Description |
---|---|---|
actual | uint256 | undefined |
max | uint256 | undefined |
Aera__WeightIsBelowMin
Parameters
Name | Type | Description |
---|---|---|
actual | uint256 | undefined |
min | uint256 | undefined |
Last updated