> ## Documentation Index
> Fetch the complete documentation index at: https://docs.gains.trade/llms.txt
> Use this file to discover all available pages before exploring further.

# IGTokenOpenPnlFeed

*Interface for GTokenOpenPnlFeed contract*

## Request

```solidity theme={null}
struct Request {
  bool initiated;
  bool active;
  uint256 linkFeePerNode;
}
```

## nextEpochValuesRequestCount

```solidity theme={null}
function nextEpochValuesRequestCount() external view returns (uint256)
```

## newOpenPnlRequestOrEpoch

```solidity theme={null}
function newOpenPnlRequestOrEpoch() external
```

## fulfill

```solidity theme={null}
function fulfill(bytes32 requestId, int256 value) external
```

## NumberParamUpdated

```solidity theme={null}
event NumberParamUpdated(string name, uint256 newValue)
```

## OracleUpdated

```solidity theme={null}
event OracleUpdated(uint256 index, address newValue)
```

## OraclesUpdated

```solidity theme={null}
event OraclesUpdated(address[] newValues)
```

## JobUpdated

```solidity theme={null}
event JobUpdated(bytes32 newValue)
```

## NextEpochValuesReset

```solidity theme={null}
event NextEpochValuesReset(uint256 currEpoch, uint256 requestsResetCount)
```

## NewEpochForced

```solidity theme={null}
event NewEpochForced(uint256 newEpoch)
```

## NextEpochValueRequested

```solidity theme={null}
event NextEpochValueRequested(uint256 currEpoch, uint256 requestId, bytes32 job, uint256 oraclesCount, uint256 linkFeePerNode)
```

## NewEpoch

```solidity theme={null}
event NewEpoch(uint256 newEpoch, uint256 requestId, int256[] epochMedianValues, int256 epochAverageValue, uint256 newEpochPositiveOpenPnl)
```

## RequestValueReceived

```solidity theme={null}
event RequestValueReceived(bool isLate, uint256 currEpoch, uint256 requestId, bytes32 oracleRequestId, address oracle, int256 requestValue, uint256 linkFee)
```

## RequestMedianValueSet

```solidity theme={null}
event RequestMedianValueSet(uint256 currEpoch, uint256 requestId, int256[] requestValues, int256 medianValue)
```
