stake.link
  • 💡Introduction
  • 🤔FAQ
  • 🔒SDL Pool Contracts
    • SDL Pool
    • Linear Boost Controller
  • 🔧Core Staking Contracts
    • Staking Allowance
    • Staking Pool
    • Priority Pool
    • Withdrawal Pool
    • Wrapped SD Token
    • WrappedTokenBridge
    • Rebase Controller
  • 💧LST Rewards Splitter Contracts
    • LST Rewards Splitter Controller
    • LST Rewards Splitter
  • 🏆Rewards Pool Contracts
    • Rewards Pool
    • Rewards Pool WSD
  • ⛓️LINK Staking Contracts
    • Operator VCS
    • Operator Vault
    • Community VCS
    • Community Vault
    • Fund Flow Controller
    • Operator Staking Pool
  • 🔧POL Staking Contracts
    • Polygon Strategy
    • Polygon Vault
    • Polygon Fund Flow Controller
  • 📝Resources
    • Deployed Contracts
Powered by GitBook
On this page
  • View Functions
  • strategy
  • withdrawalPool
  • depositController
  • minTimeBetweenUnbonding
  • timeOfLastUnbond
  • canDepositQueuedTokens
  • shouldUnbondVaults
  • shouldWithdrawVaults
  • getVaultDeposits
  • getVaultRewards
  • getUnbondingVaults
  • getWithdrawableVaults
  • Write Functions
  • depositQueuedTokens
  • unbondVaults
  • forceUnbondVaults
  • withdrawVaults
  • restakeRewards
  • setDepositController
  • setMinTimeBetweenUnbonding
  1. POL Staking Contracts

Polygon Fund Flow Controller

PolygonFundFlowController manages deposits and withdrawals for Polygon staking vaults, including unbonding, restaking, and reward management. It coordinates with the strategy and withdrawal pool contracts and exposes functions for vault and reward state queries.

View Functions

strategy

Returns the address of the staking strategy contract.

function strategy() public view returns (address)
Name
Type
Description

strategy

address

Staking strategy address

withdrawalPool

Returns the address of the withdrawal pool contract.

function withdrawalPool() public view returns (address)
Name
Type
Description

withdrawalPool

address

Withdrawal pool address

depositController

Returns the address authorized to deposit queued tokens into vaults.

function depositController() public view returns (address)
Name
Type
Description

depositController

address

Deposit controller address

minTimeBetweenUnbonding

Returns the minimum number of seconds between unbonding calls.

function minTimeBetweenUnbonding() public view returns (uint64)
Name
Type
Description

minTimeBetweenUnbonding

uint64

Minimum seconds between unbonding

timeOfLastUnbond

Returns the time of the last unbonding call.

function timeOfLastUnbond() public view returns (uint64)
Name
Type
Description

timeOfLastUnbond

uint64

Time of last unbonding

canDepositQueuedTokens

Returns whether tokens can be deposited.

function canDepositQueuedTokens() external view returns (bool)

Return Values

Name
Type
Description

canDeposit

bool

true if deposit is allowed

shouldUnbondVaults

Returns whether vaults should be unbonded.

function shouldUnbondVaults() external view returns (bool)

Return Values

Name
Type
Description

shouldUnbond

bool

true if unbonding is needed

shouldWithdrawVaults

Returns whether vaults are unbonded and ready to be withdrawn from, and the list of withdrawable vaults.

function shouldWithdrawVaults() external view returns (bool, uint256[] memory)

Return Values

Name
Type
Description

canWithdraw

bool

true if withdrawal is possible

vaultIds

uint256[]

List of withdrawable vault IDs

getVaultDeposits

Returns a list of total deposits for all vaults.

function getVaultDeposits() external view returns (uint256[] memory)

Return Values

Name
Type
Description

deposits

uint256[]

List of vault deposits

getVaultRewards

Returns a list of unclaimed rewards for all vaults.

function getVaultRewards() external view returns (uint256[] memory)

Return Values

Name
Type
Description

rewards

uint256[]

List of vault rewards

getUnbondingVaults

Returns a list of currently unbonding vaults (excluding those queued for removal).

function getUnbondingVaults() external view returns (uint256[] memory)

Return Values

Name
Type
Description

vaultIds

uint256[]

List of unbonding vaults

getWithdrawableVaults

Returns a list of currently withdrawable vaults (excluding those queued for removal).

function getWithdrawableVaults() public view returns (uint256[] memory)

Return Values

Name
Type
Description

vaultIds

uint256[]

List of withdrawable vaults

Write Functions

depositQueuedTokens

Deposits queued tokens into vaults.

function depositQueuedTokens(uint256[] calldata _vaultIds, uint256[] calldata _amounts) external
Name
Type
Description

_vaultIds

uint256[]

List of vault IDs

_amounts

uint256[]

Amounts to deposit per vault

unbondVaults

Unbonds vaults if needed.

function unbondVaults() external

forceUnbondVaults

Unbonds vaults to rebalance deposits between vaults.

function forceUnbondVaults(uint256[] calldata _vaultIds, uint256[] calldata _amounts) external
Name
Type
Description

_vaultIds

uint256[]

List of vault IDs

_amounts

uint256[]

Amounts to unbond per vault

withdrawVaults

Withdraws from vaults and triggers withdrawal pool upkeep if needed.

function withdrawVaults(uint256[] calldata _vaultIds) external
Name
Type
Description

_vaultIds

uint256[]

List of vault IDs

restakeRewards

Restakes vault rewards for given vaults.

function restakeRewards(uint256[] calldata _vaultIds) external
Name
Type
Description

_vaultIds

uint256[]

List of vault IDs

setDepositController

Sets the address authorized to deposit queued tokens.

function setDepositController(address _depositController) external
Name
Type
Description

_depositController

address

Deposit controller address

setMinTimeBetweenUnbonding

Sets the minimum time between unbonding calls.

function setMinTimeBetweenUnbonding(uint64 _minTimeBetweenUnbonding) external
Name
Type
Description

_minTimeBetweenUnbonding

uint64

Minimum seconds between unbonding

PreviousPolygon VaultNextDeployed Contracts

Last updated 6 days ago

🔧