ExpirableFarm

Git Source

Inherits: Farm

Author: Sperax Foundation.

This contract helps in creating farms with expiry feature.

State Variables

MIN_EXTENSION

uint256 public constant MIN_EXTENSION = 100;

MAX_EXTENSION

uint256 public constant MAX_EXTENSION = 300;

farmEndTime

uint256 public farmEndTime;

farmRegistry

address public farmRegistry;

Functions

extendFarmDuration

Update the farm end time.

Can be updated only before the farm expired or closed. Extension should be incremented in multiples of 1 USDs/day with minimum of 100 days at a time and a maximum of 300 days. Extension is possible only after farm started.

Parameters

Name
Type
Description

_extensionDays

uint256

The number of days to extend the farm. Example: 150 means 150 days.

updateFarmStartTime

Update the farm start time.

Can be updated only before the farm start. New start time should be in future. Adjusts the farm end time accordingly.

Parameters

Name
Type
Description

_newStartTime

uint256

The new farm start time.

isFarmOpen

Returns bool status if farm is open. Farm is open if it is not closed and not expired.

Returns

Name
Type
Description

<none>

bool

bool True if farm is open.

_setupFarmExpiry

Setup the farm data for farm expiry.

Parameters

Name
Type
Description

_farmStartTime

uint256

Start time of the farm.

_farmRegistry

address

Address of the farm registry.

_collectExtensionFee

Collects farm extension fee and transfers it to feeReceiver.

Function fetches all the fee params from farmRegistry.

Parameters

Name
Type
Description

_extensionDays

uint256

The number of days to extend the farm. Example: 150 means 150 days.

Events

FarmEndTimeUpdated

ExtensionFeeCollected

Errors

InvalidExtension

DurationExceeded

FarmNotYetStarted