AlgebraLimitFarming

Algebra incentive (time-limited) farming

Variables

uint256 maxIncentiveStartLeadTime immutable

The max amount of seconds into the future the incentive startTime can be set

uint256 maxIncentiveDuration immutable

The max duration of an incentive in seconds

mapping(uint256 => mapping(bytes32 => struct AlgebraLimitFarming.Farm)) farms

Returns information about a farmd liquidity NFT

Developer note: farms[tokenId][incentiveHash] => Farm

Functions

constructor

constructor(contract IAlgebraPoolDeployer _deployer, contract INonfungiblePositionManager _nonfungiblePositionManager, uint256 _maxIncentiveStartLeadTime, uint256 _maxIncentiveDuration) public public

Name
Type
Description

_deployer

contract IAlgebraPoolDeployer

pool deployer contract address

_nonfungiblePositionManager

contract INonfungiblePositionManager

the NFT position manager contract address

_maxIncentiveStartLeadTime

uint256

the max duration of an incentive in seconds

_maxIncentiveDuration

uint256

the max amount of seconds into the future the incentive startTime can be set

createLimitFarming

function createLimitFarming(struct IIncentiveKey.IncentiveKey key, struct IAlgebraFarming.Tiers tiers, struct IAlgebraLimitFarming.IncentiveParams params) external returns (address virtualPool) external

Name
Type
Description

key

struct IIncentiveKey.IncentiveKey

tiers

struct IAlgebraFarming.Tiers

params

struct IAlgebraLimitFarming.IncentiveParams

Returns:

Name
Type
Description

virtualPool

address

addRewards

function addRewards(struct IIncentiveKey.IncentiveKey key, uint256 reward, uint256 bonusReward) external external

Name
Type
Description

key

struct IIncentiveKey.IncentiveKey

reward

uint256

bonusReward

uint256

decreaseRewardsAmount

function decreaseRewardsAmount(struct IIncentiveKey.IncentiveKey key, uint256 rewardAmount, uint256 bonusRewardAmount) external external

Name
Type
Description

key

struct IIncentiveKey.IncentiveKey

rewardAmount

uint256

bonusRewardAmount

uint256

deactivateIncentive

function deactivateIncentive(struct IIncentiveKey.IncentiveKey key) external external

Detach incentive from the pool and deactivate it

Name
Type
Description

key

struct IIncentiveKey.IncentiveKey

The key of the incentive

enterFarming

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

enter farming for Algebra LP token

Name
Type
Description

key

struct IIncentiveKey.IncentiveKey

The key of the incentive for which to enterFarming the NFT

tokenId

uint256

The ID of the token to exitFarming

tokensLocked

uint256

The amount of tokens locked for boost

exitFarming

function exitFarming(struct IIncentiveKey.IncentiveKey key, uint256 tokenId, address _owner) external external

exitFarmings for Algebra LP token

Name
Type
Description

key

struct IIncentiveKey.IncentiveKey

The key of the incentive for which to exitFarming the NFT

tokenId

uint256

The ID of the token to exitFarming

_owner

address

Owner of the token

getRewardInfo

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

Calculates the reward amount that will be received for the given farm

Name
Type
Description

key

struct IIncentiveKey.IncentiveKey

The key of the incentive

tokenId

uint256

The ID of the token

Returns:

Name
Type
Description

reward

uint256

The reward accrued to the NFT for the given incentive thus far

bonusReward

uint256

The bonus reward accrued to the NFT for the given incentive thus far