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

function acceptOwnership() external nonpayable

Accept ownership

bVault

function bVault() external view returns (contract IBVault)

Balancer Vault.

Returns

Name
Type
Description

_0

contract IBVault

undefined

cancelOwnershipTransfer

function cancelOwnershipTransfer() external nonpayable

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 indexed

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 indexed

address

Vault guardian address.

validator indexed

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 indexed

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 indexed

address

Address of finalizer.

amounts

uint256[]

Returned token amounts.

GuardianChanged

Emitted when guardian is changed.

Parameters

Name
Type
Description

previousGuardianindexed

address

Previous guardian address.

guardian indexed

address

New guardian address.

OwnershipTransferCanceled

Emitted when cancelOwnershipTransfer is called.

Parameters

Name
Type
Description

currentOwner indexed

address

Address of current owner.

canceledOwner indexed

address

Address of canceled owner.

OwnershipTransferOffered

Emitted when transferOwnership is called.

Parameters

Name
Type
Description

currentOwner indexed

address

Address of current owner.

pendingOwner indexed

address

Address of pending owner.

OwnershipTransferred

Parameters

Name
Type
Description

previousOwner indexed

address

undefined

newOwner indexed

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