Skip to main content
GNSTradingCallbacks facet internal library

tradingActivated

modifier tradingActivated()
Modifier to only allow trading action when trading is activated (= revert if not activated)

tradingActivatedOrCloseOnly

modifier tradingActivatedOrCloseOnly()
Modifier to only allow trading action when trading is activated or close only (= revert if paused)

initializeCallbacks

function initializeCallbacks(uint8 _vaultClosingFeeP) internal
Check ITradingCallbacksUtils interface for documentation

updateVaultClosingFeeP

function updateVaultClosingFeeP(uint8 _valueP) internal
Check ITradingCallbacksUtils interface for documentation

updateTreasuryAddress

function updateTreasuryAddress(address _treasury) internal
Check ITradingCallbacksUtils interface for documentation

claimPendingGovFees

function claimPendingGovFees() internal
Check ITradingCallbacksUtils interface for documentation

openTradeMarketCallback

function openTradeMarketCallback(struct ITradingCallbacks.AggregatorAnswer _a) internal
Check ITradingCallbacksUtils interface for documentation

closeTradeMarketCallback

function closeTradeMarketCallback(struct ITradingCallbacks.AggregatorAnswer _a) internal
Check ITradingCallbacksUtils interface for documentation

executeTriggerOpenOrderCallback

function executeTriggerOpenOrderCallback(struct ITradingCallbacks.AggregatorAnswer _a) internal
Check ITradingCallbacksUtils interface for documentation

executeTriggerCloseOrderCallback

function executeTriggerCloseOrderCallback(struct ITradingCallbacks.AggregatorAnswer _a) internal
Check ITradingCallbacksUtils interface for documentation

updateLeverageCallback

function updateLeverageCallback(struct ITradingCallbacks.AggregatorAnswer _a) internal
Check ITradingCallbacksUtils interface for documentation

increasePositionSizeMarketCallback

function increasePositionSizeMarketCallback(struct ITradingCallbacks.AggregatorAnswer _a) internal
Check ITradingCallbacksUtils interface for documentation

decreasePositionSizeMarketCallback

function decreasePositionSizeMarketCallback(struct ITradingCallbacks.AggregatorAnswer _a) internal
Check ITradingCallbacksUtils interface for documentation

getVaultClosingFeeP

function getVaultClosingFeeP() internal view returns (uint8)
Check ITradingCallbacksUtils interface for documentation

getPendingGovFeesCollateral

function getPendingGovFeesCollateral(uint8 _collateralIndex) internal view returns (uint256)
Check ITradingCallbacksUtils interface for documentation

validateTriggerOpenOrderCallback

function validateTriggerOpenOrderCallback(struct ITradingStorage.Id _tradeId, enum ITradingStorage.PendingOrderType _orderType, uint64 _open, uint64 _high, uint64 _low) internal view returns (struct ITradingStorage.Trade t, enum ITradingCallbacks.CancelReason cancelReason, struct ITradingCallbacks.Values v)
Check ITradingCallbacksUtils interface for documentation

validateTriggerCloseOrderCallback

function validateTriggerCloseOrderCallback(struct ITradingStorage.Id _tradeId, enum ITradingStorage.PendingOrderType _orderType, uint64 _open, uint64 _high, uint64 _low) internal view returns (struct ITradingStorage.Trade t, enum ITradingCallbacks.CancelReason cancelReason, struct ITradingCallbacks.Values v)
Check ITradingCallbacksUtils interface for documentation

_getSlot

function _getSlot() internal pure returns (uint256)
Returns storage slot to use when fetching storage relevant to library

_getStorage

function _getStorage() internal pure returns (struct ITradingCallbacks.TradingCallbacksStorage s)
Returns storage pointer for storage struct in diamond contract, at defined slot

_getMultiCollatDiamond

function _getMultiCollatDiamond() internal view returns (contract IGNSMultiCollatDiamond)
Returns current address as multi-collateral diamond interface to call other facets functions.

_registerTrade

function _registerTrade(struct ITradingStorage.Trade _trade, struct ITradingStorage.PendingOrder _pendingOrder) internal returns (struct ITradingStorage.Trade)
Registers a trade in storage, and handles all fees and rewards

Parameters

NameTypeDescription
_tradeITradingStorage.TradeTrade to register
_pendingOrderITradingStorage.PendingOrderCorresponding pending order

Return Values

NameTypeDescription
[0]ITradingStorage.TradeFinal registered trade

_unregisterTrade

function _unregisterTrade(struct ITradingStorage.Trade _trade, int256 _profitP, enum ITradingStorage.PendingOrderType _orderType, uint256 _oraclePrice, uint256 _liqPrice) internal returns (uint256 tradeValueCollateral)
Unregisters a trade from storage, and handles all fees and rewards

Parameters

NameTypeDescription
_tradeITradingStorage.TradeTrade to unregister
_profitPint256Profit percentage (1e10)
_orderTypeenum ITradingStorage.PendingOrderTypepending order type
_oraclePriceuint256oracle price without closing spread/impact (1e10)
_liqPriceuint256trade liquidation price (1e10)

Return Values

NameTypeDescription
tradeValueCollateraluint256Amount of collateral sent to trader, collateral + pnl (collateral precision)

_openTradePrep

function _openTradePrep(struct ITradingStorage.Trade _trade, uint256 _executionPrice, uint256 _oraclePrice, uint256 _spreadP, uint256 _maxSlippageP) internal view returns (uint256 priceImpactP, uint256 priceAfterImpact, enum ITradingCallbacks.CancelReason cancelReason)
Makes pre-trade checks: price impact, if trade should be cancelled based on parameters like: PnL, leverage, slippage, etc.

Parameters

NameTypeDescription
_tradeITradingStorage.Tradetrade input
_executionPriceuint256execution price (1e10 precision)
_oraclePriceuint256oracle price (1e10 precision)
_spreadPuint256spread % (1e10 precision)
_maxSlippagePuint256max slippage % (1e3 precision)

_getPendingOrder

function _getPendingOrder(struct ITradingStorage.Id _orderId) internal view returns (struct ITradingStorage.PendingOrder)
Returns pending order from storage

Parameters

NameTypeDescription
_orderIdITradingStorage.IdOrder ID

Return Values

NameTypeDescription
[0]ITradingStorage.PendingOrderPending order

_getCollateralPriceUsd

function _getCollateralPriceUsd(uint8 _collateralIndex) internal view returns (uint256)
Returns collateral price in USD

Parameters

NameTypeDescription
_collateralIndexuint8Collateral index

Return Values

NameTypeDescription
[0]uint256Collateral price in USD

_getTrade

function _getTrade(address _trader, uint32 _index) internal view returns (struct ITradingStorage.Trade)
Returns trade from storage

Parameters

NameTypeDescription
_traderaddressTrader address
_indexuint32Trade index

Return Values

NameTypeDescription
[0]ITradingStorage.TradeTrade

_getTradeInfo

function _getTradeInfo(address _trader, uint32 _index) internal view returns (struct ITradingStorage.TradeInfo)
Returns trade info from storage

Parameters

NameTypeDescription
_traderaddressTrader address
_indexuint32Trade index

Return Values

NameTypeDescription
[0]ITradingStorage.TradeInfoTradeInfo