GNSTradingStorage
Facet #5: Trading storage
constructor
constructor() public
initializeTradingStorage
function initializeTradingStorage(address _gns, address _gnsStaking, address[] _collaterals, address[] _gTokens) external
Initializes the trading storage facet
Parameters
_gns
address
address of the gns token
_gnsStaking
address
address of the gns staking contract
_collaterals
address[]
_gTokens
address[]
updateTradingActivated
function updateTradingActivated(enum ITradingStorage.TradingActivated _activated) external
Updates the trading activated state
Parameters
_activated
enum ITradingStorage.TradingActivated
the new trading activated state
addCollateral
function addCollateral(address _collateral, address _gToken) external
Adds a new supported collateral
Parameters
_collateral
address
the address of the collateral
_gToken
address
the gToken contract of the collateral
toggleCollateralActiveState
function toggleCollateralActiveState(uint8 _collateralIndex) external
Toggles the active state of a supported collateral
Parameters
_collateralIndex
uint8
index of the collateral
updateGToken
function updateGToken(address _collateral, address _gToken) external
Updates the contracts of a supported collateral trading stack
Parameters
_collateral
address
address of the collateral
_gToken
address
the gToken contract of the collateral
storeTrade
function storeTrade(struct ITradingStorage.Trade _trade, struct ITradingStorage.TradeInfo _tradeInfo) external virtual returns (struct ITradingStorage.Trade)
Stores a new trade (trade/limit/stop)
Parameters
updateTradeMaxClosingSlippageP
function updateTradeMaxClosingSlippageP(struct ITradingStorage.Id _tradeId, uint16 _maxSlippageP) external virtual
Updates an existing trade max closing slippage %
Parameters
_maxSlippageP
uint16
new max slippage % (1e3 precision)
updateTradeCollateralAmount
function updateTradeCollateralAmount(struct ITradingStorage.Id _tradeId, uint120 _collateralAmount) external virtual
Updates an open trade collateral
Parameters
_collateralAmount
uint120
new collateral amount value (collateral precision)
updateTradePosition
function updateTradePosition(struct ITradingStorage.Id _tradeId, uint120 _collateralAmount, uint24 _leverage, uint64 _openPrice, bool _isPartialIncrease, bool _isPnlPositive) external virtual
Updates an open trade collateral
Parameters
_collateralAmount
uint120
new collateral amount value (collateral precision)
_leverage
uint24
new leverage value
_openPrice
uint64
new open price value
_isPartialIncrease
bool
refreshes trade liquidation params if true
_isPnlPositive
bool
whether the pnl is positive (only relevant when closing)
updateOpenOrderDetails
function updateOpenOrderDetails(struct ITradingStorage.Id _tradeId, uint64 _openPrice, uint64 _tp, uint64 _sl, uint16 _maxSlippageP) external virtual
Updates an open order details (limit/stop)
Parameters
_openPrice
uint64
new open price (1e10)
_tp
uint64
new take profit price (1e10)
_sl
uint64
new stop loss price (1e10)
_maxSlippageP
uint16
new max slippage % value (1e3)
updateTradeTp
function updateTradeTp(struct ITradingStorage.Id _tradeId, uint64 _newTp) external virtual
Updates the take profit of an open trade
Parameters
_newTp
uint64
the new take profit (1e10 precision)
updateTradeSl
function updateTradeSl(struct ITradingStorage.Id _tradeId, uint64 _newSl) external virtual
Updates the stop loss of an open trade
Parameters
_newSl
uint64
the new sl (1e10 precision)
closeTrade
function closeTrade(struct ITradingStorage.Id _tradeId, bool _isPnlPositive) external virtual
Marks an open trade/limit/stop as closed
Parameters
_isPnlPositive
bool
whether the pnl is positive
storePendingOrder
function storePendingOrder(struct ITradingStorage.PendingOrder _pendingOrder) external virtual returns (struct ITradingStorage.PendingOrder)
Stores a new pending order
Parameters
closePendingOrder
function closePendingOrder(struct ITradingStorage.Id _orderId) external virtual
Closes a pending order
Parameters
getCollateral
function getCollateral(uint8 _index) external view returns (struct ITradingStorage.Collateral)
Returns collateral data by index
Parameters
_index
uint8
the index of the supported collateral
isCollateralActive
function isCollateralActive(uint8 _index) external view returns (bool)
Returns whether can open new trades with a collateral
Parameters
_index
uint8
the index of the collateral to check
isCollateralListed
function isCollateralListed(uint8 _index) external view returns (bool)
Returns whether a collateral has been listed
Parameters
_index
uint8
the index of the collateral to check
getCollateralsCount
function getCollateralsCount() external view returns (uint8)
Returns the number of supported collaterals
getCollaterals
function getCollaterals() external view returns (struct ITradingStorage.Collateral[])
Returns the supported collaterals
getCollateralIndex
function getCollateralIndex(address _collateral) external view returns (uint8)
Returns the index of a supported collateral
Parameters
_collateral
address
the address of the collateral
getTradingActivated
function getTradingActivated() external view returns (enum ITradingStorage.TradingActivated)
Returns the trading activated state
getTraderStored
function getTraderStored(address _trader) external view returns (bool)
Returns whether a trader is stored in the traders array
Parameters
_trader
address
trader to check
getTradersCount
function getTradersCount() external view returns (uint256)
Returns the length of the traders array
getTraders
function getTraders(uint32 _offset, uint32 _limit) external view returns (address[])
Returns all traders that have open trades using a pagination system
Parameters
_offset
uint32
start index in the traders array
_limit
uint32
end index in the traders array
getTrade
function getTrade(address _trader, uint32 _index) external view returns (struct ITradingStorage.Trade)
Returns open trade/limit/stop order
Parameters
_trader
address
address of the trader
_index
uint32
index of the trade for trader
getTrades
function getTrades(address _trader) external view returns (struct ITradingStorage.Trade[])
Returns all open trades/limit/stop orders for a trader
Parameters
_trader
address
address of the trader
getAllTradesForTraders
function getAllTradesForTraders(address[] _traders, uint256 _offset, uint256 _limit) external view returns (struct ITradingStorage.Trade[])
Returns all trade/limit/stop orders using a pagination system
Parameters
_traders
address[]
list of traders to return trades for
_offset
uint256
index of first trade to return
_limit
uint256
index of last trade to return
getAllTrades
function getAllTrades(uint256 _offset, uint256 _limit) external view returns (struct ITradingStorage.Trade[])
Returns all trade/limit/stop orders using a pagination system. Calls getAllTradesForTraders
internally with all traders.
Parameters
_offset
uint256
index of first trade to return
_limit
uint256
index of last trade to return
getTradeInfo
function getTradeInfo(address _trader, uint32 _index) external view returns (struct ITradingStorage.TradeInfo)
Returns trade info of an open trade/limit/stop order
Parameters
_trader
address
address of the trader
_index
uint32
index of the trade for trader
getTradeInfos
function getTradeInfos(address _trader) external view returns (struct ITradingStorage.TradeInfo[])
Returns all trade infos of open trade/limit/stop orders for a trader
Parameters
_trader
address
address of the trader
getAllTradeInfosForTraders
function getAllTradeInfosForTraders(address[] _traders, uint256 _offset, uint256 _limit) external view returns (struct ITradingStorage.TradeInfo[])
Returns all trade infos of open trade/limit/stop orders using a pagination system
Parameters
_traders
address[]
list of traders to return tradeInfo for
_offset
uint256
index of first tradeInfo to return
_limit
uint256
index of last tradeInfo to return
getAllTradeInfos
function getAllTradeInfos(uint256 _offset, uint256 _limit) external view returns (struct ITradingStorage.TradeInfo[])
Returns all trade infos of open trade/limit/stop orders using a pagination system. Calls getAllTradeInfosForTraders
internally with all traders.
Parameters
_offset
uint256
index of first tradeInfo to return
_limit
uint256
index of last tradeInfo to return
getPendingOrder
function getPendingOrder(struct ITradingStorage.Id _orderId) external view returns (struct ITradingStorage.PendingOrder)
Returns a pending ordeer
Parameters
getPendingOrders
function getPendingOrders(address _user) external view returns (struct ITradingStorage.PendingOrder[])
Returns all pending orders for a trader
Parameters
_user
address
address of the trader
getAllPendingOrdersForTraders
function getAllPendingOrdersForTraders(address[] _traders, uint256 _offset, uint256 _limit) external view returns (struct ITradingStorage.PendingOrder[])
Returns all pending orders using a pagination system
Parameters
_traders
address[]
list of traders to return pendingOrder for
_offset
uint256
index of first pendingOrder to return
_limit
uint256
index of last pendingOrder to return
getAllPendingOrders
function getAllPendingOrders(uint256 _offset, uint256 _limit) external view returns (struct ITradingStorage.PendingOrder[])
Returns all pending orders using a pagination system Calls getAllPendingOrdersForTraders
internally with all traders.
Parameters
_offset
uint256
index of first pendingOrder to return
_limit
uint256
index of last pendingOrder to return
getTradePendingOrderBlock
function getTradePendingOrderBlock(struct ITradingStorage.Id _tradeId, enum ITradingStorage.PendingOrderType _orderType) external view returns (uint256)
Returns the block number of the pending order for a trade (0 = doesn't exist)
Parameters
_orderType
enum ITradingStorage.PendingOrderType
pending order type to check
getCounters
function getCounters(address _trader, enum ITradingStorage.CounterType _type) external view returns (struct ITradingStorage.Counter)
Returns the counters of a trader (currentIndex / open count for trades/tradeInfos and pendingOrders mappings)
Parameters
_trader
address
address of the trader
_type
enum ITradingStorage.CounterType
the counter type (trade/pending order)
getCountersForTraders
function getCountersForTraders(address[] _traders, enum ITradingStorage.CounterType _type) external view returns (struct ITradingStorage.Counter[])
Returns the counters for a list of traders
Parameters
_traders
address[]
the list of traders
_type
enum ITradingStorage.CounterType
the counter type (trade/pending order)
getGToken
function getGToken(uint8 _collateralIndex) external view returns (address)
Returns the address of the gToken for a collateral stack
Parameters
_collateralIndex
uint8
the index of the supported collateral
getTradeLiquidationParams
function getTradeLiquidationParams(address _trader, uint32 _index) external view returns (struct IPairsStorage.GroupLiquidationParams)
Returns the liquidation params for a trade
Parameters
_trader
address
address of the trader
_index
uint32
index of the trade for trader
getTradesLiquidationParams
function getTradesLiquidationParams(address _trader) external view returns (struct IPairsStorage.GroupLiquidationParams[])
Returns all trade liquidation params of open trade/limit/stop orders for a trader
Parameters
_trader
address
address of the trader
getAllTradesLiquidationParamsForTraders
function getAllTradesLiquidationParamsForTraders(address[] _traders, uint256 _offset, uint256 _limit) external view returns (struct IPairsStorage.GroupLiquidationParams[])
Returns all trade liquidation params of open trade/limit/stop orders using a pagination system
Parameters
_traders
address[]
list of traders to return liq params for
_offset
uint256
index of first liq param to return
_limit
uint256
index of last liq param to return
getAllTradesLiquidationParams
function getAllTradesLiquidationParams(uint256 _offset, uint256 _limit) external view returns (struct IPairsStorage.GroupLiquidationParams[])
Returns all trade liquidation params of open trade/limit/stop orders using a pagination system Calls getAllTradesLiquidationParamsForTraders
internally with all traders.
Parameters
_offset
uint256
index of first liq param to return
_limit
uint256
index of last liq param to return
getCurrentContractsVersion
function getCurrentContractsVersion() external pure returns (enum ITradingStorage.ContractsVersion)
Returns the current contracts version
Last updated
Was this helpful?