Facet #9: Borrowing Fees and open interests
constructor
setBorrowingPairParams
function setBorrowingPairParams(uint8 _collateralIndex, uint16 _pairIndex, struct IBorrowingFees.BorrowingPairParams _value) external
Updates borrowing pair params of a pair
Parameters
setBorrowingPairParamsArray
function setBorrowingPairParamsArray(uint8 _collateralIndex, uint16[] _indices, struct IBorrowingFees.BorrowingPairParams[] _values) external
Updates borrowing pair params of multiple pairs
Parameters
setBorrowingGroupParams
function setBorrowingGroupParams(uint8 _collateralIndex, uint16 _groupIndex, struct IBorrowingFees.BorrowingGroupParams _value) external
Updates borrowing group params of a group
Parameters
setBorrowingGroupParamsArray
function setBorrowingGroupParamsArray(uint8 _collateralIndex, uint16[] _indices, struct IBorrowingFees.BorrowingGroupParams[] _values) external
Updates borrowing group params of multiple groups
Parameters
handleTradeBorrowingCallback
function handleTradeBorrowingCallback(uint8 _collateralIndex, address _trader, uint16 _pairIndex, uint32 _index, uint256 _positionSizeCollateral, bool _open, bool _long) external virtual
Callback after a trade is opened/closed to store pending borrowing fees and adjust open interests
Parameters
resetTradeBorrowingFees
function resetTradeBorrowingFees(uint8 _collateralIndex, address _trader, uint16 _pairIndex, uint32 _index, bool _long) external virtual
Resets a trade borrowing fee to 0 (useful when new trade opened or when partial trade executed)
Parameters
getBorrowingPairPendingAccFees
function getBorrowingPairPendingAccFees(uint8 _collateralIndex, uint16 _pairIndex, uint256 _currentBlock) public view returns (uint64 accFeeLong, uint64 accFeeShort, uint64 pairAccFeeDelta)
Returns the pending acc borrowing fees for a pair on both sides
Parameters
Return Values
getBorrowingGroupPendingAccFees
function getBorrowingGroupPendingAccFees(uint8 _collateralIndex, uint16 _groupIndex, uint256 _currentBlock) public view returns (uint64 accFeeLong, uint64 accFeeShort, uint64 groupAccFeeDelta)
Returns the pending acc borrowing fees for a borrowing group on both sides
Parameters
Return Values
getTradeBorrowingFee
function getTradeBorrowingFee(struct IBorrowingFees.BorrowingFeeInput _input) public view returns (uint256 feeAmountCollateral)
Returns the borrowing fee for a trade
Parameters
Return Values
getTradeLiquidationPrice
function getTradeLiquidationPrice(struct IBorrowingFees.LiqPriceInput _input) external view returns (uint256)
Returns the liquidation price for a trade
Parameters
getPairOisCollateral
function getPairOisCollateral(uint8 _collateralIndex, uint16 _pairIndex) public view returns (uint256 longOi, uint256 shortOi)
Returns the open interests for a pair
Parameters
Return Values
getBorrowingPairGroupIndex
function getBorrowingPairGroupIndex(uint8 _collateralIndex, uint16 _pairIndex) public view returns (uint16 groupIndex)
Returns the borrowing group index for a pair
Parameters
Return Values
getPairOiCollateral
function getPairOiCollateral(uint8 _collateralIndex, uint16 _pairIndex, bool _long) external view returns (uint256)
Returns the open interest in collateral tokens for a pair on one side
Parameters
withinMaxBorrowingGroupOi
function withinMaxBorrowingGroupOi(uint8 _collateralIndex, uint16 _pairIndex, bool _long, uint256 _positionSizeCollateral) external view returns (bool)
Returns whether a trade is within the max group borrowing open interest
Parameters
getBorrowingGroup
function getBorrowingGroup(uint8 _collateralIndex, uint16 _groupIndex) external view returns (struct IBorrowingFees.BorrowingData)
Returns a borrowing group's data
Parameters
getBorrowingGroupOi
function getBorrowingGroupOi(uint8 _collateralIndex, uint16 _groupIndex) external view returns (struct IBorrowingFees.OpenInterest)
Returns a borrowing group's oi data
Parameters
getBorrowingPair
function getBorrowingPair(uint8 _collateralIndex, uint16 _pairIndex) external view returns (struct IBorrowingFees.BorrowingData)
Returns a borrowing pair's data
Parameters
getBorrowingPairOi
function getBorrowingPairOi(uint8 _collateralIndex, uint16 _pairIndex) external view returns (struct IBorrowingFees.OpenInterest)
Returns a borrowing pair's oi data
Parameters
getBorrowingPairGroups
function getBorrowingPairGroups(uint8 _collateralIndex, uint16 _pairIndex) external view returns (struct IBorrowingFees.BorrowingPairGroup[])
Returns a borrowing pair's oi data
Parameters
getAllBorrowingPairs
function getAllBorrowingPairs(uint8 _collateralIndex) external view returns (struct IBorrowingFees.BorrowingData[], struct IBorrowingFees.OpenInterest[], struct IBorrowingFees.BorrowingPairGroup[][])
Returns all borrowing pairs' borrowing data, oi data, and pair groups data
Parameters
getBorrowingGroups
function getBorrowingGroups(uint8 _collateralIndex, uint16[] _indices) external view returns (struct IBorrowingFees.BorrowingData[], struct IBorrowingFees.OpenInterest[])
Returns borrowing groups' data and oi data
Parameters
getBorrowingInitialAccFees
function getBorrowingInitialAccFees(uint8 _collateralIndex, address _trader, uint32 _index) external view returns (struct IBorrowingFees.BorrowingInitialAccFees)
Returns borrowing groups' data
Parameters
getPairMaxOi
function getPairMaxOi(uint8 _collateralIndex, uint16 _pairIndex) external view returns (uint256)
Returns the max open interest for a pair
Parameters
getPairMaxOiCollateral
function getPairMaxOiCollateral(uint8 _collateralIndex, uint16 _pairIndex) external view returns (uint256)
Returns the max open interest in collateral tokens for a pair
Parameters