PairInfos Contract 📜
Holds the metadata of asset pairs. (Ex: BTC/USDC, ETH/USDC, etc.)
State Variables
storageT
solidity
StorageInterfaceV5 public storageT;
StorageInterfaceV5 public storageT;
manager
solidity
address public manager;
address public manager;
PRECISION
solidity
uint256 constant PRECISION = 1e10;
uint256 constant PRECISION = 1e10;
LIQ_THRESHOLD_P
solidity
uint256 constant LIQ_THRESHOLD_P = 90;
uint256 constant LIQ_THRESHOLD_P = 90;
maxNegativePnlOnOpenP
solidity
uint256 public maxNegativePnlOnOpenP;
uint256 public maxNegativePnlOnOpenP;
pairParams
solidity
mapping(uint256 => PairParams) public pairParams;
mapping(uint256 => PairParams) public pairParams;
pairFundingFees
solidity
mapping(uint256 => PairFundingFees) public pairFundingFees;
mapping(uint256 => PairFundingFees) public pairFundingFees;
pairRolloverFees
solidity
mapping(uint256 => PairRolloverFees) public pairRolloverFees;
mapping(uint256 => PairRolloverFees) public pairRolloverFees;
_tradeInitialAccFees
solidity
mapping(address => mapping(uint256 => mapping(uint256 => TradeInitialAccFees))) private _tradeInitialAccFees;
mapping(address => mapping(uint256 => mapping(uint256 => TradeInitialAccFees))) private _tradeInitialAccFees;
Functions
initialize
solidity
function initialize(StorageInterfaceV5 _storageT, address _manager, uint256 _maxNegativePnlOnOpenP)
external
initializer;
function initialize(StorageInterfaceV5 _storageT, address _manager, uint256 _maxNegativePnlOnOpenP)
external
initializer;
onlyGov
solidity
modifier onlyGov();
modifier onlyGov();
onlyManager
solidity
modifier onlyManager();
modifier onlyManager();
onlyCallbacks
solidity
modifier onlyCallbacks();
modifier onlyCallbacks();
setManager
solidity
function setManager(address _manager) external onlyGov;
function setManager(address _manager) external onlyGov;
setMaxNegativePnlOnOpenP
solidity
function setMaxNegativePnlOnOpenP(uint256 value) external onlyManager;
function setMaxNegativePnlOnOpenP(uint256 value) external onlyManager;
setPairParams
solidity
function setPairParams(uint256 pairIndex, PairParams memory value) public onlyManager;
function setPairParams(uint256 pairIndex, PairParams memory value) public onlyManager;
setPairParamsArray
solidity
function setPairParamsArray(uint256[] memory indices, PairParams[] memory values) external onlyManager;
function setPairParamsArray(uint256[] memory indices, PairParams[] memory values) external onlyManager;
setOnePercentDepth
solidity
function setOnePercentDepth(uint256 pairIndex, uint256 valueAbove, uint256 valueBelow) public onlyManager;
function setOnePercentDepth(uint256 pairIndex, uint256 valueAbove, uint256 valueBelow) public onlyManager;
setOnePercentDepthArray
solidity
function setOnePercentDepthArray(uint256[] memory indices, uint256[] memory valuesAbove, uint256[] memory valuesBelow)
external
onlyManager;
function setOnePercentDepthArray(uint256[] memory indices, uint256[] memory valuesAbove, uint256[] memory valuesBelow)
external
onlyManager;
setRolloverFeePerBlockP
solidity
function setRolloverFeePerBlockP(uint256 pairIndex, uint256 value) public onlyManager;
function setRolloverFeePerBlockP(uint256 pairIndex, uint256 value) public onlyManager;
setRolloverFeePerBlockPArray
solidity
function setRolloverFeePerBlockPArray(uint256[] memory indices, uint256[] memory values) external onlyManager;
function setRolloverFeePerBlockPArray(uint256[] memory indices, uint256[] memory values) external onlyManager;
setFundingFeePerBlockP
solidity
function setFundingFeePerBlockP(uint256 pairIndex, uint256 value) public onlyManager;
function setFundingFeePerBlockP(uint256 pairIndex, uint256 value) public onlyManager;
setFundingFeePerBlockPArray
solidity
function setFundingFeePerBlockPArray(uint256[] memory indices, uint256[] memory values) external onlyManager;
function setFundingFeePerBlockPArray(uint256[] memory indices, uint256[] memory values) external onlyManager;
storeTradeInitialAccFees
solidity
function storeTradeInitialAccFees(address trader, uint256 pairIndex, uint256 index, bool long) external onlyCallbacks;
function storeTradeInitialAccFees(address trader, uint256 pairIndex, uint256 index, bool long) external onlyCallbacks;
storeAccRolloverFees
solidity
function storeAccRolloverFees(uint256 pairIndex) private;
function storeAccRolloverFees(uint256 pairIndex) private;
getPendingAccRolloverFees
solidity
function getPendingAccRolloverFees(uint256 pairIndex) public view returns (uint256);
function getPendingAccRolloverFees(uint256 pairIndex) public view returns (uint256);
storeAccFundingFees
solidity
function storeAccFundingFees(uint256 pairIndex) private;
function storeAccFundingFees(uint256 pairIndex) private;
getPendingAccFundingFees
solidity
function getPendingAccFundingFees(uint256 pairIndex) public view returns (int256 valueLong, int256 valueShort);
function getPendingAccFundingFees(uint256 pairIndex) public view returns (int256 valueLong, int256 valueShort);
getTradePriceImpact
solidity
function getTradePriceImpact(uint256 openPrice, uint256 pairIndex, bool long, uint256 tradeOpenInterest)
external
view
returns (uint256 priceImpactP, uint256 priceAfterImpact);
function getTradePriceImpact(uint256 openPrice, uint256 pairIndex, bool long, uint256 tradeOpenInterest)
external
view
returns (uint256 priceImpactP, uint256 priceAfterImpact);
getTradePriceImpactPure
solidity
function getTradePriceImpactPure(
uint256 openPrice,
bool long,
uint256 startOpenInterest,
uint256 tradeOpenInterest,
uint256 onePercentDepth
) public pure returns (uint256 priceImpactP, uint256 priceAfterImpact);
function getTradePriceImpactPure(
uint256 openPrice,
bool long,
uint256 startOpenInterest,
uint256 tradeOpenInterest,
uint256 onePercentDepth
) public pure returns (uint256 priceImpactP, uint256 priceAfterImpact);
getTradeRolloverFee
solidity
function getTradeRolloverFee(address trader, uint256 pairIndex, uint256 index, uint256 collateral)
public
view
returns (uint256);
function getTradeRolloverFee(address trader, uint256 pairIndex, uint256 index, uint256 collateral)
public
view
returns (uint256);
getTradeRolloverFeePure
solidity
function getTradeRolloverFeePure(
uint256 accRolloverFeesPerCollateral,
uint256 endAccRolloverFeesPerCollateral,
uint256 collateral
) public pure returns (uint256);
function getTradeRolloverFeePure(
uint256 accRolloverFeesPerCollateral,
uint256 endAccRolloverFeesPerCollateral,
uint256 collateral
) public pure returns (uint256);
getTradeFundingFee
solidity
function getTradeFundingFee(
address trader,
uint256 pairIndex,
uint256 index,
bool long,
uint256 collateral,
uint256 leverage
) public view returns (int256);
function getTradeFundingFee(
address trader,
uint256 pairIndex,
uint256 index,
bool long,
uint256 collateral,
uint256 leverage
) public view returns (int256);
getTradeFundingFeePure
solidity
function getTradeFundingFeePure(
int256 accFundingFeesPerOi,
int256 endAccFundingFeesPerOi,
uint256 collateral,
uint256 leverage
) public pure returns (int256);
function getTradeFundingFeePure(
int256 accFundingFeesPerOi,
int256 endAccFundingFeesPerOi,
uint256 collateral,
uint256 leverage
) public pure returns (int256);
getTradeLiquidationPrice
solidity
function getTradeLiquidationPrice(
address trader,
uint256 pairIndex,
uint256 index,
uint256 openPrice,
bool long,
uint256 collateral,
uint256 leverage
) external view returns (uint256);
function getTradeLiquidationPrice(
address trader,
uint256 pairIndex,
uint256 index,
uint256 openPrice,
bool long,
uint256 collateral,
uint256 leverage
) external view returns (uint256);
getTradeLiquidationPricePure
solidity
function getTradeLiquidationPricePure(
uint256 openPrice,
bool long,
uint256 collateral,
uint256 leverage,
uint256 rolloverFee,
int256 fundingFee
) public pure returns (uint256);
function getTradeLiquidationPricePure(
uint256 openPrice,
bool long,
uint256 collateral,
uint256 leverage,
uint256 rolloverFee,
int256 fundingFee
) public pure returns (uint256);
getTradeValue
solidity
function getTradeValue(
address trader,
uint256 pairIndex,
uint256 index,
bool long,
uint256 collateral,
uint256 leverage,
int256 percentProfit,
uint256 closingFee
) external onlyCallbacks returns (uint256 amount);
function getTradeValue(
address trader,
uint256 pairIndex,
uint256 index,
bool long,
uint256 collateral,
uint256 leverage,
int256 percentProfit,
uint256 closingFee
) external onlyCallbacks returns (uint256 amount);
getTradeValuePure
solidity
function getTradeValuePure(
uint256 collateral,
int256 percentProfit,
uint256 rolloverFee,
int256 fundingFee,
uint256 closingFee
) public pure returns (uint256);
function getTradeValuePure(
uint256 collateral,
int256 percentProfit,
uint256 rolloverFee,
int256 fundingFee,
uint256 closingFee
) public pure returns (uint256);
getPairInfos
solidity
function getPairInfos(uint256[] memory indices)
external
view
returns (PairParams[] memory, PairRolloverFees[] memory, PairFundingFees[] memory);
function getPairInfos(uint256[] memory indices)
external
view
returns (PairParams[] memory, PairRolloverFees[] memory, PairFundingFees[] memory);
getOnePercentDepthAbove
solidity
function getOnePercentDepthAbove(uint256 pairIndex) external view returns (uint256);
function getOnePercentDepthAbove(uint256 pairIndex) external view returns (uint256);
getOnePercentDepthBelow
solidity
function getOnePercentDepthBelow(uint256 pairIndex) external view returns (uint256);
function getOnePercentDepthBelow(uint256 pairIndex) external view returns (uint256);
getRolloverFeePerBlockP
solidity
function getRolloverFeePerBlockP(uint256 pairIndex) external view returns (uint256);
function getRolloverFeePerBlockP(uint256 pairIndex) external view returns (uint256);
getFundingFeePerBlockP
solidity
function getFundingFeePerBlockP(uint256 pairIndex) external view returns (uint256);
function getFundingFeePerBlockP(uint256 pairIndex) external view returns (uint256);
getAccRolloverFees
solidity
function getAccRolloverFees(uint256 pairIndex) external view returns (uint256);
function getAccRolloverFees(uint256 pairIndex) external view returns (uint256);
getAccRolloverFeesUpdateBlock
solidity
function getAccRolloverFeesUpdateBlock(uint256 pairIndex) external view returns (uint256);
function getAccRolloverFeesUpdateBlock(uint256 pairIndex) external view returns (uint256);
getAccFundingFeesLong
solidity
function getAccFundingFeesLong(uint256 pairIndex) external view returns (int256);
function getAccFundingFeesLong(uint256 pairIndex) external view returns (int256);
getAccFundingFeesShort
solidity
function getAccFundingFeesShort(uint256 pairIndex) external view returns (int256);
function getAccFundingFeesShort(uint256 pairIndex) external view returns (int256);
getAccFundingFeesUpdateBlock
solidity
function getAccFundingFeesUpdateBlock(uint256 pairIndex) external view returns (uint256);
function getAccFundingFeesUpdateBlock(uint256 pairIndex) external view returns (uint256);
tradeInitialAccFees
solidity
function tradeInitialAccFees(address trader, uint256 pairIndex, uint256 index)
external
view
returns (TradeInitialAccFees memory);
function tradeInitialAccFees(address trader, uint256 pairIndex, uint256 index)
external
view
returns (TradeInitialAccFees memory);
getTradeInitialAccRolloverFeesPerCollateral
solidity
function getTradeInitialAccRolloverFeesPerCollateral(address trader, uint256 pairIndex, uint256 index)
external
view
returns (uint256);
function getTradeInitialAccRolloverFeesPerCollateral(address trader, uint256 pairIndex, uint256 index)
external
view
returns (uint256);
getTradeInitialAccFundingFeesPerOi
solidity
function getTradeInitialAccFundingFeesPerOi(address trader, uint256 pairIndex, uint256 index)
external
view
returns (int256);
function getTradeInitialAccFundingFeesPerOi(address trader, uint256 pairIndex, uint256 index)
external
view
returns (int256);
getTradeOpenedAfterUpdate
solidity
function getTradeOpenedAfterUpdate(address trader, uint256 pairIndex, uint256 index) external view returns (bool);
function getTradeOpenedAfterUpdate(address trader, uint256 pairIndex, uint256 index) external view returns (bool);
Events
ManagerUpdated
solidity
event ManagerUpdated(address value);
event ManagerUpdated(address value);
MaxNegativePnlOnOpenPUpdated
solidity
event MaxNegativePnlOnOpenPUpdated(uint256 value);
event MaxNegativePnlOnOpenPUpdated(uint256 value);
PairParamsUpdated
solidity
event PairParamsUpdated(uint256 pairIndex, PairParams value);
event PairParamsUpdated(uint256 pairIndex, PairParams value);
OnePercentDepthUpdated
solidity
event OnePercentDepthUpdated(uint256 pairIndex, uint256 valueAbove, uint256 valueBelow);
event OnePercentDepthUpdated(uint256 pairIndex, uint256 valueAbove, uint256 valueBelow);
RolloverFeePerBlockPUpdated
solidity
event RolloverFeePerBlockPUpdated(uint256 pairIndex, uint256 value);
event RolloverFeePerBlockPUpdated(uint256 pairIndex, uint256 value);
FundingFeePerBlockPUpdated
solidity
event FundingFeePerBlockPUpdated(uint256 pairIndex, uint256 value);
event FundingFeePerBlockPUpdated(uint256 pairIndex, uint256 value);
TradeInitialAccFeesStored
solidity
event TradeInitialAccFeesStored(address trader, uint256 pairIndex, uint256 index, uint256 rollover, int256 funding);
event TradeInitialAccFeesStored(address trader, uint256 pairIndex, uint256 index, uint256 rollover, int256 funding);
AccFundingFeesStored
solidity
event AccFundingFeesStored(uint256 pairIndex, int256 valueLong, int256 valueShort);
event AccFundingFeesStored(uint256 pairIndex, int256 valueLong, int256 valueShort);
AccRolloverFeesStored
solidity
event AccRolloverFeesStored(uint256 pairIndex, uint256 value);
event AccRolloverFeesStored(uint256 pairIndex, uint256 value);
FeesCharged
solidity
event FeesCharged(
address trader, uint256 pairIndex, uint256 index, uint256 rolloverFees, int256 fundingFees, uint256 closingFees
);
event FeesCharged(
address trader, uint256 pairIndex, uint256 index, uint256 rolloverFees, int256 fundingFees, uint256 closingFees
);
Structs
PairParams
solidity
struct PairParams {
uint256 onePercentDepthAbove;
uint256 onePercentDepthBelow;
uint256 rolloverFeePerBlockP;
uint256 fundingFeePerBlockP;
}
struct PairParams {
uint256 onePercentDepthAbove;
uint256 onePercentDepthBelow;
uint256 rolloverFeePerBlockP;
uint256 fundingFeePerBlockP;
}
PairFundingFees
solidity
struct PairFundingFees {
int256 accPerOiLong;
int256 accPerOiShort;
uint256 lastUpdateBlock;
}
struct PairFundingFees {
int256 accPerOiLong;
int256 accPerOiShort;
uint256 lastUpdateBlock;
}
PairRolloverFees
solidity
struct PairRolloverFees {
uint256 accPerCollateral;
uint256 lastUpdateBlock;
}
struct PairRolloverFees {
uint256 accPerCollateral;
uint256 lastUpdateBlock;
}