Shprd
Search
⌃K
💎

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

function getConstantProps() external view virtual returns (VLib.ConstantProps memory)
Returns the Constant properties of the vault.
Refer to the VLib's data structure for more information

getHistoryProps

function getHistoryProps() external view virtual returns (VLib.HistoryProps memory)
Returns the History properties of the vault.
Refer to the VLib's data structure for more information

getConfigProps

function getConfigProps() external view virtual returns (VLib.ConfigProps memory)
Returns the Config properties of the vault.
Refer to the VLib's data structure for more information

getFeesProps

function getFeesProps() external view virtual returns (VLib.FeesProps memory)
Returns the Fees properties of the vault.
Refer to the VLib's data structure for more information

getSecurityProps

function getSecurityProps() external view virtual returns (VLib.SecurityProps memory)
Returns the Security properties of the vault.
Refer to the VLib's data structure for more information

tokensLength

function tokensLength() public view virtual returns (uint256)
Returns the number of different tokens in the vault.
Return Value:
Type
Description
uint256
number of different assets in the vault

getLatestPrice

function getLatestPrice(address _priceFeed) public view virtual returns (uint256)
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

function getVaultBalances() public view virtual returns (uint256[] memory balances)
Returns the balances of each assets of the vault.
Return Value:
Name
Type
Description
balances
uint256[]
balances of vault assets

getVaultStatus

function getVaultStatus()
public
view
returns (
uint256[] memory positions,
uint256 vvl,
uint256 sharePrice
)
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

function getManagementFees() public view returns (uint256 toMint, uint256 sharePrice)
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

function 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

function deposit(uint256 _baseTokenAmountIn, bytes[] calldata _swapTxs) external
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

function redeem(uint256 _amountIn, bytes[] calldata _swapTxs) external
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

function redeemEach(uint256 _amountIn) external
Redeems each parts of the assets in proportion to the shares burned.
Call Parameters:
Name
Type
Description
_amountIn
uint256
shares amount to redeem

redeemForced

function redeemForced(address _user, uint256 _amountIn) external
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

function rebalance(uint256[] memory _signals, bytes[] calldata _swapTxs) external
Rebalances the vault.
This method can only be called by address with STRATEGIST_ROLE.
Call Parameters:
Text
Type
Description
_signals
uint256
vault in [BTC ETH] signal in bps : [3000, 7000]
_swapTxs
bytes[]
payload to interact with paraswap's contracts

harvestManagementFees

function harvestManagementFees() external
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

function harvestPerformanceFees() external
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

function approveForSwap(uint256[] memory _amounts) public
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

function addVaultAsset(address _token) external
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

function setShareTransferability(bool _status) external
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

function setConfigProps(VLib.ConfigProps memory _configProps) public
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

function setSecurityProps(VLib.SecurityProps memory _securityProps) public
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

function setFeesProps(VLib.FeesProps memory _feesProps) public
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 modified 5mo ago