Skip to main content

BalancedCurator

Git Source ↗

Inherits: ISubVaultsCurator

Defines the functionality for evenly managing assets in sub-vaults.

Structs

Deposit

Struct for storing deposit data

struct Deposit {
address vault;
uint256 assets;
}

Properties

NameTypeDescription
vaultaddressThe address of the vault
assetsuint256The amount of assets to deposit

ExitRequest

Struct for storing exit request data

struct ExitRequest {
address vault;
uint256 assets;
}

Properties

NameTypeDescription
vaultaddressThe address of the vault
assetsuint256The amount of assets to exit

Functions

getDeposits

Function to get the deposits to the sub-vaults

function getDeposits(uint256 assetsToDeposit, address[] calldata subVaults, address ejectingVault)
external
pure
override
returns (Deposit[] memory deposits);

Parameters

NameTypeDescription
assetsToDeposituint256The amount of assets to deposit
subVaultsaddress[]The addresses of the sub-vaults
ejectingVaultaddressThe address of the sub-vault that is currently ejecting. Should be zero if none.

Returns

NameTypeDescription
depositsDeposit[]An array of Deposit structs containing the vault addresses and the amounts to deposit

getExitRequests

Function to get the exit requests to the sub-vaults

function getExitRequests(
uint256 assetsToExit,
address[] calldata subVaults,
uint256[] memory balances,
address ejectingVault
) external pure override returns (ExitRequest[] memory exitRequests);

Parameters

NameTypeDescription
assetsToExituint256The amount of assets to exit
subVaultsaddress[]The addresses of the sub-vaults
balancesuint256[]The balances of the sub-vaults
ejectingVaultaddressThe address of the sub-vault that is currently ejecting. Should be zero if none.

Returns

NameTypeDescription
exitRequestsExitRequest[]An array of ExitRequest structs containing the vault addresses and the amounts to exit