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.

Last updated