# PoolRewardsStorage

## PoolRewardsStorage

This contract keeps track of addresses used by the PoolRewards contract to compute and distribute vVSP "rewards".&#x20;

### pool

```solidity
address pool
```

Vesper pool address

### rewardTokens

```solidity
address[] rewardTokens
```

Array of reward token addresses

### isRewardToken

```solidity
mapping(address => bool) isRewardToken
```

Reward token to valid/invalid flag mapping

### periodFinish

```solidity
mapping(address => uint256) periodFinish
```

Reward token to period ending of current reward

### rewardRates

```solidity
mapping(address => uint256) rewardRates
```

Reward token to current reward rate mapping

### rewardDuration

```solidity
mapping(address => uint256) rewardDuration
```

Reward token to Duration of current reward distribution

### lastUpdateTime

```solidity
mapping(address => uint256) lastUpdateTime
```

Reward token to Last reward drip update time stamp mapping

### rewardPerTokenStored

```solidity
mapping(address => uint256) rewardPerTokenStored
```

Reward token to Reward per token mapping. Calculated and stored at last drip update

### userRewardPerTokenPaid

```solidity
mapping(address => mapping(address => uint256)) userRewardPerTokenPaid
```

Reward token => User => Reward per token stored at last reward update

### rewards

```solidity
mapping(address => mapping(address => uint256)) rewards
```

RewardToken => User => Rewards earned till last reward update

##

<table><thead><tr><th>Name</th><th width="552.3333333333333">Type</th><th>Description</th></tr></thead><tbody><tr><td>_rewardTokens</td><td>address[]</td><td>Array of tokens being rewarded</td></tr><tr><td>_rewardPerTokenRate</td><td>uint256[]</td><td>Array of Rewards rate for token on same index in rewardTokens</td></tr></tbody></table>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.vesper.finance/vesper-developers/vesper-contracts-api-reference/pool-contracts/poolrewardsstorage.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
