Skip to content

link staking contracts

OperatorVault: Node Operator LINK Staking Vault

OperatorVault is a vault contract used for depositing LINK into the Chainlink staking contract as a node operator.

Returns the address of the vault controller

function vaultController() external view returns (address)
Name Type Description
vaultController address address of vault controller

Returns the address of the Chainlink staking contract

function stakeController() external view returns (address)
Name Type Description
stakeController address address of staking contract

Returns the address of the Chainlink staking rewards contract

function rewardsController() external view returns (address)
Name Type Description
rewardsController address address of rewards contract

Returns the address of the delegate registry

function delegateRegistry() external view returns (address)
Name Type Description
delegateRegistry address address of delegate registry

Returns the rewards receiver address for this vault

function rewardsReceiver() external view returns (address)
Name Type Description
rewardsReceiver address Rewards receiver address

Returns the address of the price feed alerts controller

function pfAlertsController() external view returns (address)
Name Type Description
pfAlertsController address Price feed alerts controller

Returns the tracked total deposits for this vault

function trackedTotalDeposits() external view returns (uint128)
Name Type Description
trackedTotalDeposits uint128 Tracked total deposits

Returns the unclaimed rewards for this vault

function unclaimedRewards() external view returns (uint128)
Name Type Description
unclaimedRewards uint128 Unclaimed rewards

Returns the total balance of this contract in the Chainlink staking contract

function getTotalDeposits() public view returns (uint256)
Name Type Description
totalDeposits uint256 Total deposit balance

Returns the principal balance of this contract in the Chainlink staking contract

function getPrincipalDeposits() public view returns (uint256)
Name Type Description
principalDeposits uint256 Principal deposit balance

Returns the claimable rewards balance of this contract in the Chainlink staking rewards contract

function getRewards() public view returns (uint256)
Name Type Description
rewards uint256 Claimable rewards

Returns the total unclaimed operator rewards for this vault

function getUnclaimedRewards() public view returns (uint256)
Name Type Description
unclaimedRewards uint256 Unclaimed operator rewards

Returns the amount of rewards that will be earned by this vault on the next update

function getPendingRewards() public view returns (uint256)
Name Type Description
unclaimedRewards uint256 Unclaimed operator rewards

Returns the operator address for this vault

function operator() external view returns (address)
Name Type Description
operator address Operator address

Returns whether the claim period is active for this contract in the Chainlink staking contract

function claimPeriodActive() external
Name Type Description
_active bool true if active, false otherwise

Returns whether the operator for this vault has been removed from the Chainlink staking contract

function isRemoved() external
Name Type Description
_isRemoved bool true if operator has been removed, false otherwise

Returns all enabled delegations this vault has given out

function getDelegations() external view returns (IDelegateRegistry.Delegation[] memory)
Name Type Description
delegations IDelegateRegistry.Delegation[] list of delegations

Deposits tokens from the vaultController into the Chainlink staking contract

function deposit(uint256 _amount) external
Name Type Description
_amount uint256 Amount to deposit

Withdraws tokens from the Chainlink staking contract and sends them to the vault controller

function withdraw(uint256 _amount) external
Name Type Description
_amount uint256 Amount to withdraw

Unbonds tokens in the Chainlink staking contract

function unbond() external

Raises an alert in the Chainlink staking contract

function raiseAlert(address _feed) external
Name Type Description
_feed address Address of Chainlink feed to raise alert for

Withdraws the unclaimed operator rewards for this vault

function withdrawRewards() external

Updates the deposit and reward accounting for this vault

function updateDeposits(uint256 _minRewards, address _rewardsReceiver) external
Name Type Description
_minRewards uint256 Min amount of rewards to claim (set 0 to skip reward claiming)
_rewardsReceiver address Address to receive claimed rewards (set if _minRewards > 0)

Withdraws tokens from the Chainlink staking contract and sends them to the vault controller

Used to withdraw remaining principal and rewards after operator has been removed. Will also send any unclaimed operator rewards to rewards receiver

function exitVault() external returns (uint256, uint256)
Name Type Description
_principalWithdrawn uint256 Total principal withdrawn
_rewardsWithdrawn uint256 Total rewards withdrawn

Delegates to an address for this vault

function delegate(address _to, bytes32 _rights, bool _enable) external
Name Type Description
_to address address to delegate to
_rights bytes32 rights to grant
_enable bool whether to enable or revoke delegation

Withdraws any non-LINK token rewards sitting in this vault

function withdrawTokenRewards(address[] calldata _tokens) external
Name Type Description
_tokens address[] list of tokens to withdraw

Sets the delegate registry

function setDelegateRegistry(address _delegateRegistry) external
Name Type Description
_delegateRegistry address address of delegate registry

Sets the operator address for this vault if not already set

function setOperator(address _operator) external
Name Type Description
_operator address Operator address

Sets the address to receive operator rewards

function setRewardsReceiver(address _rewardsReceiver_) external
Name Type Description
_rewardsReceiver address Address of rewards receiver