> For the complete documentation index, see [llms.txt](https://docs.rei.network/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rei.network/developer/system-contracts/feepool.md).

# FeePool

## Contents

## Globals

| Var             | Type                        |
| --------------- | --------------------------- |
| sharesOf        | mapping(address => uint256) |
| totalShares     | uint256                     |
| accTxFee        | uint256                     |
| globalTimestamp | uint256                     |
| validators      | address\[]                  |

## Functions

### constructor

No description

**Declaration:**

```solidity
  function constructor(
  ) public Only
```

**Modifiers:**

| Modifier |
| -------- |
| Only     |

### validatorsLength

Get validators length.

**Declaration:**

```solidity
  function validatorsLength(
  ) external returns (uint256)
```

**Modifiers:** No modifiers

### earn

Increase miner's share.

**Declaration:**

```solidity
  function earn(
    address validator,
    uint256 earned
  ) external nonReentrant onlyRouter
```

**Modifiers:**

| Modifier     |
| ------------ |
| nonReentrant |
| onlyRouter   |

**Args:**

| Arg         | Type    | Description         |
| ----------- | ------- | ------------------- |
| `validator` | address | Miner address       |
| `earned`    | uint256 | Miner earned share. |

### accumulate

Add reward to fee pool.

**Declaration:**

```solidity
  function accumulate(
    bool isTxFee
  ) external nonReentrant onlyRouter
```

**Modifiers:**

| Modifier     |
| ------------ |
| nonReentrant |
| onlyRouter   |

**Args:**

| Arg       | Type | Description        |
| --------- | ---- | ------------------ |
| `isTxFee` | bool | Is transaction fee |

### onAssignBlockReward

Assign block reward callback, it only can be called by router.

**Declaration:**

```solidity
  function onAssignBlockReward(
  ) external nonReentrant onlyRouter
```

**Modifiers:**

| Modifier     |
| ------------ |
| nonReentrant |
| onlyRouter   |
