> ## 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.

# IBorrowingFees

*Contains the types for the GNSBorrowingFees facet*

## BorrowingFeesStorage

```solidity theme={null}
struct BorrowingFeesStorage {
  mapping(uint8 => mapping(uint16 => struct IBorrowingFees.BorrowingData)) pairs;
  mapping(uint8 => mapping(uint16 => struct IBorrowingFees.BorrowingPairGroup[])) pairGroups;
  mapping(uint8 => mapping(uint16 => struct IBorrowingFees.OpenInterest)) pairOis;
  mapping(uint8 => mapping(uint16 => struct IBorrowingFees.BorrowingData)) groups;
  mapping(uint8 => mapping(uint16 => struct IBorrowingFees.OpenInterest)) groupOis;
  mapping(uint8 => mapping(address => mapping(uint32 => struct IBorrowingFees.BorrowingInitialAccFees))) initialAccFees;
  uint256[44] __gap;
}
```

## BorrowingData

```solidity theme={null}
struct BorrowingData {
  uint32 feePerBlock;
  uint64 accFeeLong;
  uint64 accFeeShort;
  uint48 accLastUpdatedBlock;
  uint48 feeExponent;
}
```

## BorrowingPairGroup

```solidity theme={null}
struct BorrowingPairGroup {
  uint16 groupIndex;
  uint48 block;
  uint64 initialAccFeeLong;
  uint64 initialAccFeeShort;
  uint64 prevGroupAccFeeLong;
  uint64 prevGroupAccFeeShort;
  uint64 pairAccFeeLong;
  uint64 pairAccFeeShort;
  uint64 __placeholder;
}
```

## OpenInterest

```solidity theme={null}
struct OpenInterest {
  uint72 long;
  uint72 short;
  uint72 max;
  uint40 __placeholder;
}
```

## BorrowingInitialAccFees

```solidity theme={null}
struct BorrowingInitialAccFees {
  uint64 accPairFee;
  uint64 accGroupFee;
  uint48 block;
  uint80 __placeholder;
}
```

## BorrowingPairParams

```solidity theme={null}
struct BorrowingPairParams {
  uint16 groupIndex;
  uint32 feePerBlock;
  uint48 feeExponent;
  uint72 maxOi;
}
```

## BorrowingGroupParams

```solidity theme={null}
struct BorrowingGroupParams {
  uint32 feePerBlock;
  uint72 maxOi;
  uint48 feeExponent;
}
```

## BorrowingFeeInput

```solidity theme={null}
struct BorrowingFeeInput {
  uint8 collateralIndex;
  address trader;
  uint16 pairIndex;
  uint32 index;
  bool long;
  uint256 collateral;
  uint256 leverage;
}
```

## LiqPriceInput

```solidity theme={null}
struct LiqPriceInput {
  uint8 collateralIndex;
  address trader;
  uint16 pairIndex;
  uint32 index;
  uint64 openPrice;
  bool long;
  uint256 collateral;
  uint256 leverage;
  bool useBorrowingFees;
  struct IPairsStorage.GroupLiquidationParams liquidationParams;
}
```

## PendingBorrowingAccFeesInput

```solidity theme={null}
struct PendingBorrowingAccFeesInput {
  uint64 accFeeLong;
  uint64 accFeeShort;
  uint256 oiLong;
  uint256 oiShort;
  uint32 feePerBlock;
  uint256 currentBlock;
  uint256 accLastUpdatedBlock;
  uint72 maxOi;
  uint48 feeExponent;
  uint128 collateralPrecision;
}
```
