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

NameTypeDescription
_deployercontract IAlgebraPoolDeployerpool deployer contract address
_nonfungiblePositionManagercontract INonfungiblePositionManagerthe NFT position manager contract address
_maxIncentiveStartLeadTimeuint256the max duration of an incentive in seconds
_maxIncentiveDurationuint256the 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

NameTypeDescription
keystruct IIncentiveKey.IncentiveKey
tiersstruct IAlgebraFarming.Tiers
paramsstruct IAlgebraLimitFarming.IncentiveParams

Returns:

NameTypeDescription
virtualPooladdress

addRewards

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

NameTypeDescription
keystruct IIncentiveKey.IncentiveKey
rewarduint256
bonusRewarduint256

decreaseRewardsAmount

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

NameTypeDescription
keystruct IIncentiveKey.IncentiveKey
rewardAmountuint256
bonusRewardAmountuint256

detachIncentive

function detachIncentive(struct IIncentiveKey.IncentiveKey key) external external

Detach incentive from the pool

NameTypeDescription
keystruct IIncentiveKey.IncentiveKeyThe key of the incentive

attachIncentive

function attachIncentive(struct IIncentiveKey.IncentiveKey key) external external

Attach incentive to the pool

NameTypeDescription
keystruct IIncentiveKey.IncentiveKeyThe key of the incentive

enterFarming

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

enter farming for Algebra LP token

NameTypeDescription
keystruct IIncentiveKey.IncentiveKeyThe key of the incentive for which to enterFarming the NFT
tokenIduint256The ID of the token to exitFarming
tokensLockeduint256The amount of tokens locked for boost

exitFarming

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

exitFarmings for Algebra LP token

NameTypeDescription
keystruct IIncentiveKey.IncentiveKeyThe key of the incentive for which to exitFarming the NFT
tokenIduint256The ID of the token to exitFarming
_owneraddressOwner 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

NameTypeDescription
keystruct IIncentiveKey.IncentiveKeyThe key of the incentive
tokenIduint256The ID of the token

Returns:

NameTypeDescription
rewarduint256The reward accrued to the NFT for the given incentive thus far
bonusRewarduint256The bonus reward accrued to the NFT for the given incentive thus far