Farming Manager
A Farming Manager is a component that allows an organization (of the root or governance layer) to interact with a Covenant farming contract.
Linked to an organization as a Component, it replaces the Farming Extension.
The Farming Managers supports ERC20s and Items (using the Item Interoperable Interface).
We have two different Farming Manager Components:
  • Standard Farming Manager
  • Model-Based Farming Manager
The first acts as a standard Farming Extension, i.e. it allows the organization to interact with the Farming contract in a simple way according to standard operations. In particular, it allows the Organization to:
  • Send reward tokens from the organization's Treasury Manager to the farming contract
  • Receive any unissued tokens from the farming contract after it has ended, and send them back to the Treasury Manager
  • Add and modify farming setups in the farming contract, by calling the setFarmingSetups function.
The second one acts as a custom Farming Extension, i.e. it allows you to:
  • Send reward tokens from the Model-Based Farming Manager to the farming contract
  • Receive any unissued tokens from the farming contract after it has ended, and provide a flush function to send them back to the Treasury Manager or any other Organization Component
  • Add and modify farming setups in the farming contract, by calling the setFarmingSetups function.
  • Create, at each interval of blocks defined, one or more farming setups by dividing the amount of reward tokens present in the model-based Farming Manager among the setups to be created.
In this way, it is possible to create a more complex governance token distribution logic. For example, by integrating Farming with an Inflation Routine it is possible to:
  • create a setup of farming.
  • inflate the token, minting it, with fixed frequency sending the tokens to the Model-Based Farming Manager.
  • create one or more new Farming setups every time the interval of time defined in the model-based is reached.
This is just an example of how you can use the model-based Farming Manager.
Moreover, each developer can create his own Farming manager different from the Standard Farming Manager and Model-based Farming Manager.
Copy link