Community VCS
CommunityVCS
is a staking strategy that manages many CommunityVault
contracts by tracking the balance of each and moving tokens in and out of them.
View Functions
token
Returns the token this strategy supports
Return Values
Name | Type | Description |
---|---|---|
token | address | Address of token |
canDeposit
Returns the available deposit room for this strategy
Return Values
Name | Type | Description |
---|---|---|
depositRoom | uint256 | Amount that can be deposited |
canWithdraw
Returns the available withdrawal room for this strategy
Return Values
Name | Type | Description |
---|---|---|
withdrawalRoom | uint256 | Amount that can be withdrawn |
pendingFees
Returns the total amount of fees that will be paid on the next call to updateDeposits
Return Values
Name | Type | Description |
---|---|---|
totalFees | uint256 | Amount of tokens to be paid as fees |
getTotalDeposits
Returns the total amount of deposits in this strategy
Return Values
Name | Type | Description |
---|---|---|
totalDeposits | uint256 | Total amount of tokens deposited |
getMaxDeposits
Returns the maximum amount of tokens this strategy can hold
Accounts for total current deposits + current additional vault space + current space in the Chainlink
Return Values
Name | Type | Description |
---|---|---|
maxDeposits | uint256 | Maximum token deposits |
getMinDeposits
Returns the minimum amount of tokens that must remain in this strategy
Return Values
Name | Type | Description |
---|---|---|
minDeposits | uint256 | Minimum token deposits |
checkUpkeep
Returns whether a new batch of vaults should be deployed
Return Values
Name | Type | Description |
---|---|---|
upkeepNeeded | bool | Whether a new batch of vaults should be deployed |
getDepositChange
Returns the deposit change since the last call to updateDeposits
(ignores stakes/withdraws)
Return Values
Name | Type | Description |
---|---|---|
depositChange | int256 | Change in total token deposits |
getVaults
Returns a list of all vaults
Return Values
Name | Type | Description |
---|---|---|
vaults | address[] | List of vault addresses |
getVaultDepositLimits
Returns the vault deposit limits
Return Values
Name | Type | Description |
---|---|---|
minDeposits | uint256 | minimum amount of deposits that a vault can hold |
maxDeposits | uint256 | maximum amount of deposits that a vault can hold |
vaultImplementation
Returns the address of the vault implementation contract this strategy will use for new vaults
Return Values
Name | Type | Description |
---|---|---|
vaultImplementation | address | Address of vault implementation contract |
vaultDeploymentThreshold
Returns the minimum number of non-full vaults before a new batch is deployed
Return Values
Name | Type | Description |
---|---|---|
vaultDeploymentThreshold | uint256 | Vault deployment threshold |
vaultDeploymentAmount
Returns the amount of vaults to deploy when threshold is met
Return Values
Name | Type | Description |
---|---|---|
vaultDeploymentAmount | uint256 | number of vaults |
getFees
Returns a list of all fees
Return Values
Name | Type | Description |
---|---|---|
fees | struct VaultControllerStrategy.Fee[] | List of fees |
Write Functions
deposit
Deposits tokens from the staking pool into vaults
Parameters
Name | Type | Description |
---|---|---|
_amount | uint256 | Amount to deposit |
_data | bytes | Encoded vault deposit order |
withdraw
Withdraws tokens from vaults and sends them to the staking pool
Parameters
Name | Type | Description |
---|---|---|
_amount | uint256 | Amount to withdraw |
_data | bytes | Encoded vault withdrawal order |
performUpkeep
Deploys a new batch of vaults
addVaults
Deploys a new batch of vaults
Parameters
Name | Type | Description |
---|---|---|
_numVaults | uint256 | Number of vaults to deploy |
updateDeposits
Updates the total deposit amount for reward distribution and calculates applicable fees
Return Values
Name | Type | Description |
---|---|---|
receivers | address[] | List of fee receivers |
amounts | uint256[] | List of fee amounts |
updateVaultGroups
Executes a vault group update
Re-unbonds all vaults in the current vault group and increments the current vault group
Parameters
Name | Type | Description |
---|---|---|
_curGroupVaultsToUnbond | uint256[] | list of vaults to unbond in current vault group |
_curGroupTotalDepositRoom | uint256[] | total deposit room across all vaults in current vault group |
_nextGroup | uint256[] | index of next vault group |
_nextGroupTotalUnbonded | uint256[] | total unbonded across all vaults in next vault group |
upgradeVaults
Upgrades vaults to a new implementation contract
Parameters
Name | Type | Description |
---|---|---|
_startIndex | uint256 | Index of first vault to upgrade |
_numVaults | uint256 | Number of vaults to upgrade starting at _startIndex |
_data | bytes | Optional encoded function call to be executed after upgrade |
setWithdrawalIndexes
Manually sets the withdrawal index for each vault group
Parameters
Name | Type | Description |
---|---|---|
_withdrawalIndexes | uint64[] | list of withdrawal indexes for each vault group |
addFee
Adds a new fee
Parameters
Name | Type | Description |
---|---|---|
_receiver | address | Address of fee receiver |
_feeBasisPoints | uint256 | Fee in basis points |
updateFee
Updates an existing fee
Parameters
Name | Type | Description |
---|---|---|
_index | uint256 | Index of fee |
_receiver | address | Address of fee receiver |
_feeBasisPoints | uint256 | Fee in basis points |
setVaultDeploymentParams
Sets the vault deployment parameters
Parameters
Name | Type | Description |
---|---|---|
_vaultDeploymentThreshold | uint256 | Minimum number of non-full vaults before a new batch is deployed |
_vaultDeploymentAmount_ | uint256 | Amount of vaults to deploy when threshold is met |
setVaultImplementation
Sets a new vault implementation contract to be used when deploying/upgrading vaults
Parameters
Name | Type | Description |
---|---|---|
_vaultImplementation | address | Address of implementation contract |
setMaxDepositSizeBP
Sets the basis point amount of the remaing deposit room in the Chainlink staking contract that can be deposited at once
Parameters
Name | Type | Description |
---|---|---|
_maxDepositSizeBP | uint256 | Maximum basis point deposit size |
Last updated