IFarmingCenter

Events

DepositTransferred

event DepositTransferred(uint256 tokenId, address oldOwner, address newOwner)

Emitted when ownership of a deposit changes

NameTypeDescription
tokenIduint256The ID of the deposit (and token) that is being transferred
oldOwneraddressThe owner before the deposit was transferred
newOwneraddressThe owner after the deposit was transferred

EmergencyWithdrawToggle

event EmergencyWithdrawToggle(bool newStatus)

Emitted when status of EmergencyWithdraw changes

NameTypeDescription
newStatusboolNew value of `emergencyWithdrawActivated`. Users can withdraw liquidity without any checks if active.

Functions

virtualPoolAddresses

function virtualPoolAddresses(address) external view returns (address, address) view external

NameTypeDescription
address

Returns:

NameTypeDescription
[0]address
[1]address

nonfungiblePositionManager

function nonfungiblePositionManager() external view returns (contract INonfungiblePositionManager) view external

The nonfungible position manager with which this farming contract is compatible

Returns:

NameTypeDescription
[0]contract INonfungiblePositionManager

limitFarming

function limitFarming() external view returns (contract IAlgebraLimitFarming) view external

Returns:

NameTypeDescription
[0]contract IAlgebraLimitFarming

eternalFarming

function eternalFarming() external view returns (contract IAlgebraEternalFarming) view external

Returns:

NameTypeDescription
[0]contract IAlgebraEternalFarming

farmingCenterVault

function farmingCenterVault() external view returns (contract IFarmingCenterVault) view external

Returns:

NameTypeDescription
[0]contract IFarmingCenterVault

isIncentiveActiveInPool

function isIncentiveActiveInPool(contract IAlgebraPool pool, address virtualPool) external view returns (bool) view external

Is virtualPool connected to pool or not

NameTypeDescription
poolcontract IAlgebraPool
virtualPooladdress

Returns:

NameTypeDescription
[0]bool

l2Nfts

function l2Nfts(uint256) external view returns (uint96 nonce, address operator, uint256 tokenId) view external

NameTypeDescription
uint256

Returns:

NameTypeDescription
nonceuint96
operatoraddress
tokenIduint256

deposits

function deposits(uint256 tokenId) external view returns (uint256 L2TokenId, uint32 numberOfFarms, bool inLimitFarming, address owner) view external

Returns information about a deposited NFT

NameTypeDescription
tokenIduint256The ID of the deposit (and token) that is being transferred

Returns:

NameTypeDescription
L2TokenIduint256The nft layer2 id, numberOfFarms The number of farms, inLimitFarming The parameter showing if the token is in the limit farm, owner The owner of deposit
numberOfFarmsuint32
inLimitFarmingbool
owneraddress

connectVirtualPool

function connectVirtualPool(contract IAlgebraPool pool, address virtualPool) external external

Updates activeIncentive in AlgebraPool Developer note: only farming can do it

NameTypeDescription
poolcontract IAlgebraPoolThe AlgebraPool for which farming was created
virtualPooladdressThe virtual pool to be connected

enterFarming

function enterFarming(struct IIncentiveKey.IncentiveKey key, uint256 tokenId, uint256 tokensLocked, bool isLimit) external external

Enters in incentive (time-limited or eternal farming) with NFT-position token Developer note: token must be deposited in FarmingCenter

NameTypeDescription
keystruct IIncentiveKey.IncentiveKeyThe incentive event key
tokenIduint256The id of position NFT
tokensLockeduint256Amount of tokens to lock for liquidity multiplier (if tiers are used)
isLimitboolIs incentive time-limited or eternal

exitFarming

function exitFarming(struct IIncentiveKey.IncentiveKey key, uint256 tokenId, bool isLimit) external external

Exits from incentive (time-limited or eternal farming) with NFT-position token

NameTypeDescription
keystruct IIncentiveKey.IncentiveKeyThe incentive event key
tokenIduint256The id of position NFT
isLimitboolIs incentive time-limited or eternal

collect

function collect(struct INonfungiblePositionManager.CollectParams params) external returns (uint256 amount0, uint256 amount1) external

Collects up to a maximum amount of fees owed to a specific position to the recipient Developer note: "proxies" to NonfungiblePositionManager

NameTypeDescription
paramsstruct INonfungiblePositionManager.CollectParamstokenId The ID of the NFT for which tokens are being collected, recipient The account that should receive the tokens, amount0Max The maximum amount of token0 to collect, amount1Max The maximum amount of token1 to collect

Returns:

NameTypeDescription
amount0uint256The amount of fees collected in token0
amount1uint256The amount of fees collected in token1

collectRewards

function collectRewards(struct IIncentiveKey.IncentiveKey key, uint256 tokenId) external returns (uint256 reward, uint256 bonusReward) external

Used to collect reward from eternal farming. Then reward can be claimed.

NameTypeDescription
keystruct IIncentiveKey.IncentiveKeyThe incentive event key
tokenIduint256The id of position NFT

Returns:

NameTypeDescription
rewarduint256The amount of collected reward
bonusRewarduint256The amount of collected bonus reward

claimReward

function claimReward(contract IERC20Minimal rewardToken, address to, uint256 amountRequestedIncentive, uint256 amountRequestedEternal) external returns (uint256 reward) external

Used to claim and send rewards from farming(s) Developer note: can be used via static call to get current rewards for user

NameTypeDescription
rewardTokencontract IERC20MinimalThe token that is a reward
toaddressThe address to be rewarded
amountRequestedIncentiveuint256Amount to claim in incentive (limit) farming
amountRequestedEternaluint256Amount to claim in eternal farming

Returns:

NameTypeDescription
rewarduint256The summary amount of claimed rewards

withdrawToken

function withdrawToken(uint256 tokenId, address to, bytes data) external external

Withdraw Algebra NFT-position token Developer note: can be used via static call to get current rewards for user

NameTypeDescription
tokenIduint256The id of position NFT
toaddressNew owner of position NFT
databytesThe additional data for NonfungiblePositionManager