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

cancelOwnershipTransfer

function cancelOwnershipTransfer() external nonpayable

Cancel current pending ownership transfer

cancelWeightUpdates

function cancelWeightUpdates() external nonpayable

Cancel the active weight update schedule.

Keep calculated weights from the schedule at the time.

claimGuardianFees

function claimGuardianFees() external nonpayable

Claim guardian fee.

This function shouldn't be called too frequently.

claimRewards

function claimRewards(IBMerkleOrchard.Claim[] claims, contract IERC20[] tokens) external nonpayable

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

deposit

function deposit(IProtocolAPI.TokenValue[] tokenWithAmount) external nonpayable

Deposit tokens into vault.

It calls updateWeights() function which cancels current active weights change schedule.

Parameters

depositIfBalanceUnchanged

function depositIfBalanceUnchanged(IProtocolAPI.TokenValue[] tokenWithAmount) external nonpayable

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

description

function description() external view returns (string)

Describes vault purpose and modelling assumptions for differentiating between vaults

string cannot be immutable bytecode but only set in constructor

Returns

disableTrading

function disableTrading() external nonpayable

Disable swap.

enableTradingRiskingArbitrage

function enableTradingRiskingArbitrage() external nonpayable

Enable swap with current weights.

enableTradingWithWeights

function enableTradingWithWeights(IProtocolAPI.TokenValue[] tokenWithWeight) external nonpayable

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

finalize

function finalize() external nonpayable

Destroy vault and returns all funds to treasury owner.

finalized

function finalized() external view returns (bool)

Indicates that the Vault has been finalized

Returns

getHoldings

function getHoldings() external view returns (uint256[] amounts)

Underlying token balances.

Returns

getNormalizedWeights

function getNormalizedWeights() external view returns (uint256[])

Get token weights.

Returns

getSwapFee

function getSwapFee() external view returns (uint256)

Get swap fee.

Divide by 10**18 for decimal representation

Returns

getTokens

function getTokens() external view returns (contract IERC20[] tokens)

Get IERC20 Tokens Balancer Pool.

Returns

getTokensData

function getTokensData() external view returns (contract IERC20[], uint256[], uint256)

Get Token Data of Balancer Pool.

Returns

holding

function holding(uint256 index) external view returns (uint256)

Balance of token with given index.

Parameters

Returns

initialDeposit

function initialDeposit(IProtocolAPI.TokenValue[] tokenWithAmount) external nonpayable

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

initialized

function initialized() external view returns (bool)

Indicates that the Vault has been initialized

Returns

initiateFinalization

function initiateFinalization() external nonpayable

Initiate vault destruction and return all funds to treasury owner.

isSwapEnabled

function isSwapEnabled() external view returns (bool)

Check if vault trading is enabled.

Returns

lastFeeCheckpoint

function lastFeeCheckpoint() external view returns (uint256)

Last timestamp where guardian fee index was locked.

Returns

lastSwapFeeCheckpoint

function lastSwapFeeCheckpoint() external view returns (uint256)

Last timestamp where swap fee was updated.

Returns

managementFee

function managementFee() external view returns (uint256)

Management fee earned proportion per second.

10**18 is 100%

Returns

guardian

function guardian() external view returns (address)

Controls vault parameters.

Returns

guardianFee

function guardiansFee(address, uint256) external view returns (uint256)

Fee earned amount by current guardian and previous guardians.

Parameters

Returns

guardiansFeeTotal

function guardiansFeeTotal(uint256) external view returns (uint256)

Total guardian fee earned amount

Parameters

Returns

merkleOrchard

function merkleOrchard() external view returns (contract IBMerkleOrchard)

Balancer Merkle Orchard.

Returns

noticePeriod

function noticePeriod() external view returns (uint256)

Notice period for vault termination (in seconds).

Returns

noticeTimeoutAt

function noticeTimeoutAt() external view returns (uint256)

Timestamp when notice elapses or 0 if not yet set

Returns

owner

function owner() external view returns (address)

Returns the address of the current owner.

Returns

pendingOwner

function pendingOwner() external view returns (address)

Pending account to accept ownership of vault.

Returns

pool

function pool() external view returns (contract IBManagedPool)

Balancer Managed Pool.

Returns

poolController

function poolController() external view returns (contract IBManagedPoolController)

Balancer Managed Pool Controller.

Returns

poolId

function poolId() external view returns (bytes32)

Pool ID of Balancer pool on Vault.

Returns

renounceOwnership

function renounceOwnership() external nonpayable

Disable ownership renounceable

setGuardian

function setGuardian(address newGuardian) external nonpayable

Change guardian.

Parameters

setSwapFee

function setSwapFee(uint256 newSwapFee) external nonpayable

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

sweep

function sweep(address token, uint256 amount) external nonpayable

Withdraw any tokens accidentally sent to vault.

Parameters

transferOwnership

function transferOwnership(address newOwner) external nonpayable

Offer ownership to another address

It disables immediate transfer of ownership

Parameters

updateWeightsGradually

function updateWeightsGradually(IProtocolAPI.TokenValue[] tokenWithWeight, uint256 startTime, uint256 endTime) external nonpayable

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

validator

function validator() external view returns (contract IWithdrawalValidator)

Verifies withdraw limits.

Returns

withdraw

function withdraw(IProtocolAPI.TokenValue[] tokenWithAmount) external nonpayable

Withdraw tokens up to requested amounts.

It calls updateWeights() function which cancels current active weights change schedule.

Parameters

withdrawIfBalanceUnchanged

function withdrawIfBalanceUnchanged(IProtocolAPI.TokenValue[] tokenWithAmount) external nonpayable

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

Events

CancelWeightUpdates

event CancelWeightUpdates(uint256[] weights)

Emitted when cancelWeightUpdates is called.

Parameters

Created

event Created(address indexed factory, string name, string symbol, contract IERC20[] tokens, uint256[] weights, uint256 swapFeePercentage, address indexed guardian, address indexed validator, uint256 noticePeriod, uint256 managementFee, address merkleOrchard, string description)

Emitted when the vault is created.

Parameters

Deposit

event Deposit(uint256[] requestedAmounts, uint256[] amounts, uint256[] weights)

Emitted when tokens are deposited.

Parameters

DistributeGuardianFees

event DistributeGuardianFees(address indexed guardian, uint256[] amounts)

Emitted when management fees are withdrawn.

Parameters

EnabledTradingWithWeights

event EnabledTradingWithWeights(uint256 time, uint256[] weights)

Emitted when enableTradingWithWeights is called.

Parameters

FinalizationInitiated

event FinalizationInitiated(uint256 noticeTimeoutAt)

Emitted when initiateFinalization is called.

Parameters

Finalized

event Finalized(address indexed caller, uint256[] amounts)

Emitted when vault is finalized.

Parameters

GuardianChanged

event GuardianChanged(address indexed previousGuardian, address indexed guardian)

Emitted when guardian is changed.

Parameters

OwnershipTransferCanceled

event OwnershipTransferCanceled(address indexed currentOwner, address indexed canceledOwner)

Emitted when cancelOwnershipTransfer is called.

Parameters

OwnershipTransferOffered

event OwnershipTransferOffered(address indexed currentOwner, address indexed pendingOwner)

Emitted when transferOwnership is called.

Parameters

OwnershipTransferred

event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)

Parameters

SetSwapEnabled

event SetSwapEnabled(bool swapEnabled)

Emitted when swap is enabled/disabled.

Parameters

SetSwapFee

event SetSwapFee(uint256 swapFee)

Emitted when swap fee is updated.

Parameters

UpdateWeightsGradually

event UpdateWeightsGradually(uint256 startTime, uint256 endTime, uint256[] weights)

Emitted when updateWeightsGradually is called.

Parameters

Withdraw

event Withdraw(uint256[] requestedAmounts, uint256[] amounts, uint256[] allowances, uint256[] weights)

Emitted when tokens are withdrawn.

Parameters

Errors

Aera__AmountExceedAvailable

error Aera__AmountExceedAvailable(address token, uint256 amount, uint256 available)

Parameters

Aera__AmountIsBelowMin

error Aera__AmountIsBelowMin(uint256 actual, uint256 min)

Parameters

Aera__BalanceChangedInCurrentBlock

error Aera__BalanceChangedInCurrentBlock()

Aera__CallerIsNotGuardian

error Aera__CallerIsNotGuardian()

Aera__CallerIsNotOwnerOrGuardian

error Aera__CallerIsNotOwnerOrGuardian()

Aera__CannotSetSwapFeeBeforeCooldown

error Aera__CannotSetSwapFeeBeforeCooldown()

Aera__CannotSweepPoolToken

error Aera__CannotSweepPoolToken()

Aera__DescriptionIsEmpty

error Aera__DescriptionIsEmpty()

Aera__DifferentTokensInPosition

error Aera__DifferentTokensInPosition(address actual, address sortedToken, uint256 index)

Parameters

Aera__FinalizationNotInitiated

error Aera__FinalizationNotInitiated()

Aera__ManagementFeeIsAboveMax

error Aera__ManagementFeeIsAboveMax(uint256 actual, uint256 max)

Parameters

Aera__GuardianIsOwner

error Aera__GuardianIsOwner(address newGuardian)

Parameters

Aera__GuardianIsZeroAddress

error Aera__GuardianIsZeroAddress()

Aera__NoAvailableFeeForCaller

error Aera__NoAvailableFeeForCaller(address caller)

Parameters

Aera__NoPendingOwnershipTransfer

error Aera__NoPendingOwnershipTransfer()

Aera__NotPendingOwner

error Aera__NotPendingOwner()

Aera__NoticePeriodIsAboveMax

error Aera__NoticePeriodIsAboveMax(uint256 actual, uint256 max)

Parameters

Aera__NoticeTimeoutNotElapsed

error Aera__NoticeTimeoutNotElapsed(uint256 noticeTimeoutAt)

Parameters

Aera__OwnerIsZeroAddress

error Aera__OwnerIsZeroAddress()

Aera__PoolSwapIsAlreadyEnabled

error Aera__PoolSwapIsAlreadyEnabled()

Aera__SwapFeePercentageChangeIsAboveMax

error Aera__SwapFeePercentageChangeIsAboveMax(uint256 actual, uint256 max)

Parameters

Aera__ValidatorIsNotMatched

error Aera__ValidatorIsNotMatched(uint256 numTokens, uint256 numAllowances)

Parameters

Aera__ValidatorIsNotValid

error Aera__ValidatorIsNotValid(address validator)

Parameters

Aera__ValueLengthIsNotSame

error Aera__ValueLengthIsNotSame(uint256 numTokens, uint256 numValues)

ERRORS ///

Parameters

Aera__VaultIsAlreadyFinalized

error Aera__VaultIsAlreadyFinalized()

Aera__VaultIsAlreadyInitialized

error Aera__VaultIsAlreadyInitialized()

Aera__VaultIsFinalizing

error Aera__VaultIsFinalizing()

Aera__VaultIsNotRenounceable

error Aera__VaultIsNotRenounceable()

Aera__VaultNotInitialized

error Aera__VaultNotInitialized()

Aera__WeightChangeDurationIsBelowMin

error Aera__WeightChangeDurationIsBelowMin(uint256 actual, uint256 min)

Parameters

Aera__WeightChangeEndBeforeStart

error Aera__WeightChangeEndBeforeStart()

Aera__WeightChangeEndTimeIsAboveMax

error Aera__WeightChangeEndTimeIsAboveMax(uint256 actual, uint256 max)

Parameters

Aera__WeightChangeRatioIsAboveMax

error Aera__WeightChangeRatioIsAboveMax(address token, uint256 actual, uint256 max)

Parameters

Aera__WeightChangeStartTimeIsAboveMax

error Aera__WeightChangeStartTimeIsAboveMax(uint256 actual, uint256 max)

Parameters

Aera__WeightIsAboveMax

error Aera__WeightIsAboveMax(uint256 actual, uint256 max)

Parameters

Aera__WeightIsBelowMin

error Aera__WeightIsBelowMin(uint256 actual, uint256 min)

Parameters

Last updated