IBorrowingFees

Contains the types for the GNSBorrowingFees facet

BorrowingFeesStorage

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

struct BorrowingData {
  uint32 feePerBlock;
  uint64 accFeeLong;
  uint64 accFeeShort;
  uint48 accLastUpdatedBlock;
  uint48 feeExponent;
}

BorrowingPairGroup

struct BorrowingPairGroup {
  uint16 groupIndex;
  uint48 block;
  uint64 initialAccFeeLong;
  uint64 initialAccFeeShort;
  uint64 prevGroupAccFeeLong;
  uint64 prevGroupAccFeeShort;
  uint64 pairAccFeeLong;
  uint64 pairAccFeeShort;
  uint64 __placeholder;
}

OpenInterest

struct OpenInterest {
  uint72 long;
  uint72 short;
  uint72 max;
  uint40 __placeholder;
}

BorrowingInitialAccFees

struct BorrowingInitialAccFees {
  uint64 accPairFee;
  uint64 accGroupFee;
  uint48 block;
  uint80 __placeholder;
}

BorrowingPairParams

struct BorrowingPairParams {
  uint16 groupIndex;
  uint32 feePerBlock;
  uint48 feeExponent;
  uint72 maxOi;
}

BorrowingGroupParams

struct BorrowingGroupParams {
  uint32 feePerBlock;
  uint72 maxOi;
  uint48 feeExponent;
}

BorrowingFeeInput

struct BorrowingFeeInput {
  uint8 collateralIndex;
  address trader;
  uint16 pairIndex;
  uint32 index;
  bool long;
  uint256 collateral;
  uint256 leverage;
}

LiqPriceInput

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

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