setFarmingSetups
function:add
-> true
disable
-> false
index
-> the index of the new Farming setup. This parameter is empty if adding a new setup.FarmingSetupInfo
-> struct containing the new setup data
setFarmingSetups
internally calls the _setOrAddFarmingSetupInfo
method to create the setup, which takes as input the information just passed in the setFarmingSetups
:info
-> FarmingSetupInfo
structadd
-> true
disable
-> false
setupIndex
-> the index of the new Farming setupFarmingSetupInfo
struct functions as an informational repository of each FarmingSetup
. Consequently, each new setup is created by passing information from outside via a FarmingSetupInfo
struct, which will generate the corresponding FarmingSetup
internally in the Contract. The FarmingSetup
contains only the information strictly necessary for the operation of the setup; all other information is stored in the FarmingSetupInfo
.blockDuration
-> duration of the setup in blocksstartBlock
-> start block of the setup*originalRewardPerBlock
-> the reward per block
set when the setup is created; will remain the same unless the host modifies the reward per block
later​minStakeable
-> minimum amount of the main token that can be staked by a position in the setuprenewtimes
-> amount of times the setup can be renewedliquidityPoolTokenAddress
-> address
of the Uniswap v3 liquidity pool for the setupmainTokenAddress
-> address
of the chosen main token; used to perform some checks such as the minStakeable
involvingETH
-> boolean value representing if ETH is a token in the setup (true
) or not (false
)setupsCount
-> number of setups created by the passing of this info; populated automatically by the contract and for internal use onlylastSetupIndex
-> index of last setup created by this info; populated automatically by the contract and for internal use onlytickLower
->parameter representing the value of tickLower
used to create the Uniswap v3 NFT for the setup.tickUpper
->parameter representing the value of tickUpper
used to create the Uniswap v3 NFT for the setup.activatesetup
cannot be called before that block
is reached. If startBlock
is set as zero, then the setup can be activated any time after it is created. FarmingSetupInfo
struct, the information for the NFT to be created for the Uniswap v3 price curve and liquidity position is passed from the host. The info regarding the addresses
of the pair tokens (token0 and token1) and the pool fee is retrieved from the passed liquidityPoolTokenAddress
; to create a Free Farming Generation 2 setup, the Uniswap v3 pool you want to use must already exist. The tickLower
and tickUpper
parameters provide the remaining data.FarmingSetup
struct:infoIndex
-> setup info indexactive
-> a boolean value representing if the setup is active (true
) or inactive (false
) startBlock
-> farming setup start block corresponding to setup activation blockendBlock
-> farming setup end block calculated as setup start Block + setup duration
lastUpdateBlock
-> number of the block where an update was triggered in the setup (for internal use only such as reward position calculation) objectId
-> Id of the reference NFT (Uniswap v3) of the setup once it is minted. rewardPerBlock
-> farming setup reward per block settotalSupply
-> it represents the liquidity
parameter of the NFT (Uniswap v3) that is the total liquidity amount inserted all users of that setup.