> For the complete documentation index, see [llms.txt](https://docs.sperax.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.sperax.io/sperax-farms-protocol/technical-documents/smart-contracts/base-contracts/farmstorage.md).

# FarmStorage

[Git Source](https://github.com/Sperax/Demeter-Protocol/blob/cc93b9106874316d6dd016cdace652e2ca4ef8e1/contracts/FarmStorage.sol)

**Inherits:** IFarm

**Author:** Sperax Foundation.

This contract contains the base storage variables for farms.

## State Variables

### COMMON\_FUND\_ID

```solidity
uint8 public constant COMMON_FUND_ID = 0;
```

### LOCKUP\_FUND\_ID

```solidity
uint8 public constant LOCKUP_FUND_ID = 1;
```

### PRECISION

```solidity
uint256 public constant PRECISION = 1e18;
```

### MAX\_COOLDOWN\_PERIOD

```solidity
uint256 public constant MAX_COOLDOWN_PERIOD = 30;
```

### MAX\_NUM\_REWARDS

```solidity
uint256 public constant MAX_NUM_REWARDS = 4;
```

### farmId

```solidity
string public farmId;
```

### isPaused

```solidity
bool internal isPaused;
```

### isClosed

```solidity
bool internal isClosed;
```

### cooldownPeriod

```solidity
uint256 public cooldownPeriod;
```

### lastFundUpdateTime

```solidity
uint256 public lastFundUpdateTime;
```

### farmStartTime

```solidity
uint256 public farmStartTime;
```

### totalDeposits

```solidity
uint256 public totalDeposits;
```

### rewardFunds

```solidity
RewardFund[] internal rewardFunds;
```

### rewardTokens

```solidity
address[] internal rewardTokens;
```

### rewardData

```solidity
mapping(address => RewardData) internal rewardData;
```

### deposits

```solidity
mapping(uint256 => Deposit) internal deposits;
```

### subscriptions

```solidity
mapping(uint256 => Subscription[]) internal subscriptions;
```
