# GTokenOpenPnlFeed

*Manages open pnl oracle requests for a gToken vault*

## LINK\_FEE\_BALANCE\_DIVIDER

```solidity
uint256 LINK_FEE_BALANCE_DIVIDER
```

## MIN\_ANSWERS

```solidity
uint256 MIN_ANSWERS
```

## MIN\_REQUESTS\_START

```solidity
uint256 MIN_REQUESTS_START
```

## MAX\_REQUESTS\_START

```solidity
uint256 MAX_REQUESTS_START
```

## MIN\_REQUESTS\_EVERY

```solidity
uint256 MIN_REQUESTS_EVERY
```

## MAX\_REQUESTS\_EVERY

```solidity
uint256 MAX_REQUESTS_EVERY
```

## MIN\_REQUESTS\_COUNT

```solidity
uint256 MIN_REQUESTS_COUNT
```

## MAX\_REQUESTS\_COUNT

```solidity
uint256 MAX_REQUESTS_COUNT
```

## gToken

```solidity
contract IGToken gToken
```

## requestsStart

```solidity
uint256 requestsStart
```

## requestsEvery

```solidity
uint256 requestsEvery
```

## requestsCount

```solidity
uint256 requestsCount
```

## oracles

```solidity
address[] oracles
```

## job

```solidity
bytes32 job
```

## minAnswers

```solidity
uint256 minAnswers
```

## nextEpochValues

```solidity
int256[] nextEpochValues
```

## nextEpochValuesRequestCount

```solidity
uint256 nextEpochValuesRequestCount
```

## nextEpochValuesLastRequest

```solidity
uint256 nextEpochValuesLastRequest
```

## lastRequestId

```solidity
uint256 lastRequestId
```

## requestIds

```solidity
mapping(bytes32 => uint256) requestIds
```

## requests

```solidity
mapping(uint256 => struct IGTokenOpenPnlFeed.Request) requests
```

## requestAnswers

```solidity
mapping(uint256 => int256[]) requestAnswers
```

## constructor

```solidity
constructor(uint256 _LINK_FEE_BALANCE_DIVIDER, address _linkToken, contract IGToken _gToken, address[] _oracles, bytes32 _job, uint256 _minAnswers) public
```

## onlyGTokenOwner

```solidity
modifier onlyGTokenOwner()
```

## onlyGTokenManager

```solidity
modifier onlyGTokenManager()
```

## onlyGTokenAdmin

```solidity
modifier onlyGTokenAdmin()
```

## updateRequestsStart

```solidity
function updateRequestsStart(uint256 newValue) public
```

## updateRequestsEvery

```solidity
function updateRequestsEvery(uint256 newValue) public
```

## updateRequestsCount

```solidity
function updateRequestsCount(uint256 newValue) public
```

## updateRequestsInfoBatch

```solidity
function updateRequestsInfoBatch(uint256 newRequestsStart, uint256 newRequestsEvery, uint256 newRequestsCount) external
```

## updateMinAnswers

```solidity
function updateMinAnswers(uint256 newValue) external
```

## updateOracle

```solidity
function updateOracle(uint256 _index, address newValue) external
```

## updateOracles

```solidity
function updateOracles(address[] newValues) external
```

## updateJob

```solidity
function updateJob(bytes32 newValue) external
```

## resetNextEpochValueRequests

```solidity
function resetNextEpochValueRequests() external
```

## forceNewEpoch

```solidity
function forceNewEpoch() external
```

## newOpenPnlRequestOrEpoch

```solidity
function newOpenPnlRequestOrEpoch() external
```

## fulfill

```solidity
function fulfill(bytes32 requestId, int256 value) external
```


---

# 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.gains.trade/developer/technical-reference/contracts/core/gtokenopenpnlfeed.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.
