ITradingStorage
Contains the types for the GNSTradingStorage facet
TradingStorage
struct TradingStorage {
enum ITradingStorage.TradingActivated tradingActivated;
uint8 lastCollateralIndex;
uint240 __placeholder;
mapping(uint8 => struct ITradingStorage.Collateral) collaterals;
mapping(uint8 => address) gTokens;
mapping(address => uint8) collateralIndex;
mapping(address => mapping(uint32 => struct ITradingStorage.Trade)) trades;
mapping(address => mapping(uint32 => struct ITradingStorage.TradeInfo)) tradeInfos;
mapping(address => mapping(uint32 => mapping(enum ITradingStorage.PendingOrderType => uint256))) tradePendingOrderBlock;
mapping(address => mapping(uint32 => struct ITradingStorage.PendingOrder)) pendingOrders;
mapping(address => mapping(enum ITradingStorage.CounterType => struct ITradingStorage.Counter)) userCounters;
address[] traders;
mapping(address => bool) traderStored;
mapping(address => mapping(uint32 => struct IPairsStorage.GroupLiquidationParams)) tradeLiquidationParams;
uint256[38] __gap;
}
PendingOrderType
enum PendingOrderType {
MARKET_OPEN,
MARKET_CLOSE,
LIMIT_OPEN,
STOP_OPEN,
TP_CLOSE,
SL_CLOSE,
LIQ_CLOSE,
UPDATE_LEVERAGE,
MARKET_PARTIAL_OPEN,
MARKET_PARTIAL_CLOSE
}
CounterType
enum CounterType {
TRADE,
PENDING_ORDER
}
TradeType
enum TradeType {
TRADE,
LIMIT,
STOP
}
TradingActivated
enum TradingActivated {
ACTIVATED,
CLOSE_ONLY,
PAUSED
}
ContractsVersion
enum ContractsVersion {
BEFORE_V9_2,
V9_2
}
Collateral
struct Collateral {
address collateral;
bool isActive;
uint88 __placeholder;
uint128 precision;
uint128 precisionDelta;
}
Id
struct Id {
address user;
uint32 index;
}
Trade
struct Trade {
address user;
uint32 index;
uint16 pairIndex;
uint24 leverage;
bool long;
bool isOpen;
uint8 collateralIndex;
enum ITradingStorage.TradeType tradeType;
uint120 collateralAmount;
uint64 openPrice;
uint64 tp;
uint64 sl;
uint192 __placeholder;
}
TradeInfo
struct TradeInfo {
uint32 createdBlock;
uint32 tpLastUpdatedBlock;
uint32 slLastUpdatedBlock;
uint16 maxSlippageP;
uint48 lastOiUpdateTs;
uint48 collateralPriceUsd;
enum ITradingStorage.ContractsVersion contractsVersion;
uint32 lastPosIncreaseBlock;
uint8 __placeholder;
}
PendingOrder
struct PendingOrder {
struct ITradingStorage.Trade trade;
address user;
uint32 index;
bool isOpen;
enum ITradingStorage.PendingOrderType orderType;
uint32 createdBlock;
uint16 maxSlippageP;
}
Counter
struct Counter {
uint32 currentIndex;
uint32 openCount;
uint192 __placeholder;
}