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
token
address
Address of token
canDeposit
Returns the available deposit room for this strategy
Return Values
depositRoom
uint256
Amount that can be deposited
canWithdraw
Returns the available withdrawal room for this strategy
Return Values
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
totalFees
uint256
Amount of tokens to be paid as fees
getTotalDeposits
Returns the total amount of deposits in this strategy
Return Values
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
maxDeposits
uint256
Maximum token deposits
getMinDeposits
Returns the minimum amount of tokens that must remain in this strategy
Return Values
minDeposits
uint256
Minimum token deposits
checkUpkeep
Returns whether a new batch of vaults should be deployed
Return Values
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
depositChange
int256
Change in total token deposits
getVaults
Returns a list of all vaults
Return Values
vaults
address[]
List of vault addresses
getVaultDepositLimits
Returns the vault deposit limits
Return Values
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
vaultImplementation
address
Address of vault implementation contract
vaultDeploymentThreshold
Returns the minimum number of non-full vaults before a new batch is deployed
Return Values
vaultDeploymentThreshold
uint256
Vault deployment threshold
vaultDeploymentAmount
Returns the amount of vaults to deploy when threshold is met
Return Values
vaultDeploymentAmount
uint256
number of vaults
getFees
Returns a list of all fees
Return Values
fees
struct VaultControllerStrategy.Fee[]
List of fees
Write Functions
deposit
Deposits tokens from the staking pool into vaults
Parameters
_amount
uint256
Amount to deposit
_data
bytes
Encoded vault deposit order
withdraw
Withdraws tokens from vaults and sends them to the staking pool
Parameters
_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
_numVaults
uint256
Number of vaults to deploy
updateDeposits
Updates the total deposit amount for reward distribution and calculates applicable fees
Return Values
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
_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
_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
_withdrawalIndexes
uint64[]
list of withdrawal indexes for each vault group
addFee
Adds a new fee
Parameters
_receiver
address
Address of fee receiver
_feeBasisPoints
uint256
Fee in basis points
updateFee
Updates an existing fee
Parameters
_index
uint256
Index of fee
_receiver
address
Address of fee receiver
_feeBasisPoints
uint256
Fee in basis points
setVaultDeploymentParams
Sets the vault deployment parameters
Parameters
_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
_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
_maxDepositSizeBP
uint256
Maximum basis point deposit size
Last updated