💎Vault

Vault contract is used to protect funds and perform swaps.

Types

ActionType

enum ActionType {
    DEPOSIT,
    REBALANCE,
    REDEEM
}

SwapDataExecution

struct SwapDataExecution {
    ActionType action;
    bytes[] swapTxs;
    uint256[] tokenBalancesBefore;
    uint256[] currentPositions;
    uint256 shareOrBaseTokenAmount;
    uint256 totalShareSupply;
}
Name
Type
Description

swapTxs

bytes[]

swap data transaction

tokenBalancesBefore

uint256[]

list of vault asset balances before the swap

currentPositions

uint256[]

list of vault positions

shareOrBaseTokenAmount

uint256

share or base token amount swapped

totalShareSupply

uint256

total supply of shares

View Methods

getConstantProps

Returns the Constant properties of the vault.

Refer to the VLib's data structure for more information

getHistoryProps

Returns the History properties of the vault.

Refer to the VLib's data structure for more information

getConfigProps

Returns the Config properties of the vault.

Refer to the VLib's data structure for more information

getFeesProps

Returns the Fees properties of the vault.

Refer to the VLib's data structure for more information

getSecurityProps

Returns the Security properties of the vault.

Refer to the VLib's data structure for more information

tokensLength

Returns the number of different tokens in the vault.

Return Value:

Type
Description

uint256

number of different assets in the vault

getLatestPrice

Returns the last price of a chainlink price feed.

Call Parameters:

Name
Type
Description

_priceFeed

address

address of the price feed

Return Value:

Type
Description

uint256

last price of the price feed

getVaultBalances

Returns the balances of each assets of the vault.

Return Value:

Name
Type
Description

balances

uint256[]

balances of vault assets

getVaultStatus

Returns the status of the vault.

Return Values:

Name
Type
Description

positions

uint256[]

vault's position

vvl

uint256

vault's valorization in USD

sharePrice

uint256

price of one vault's share

getManagementFees

Returns the amount of management fees to harvest.

Return Values:

Name
Type
Description

toMint

uint256

amount of shares to mint

sharePrice

uint256

share price

getPerformanceFees

Returns the amount of performance fees to harvest.

Return Values:

Name
Type
Description

toMint

uint256

amount of shares to mint

sharePrice

uint256

share price

Write Methods

deposit

Deposits an amount of base token in the vault.

Call Parameters:

Name
Type
Description

_baseTokenAmountIn

uint256

amount to deposit

_swapTxs

bytes[]

payload to interact with paraswap's contracts

redeem

Redeems an amount from the vault and receive in the same currency as deposit.

Call Parameters:

Name
Type
Description

_amountIn

uint256

amount to redeem

_swapTxs

bytes[]

payload to interact with paraswap's contracts

redeemEach

Redeems each parts of the assets in proportion to the shares burned.

Call Parameters:

Name
Type
Description

_amountIn

uint256

shares amount to redeem

redeemForced

Redeems each parts of the assets in proportion to the shares burned to a user.

This method can only be called by address with DEFAULT_ADMIN_ROLE.

Call Parameters:

Name
Type
Description

_user

address

address of the user

_amountIn

uint256

shares amount to redeem

rebalance

Rebalances the vault.

This method can only be called by address with STRATEGIST_ROLE.

Call Parameters:

Type
Description

_signals

uint256

vault in [BTC ETH] signal in bps : [3000, 7000]

_swapTxs

bytes[]

payload to interact with paraswap's contracts

harvestManagementFees

Mints share in proportion of management fees, based on current fees ratio and last withdraw timestamp.

This method can only be called by address with STRATEGIST_ROLE.

harvestPerformanceFees

Mints share in proportion of performance fees, based on current fees ratio and last withdraw timestamp.

This method can only be called by address with STRATEGIST_ROLE.

approveForSwap

Modifies approvals for assets managed by the vault.

This method can only be called by address with DEFAULT_ADMIN_ROLE.

Call Parameters:

Name
Type
Description

_amounts

uint256[]

amounts to approve

addVaultAsset

Adds a new asset to the vault.

This method can only be called by address with STRATEGIST_ROLE.

Call Parameters:

Name
Type
Description

_token

address

address of the token to add

setShareTransferability

Settles the new share transferability status.

This method can only be called by address with DEFAULT_ADMIN_ROLE.

Call Parameters:

Name
Type
Description

_status

bool

true if the share is transferable

setConfigProps

Settles ConfigProps.

Refer to the VLib's data structure for more information. Only callable by the admin.

This method can only be called by address with DEFAULT_ADMIN_ROLE.

setSecurityProps

Settles SecurityProps.

Refer to the VLib's data structure for more information.

This method can only be called by address with DEFAULT_ADMIN_ROLE.

setFeesProps

Settles FeesProps.

Refer to the VLib's data structure for more information

This method can only be called by address with DEFAULT_ADMIN_ROLE.

Last updated