ITradingStorageUtils

Interface for GNSTradingStorage facet (inherits types and also contains functions, events, and custom errors)

initializeTradingStorage

function initializeTradingStorage(address _gns, address _gnsStaking, address[] _collaterals, address[] _gTokens) external

Initializes the trading storage facet

Parameters

Name
Type
Description

_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

Name
Type
Description

_activated

enum ITradingStorage.TradingActivated

the new trading activated state

addCollateral

Adds a new supported collateral

Parameters

Name
Type
Description

_collateral

address

the address of the collateral

_gToken

address

the gToken contract of the collateral

toggleCollateralActiveState

Toggles the active state of a supported collateral

Parameters

Name
Type
Description

_collateralIndex

uint8

index of the collateral

updateGToken

Updates the contracts of a supported collateral trading stack

Parameters

Name
Type
Description

_collateral

address

address of the collateral

_gToken

address

the gToken contract of the collateral

storeTrade

Stores a new trade (trade/limit/stop)

Parameters

Name
Type
Description

_trade

trade to be stored

_tradeInfo

trade info to be stored

updateTradeMaxClosingSlippageP

Updates an existing trade max closing slippage %

Parameters

Name
Type
Description

_tradeId

id of the trade

_maxSlippageP

uint16

new max slippage % (1e3 precision)

updateTradeCollateralAmount

Updates an open trade collateral

Parameters

Name
Type
Description

_tradeId

id of updated trade

_collateralAmount

uint120

new collateral amount value (collateral precision)

updateTradePosition

Updates an open trade collateral

Parameters

Name
Type
Description

_tradeId

id of updated trade

_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

Updates an open order details (limit/stop)

Parameters

Name
Type
Description

_tradeId

id of updated trade

_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

Updates the take profit of an open trade

Parameters

Name
Type
Description

_tradeId

the trade id

_newTp

uint64

the new take profit (1e10 precision)

updateTradeSl

Updates the stop loss of an open trade

Parameters

Name
Type
Description

_tradeId

the trade id

_newSl

uint64

the new sl (1e10 precision)

closeTrade

Marks an open trade/limit/stop as closed

Parameters

Name
Type
Description

_tradeId

the trade id

_isPnlPositive

bool

whether the pnl is positive

storePendingOrder

Stores a new pending order

Parameters

Name
Type
Description

_pendingOrder

the pending order to be stored

closePendingOrder

Closes a pending order

Parameters

Name
Type
Description

_orderId

the id of the pending order to be closed

getCollateral

Returns collateral data by index

Parameters

Name
Type
Description

_index

uint8

the index of the supported collateral

isCollateralActive

Returns whether can open new trades with a collateral

Parameters

Name
Type
Description

_index

uint8

the index of the collateral to check

isCollateralListed

Returns whether a collateral has been listed

Parameters

Name
Type
Description

_index

uint8

the index of the collateral to check

getCollateralsCount

Returns the number of supported collaterals

getCollaterals

Returns the supported collaterals

getCollateralIndex

Returns the index of a supported collateral

Parameters

Name
Type
Description

_collateral

address

the address of the collateral

getTradingActivated

Returns the trading activated state

getTraderStored

Returns whether a trader is stored in the traders array

Parameters

Name
Type
Description

_trader

address

trader to check

getTradersCount

Returns the length of the traders array

getTraders

Returns all traders that have open trades using a pagination system

Parameters

Name
Type
Description

_offset

uint32

start index in the traders array

_limit

uint32

end index in the traders array

getTrade

Returns open trade/limit/stop order

Parameters

Name
Type
Description

_trader

address

address of the trader

_index

uint32

index of the trade for trader

getTrades

Returns all open trades/limit/stop orders for a trader

Parameters

Name
Type
Description

_trader

address

address of the trader

getAllTradesForTraders

Returns all trade/limit/stop orders using a pagination system

Parameters

Name
Type
Description

_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

Returns all trade/limit/stop orders using a pagination system. Calls getAllTradesForTraders internally with all traders.

Parameters

Name
Type
Description

_offset

uint256

index of first trade to return

_limit

uint256

index of last trade to return

getTradeInfo

Returns trade info of an open trade/limit/stop order

Parameters

Name
Type
Description

_trader

address

address of the trader

_index

uint32

index of the trade for trader

getTradeInfos

Returns all trade infos of open trade/limit/stop orders for a trader

Parameters

Name
Type
Description

_trader

address

address of the trader

getAllTradeInfosForTraders

Returns all trade infos of open trade/limit/stop orders using a pagination system

Parameters

Name
Type
Description

_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

Returns all trade infos of open trade/limit/stop orders using a pagination system. Calls getAllTradeInfosForTraders internally with all traders.

Parameters

Name
Type
Description

_offset

uint256

index of first tradeInfo to return

_limit

uint256

index of last tradeInfo to return

getPendingOrder

Returns a pending ordeer

Parameters

Name
Type
Description

_orderId

id of the pending order

getPendingOrders

Returns all pending orders for a trader

Parameters

Name
Type
Description

_user

address

address of the trader

getAllPendingOrdersForTraders

Returns all pending orders using a pagination system

Parameters

Name
Type
Description

_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

Returns all pending orders using a pagination system Calls getAllPendingOrdersForTraders internally with all traders.

Parameters

Name
Type
Description

_offset

uint256

index of first pendingOrder to return

_limit

uint256

index of last pendingOrder to return

getTradePendingOrderBlock

Returns the block number of the pending order for a trade (0 = doesn't exist)

Parameters

Name
Type
Description

_tradeId

id of the trade

_orderType

enum ITradingStorage.PendingOrderType

pending order type to check

getCounters

Returns the counters of a trader (currentIndex / open count for trades/tradeInfos and pendingOrders mappings)

Parameters

Name
Type
Description

_trader

address

address of the trader

_type

enum ITradingStorage.CounterType

the counter type (trade/pending order)

getCountersForTraders

Returns the counters for a list of traders

Parameters

Name
Type
Description

_traders

address[]

the list of traders

_type

enum ITradingStorage.CounterType

the counter type (trade/pending order)

getGToken

Returns the address of the gToken for a collateral stack

Parameters

Name
Type
Description

_collateralIndex

uint8

the index of the supported collateral

getTradeLiquidationParams

Returns the liquidation params for a trade

Parameters

Name
Type
Description

_trader

address

address of the trader

_index

uint32

index of the trade for trader

getTradesLiquidationParams

Returns all trade liquidation params of open trade/limit/stop orders for a trader

Parameters

Name
Type
Description

_trader

address

address of the trader

getAllTradesLiquidationParamsForTraders

Returns all trade liquidation params of open trade/limit/stop orders using a pagination system

Parameters

Name
Type
Description

_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

Returns all trade liquidation params of open trade/limit/stop orders using a pagination system Calls getAllTradesLiquidationParamsForTraders internally with all traders.

Parameters

Name
Type
Description

_offset

uint256

index of first liq param to return

_limit

uint256

index of last liq param to return

getCurrentContractsVersion

Returns the current contracts version

TradingActivatedUpdated

Emitted when the trading activated state is updated

Parameters

Name
Type
Description

activated

enum ITradingStorage.TradingActivated

the new trading activated state

CollateralAdded

Emitted when a new supported collateral is added

Parameters

Name
Type
Description

collateral

address

the address of the collateral

index

uint8

the index of the supported collateral

gToken

address

the gToken contract of the collateral

CollateralUpdated

Emitted when an existing supported collateral active state is updated

Parameters

Name
Type
Description

index

uint8

the index of the supported collateral

isActive

bool

the new active state

CollateralDisabled

Emitted when an existing supported collateral is disabled (can still close trades but not open new ones)

Parameters

Name
Type
Description

index

uint8

the index of the supported collateral

GTokenUpdated

Emitted when the contracts of a supported collateral trading stack are updated

Parameters

Name
Type
Description

collateral

address

the address of the collateral

index

uint8

the index of the supported collateral

gToken

address

the gToken contract of the collateral

TradeStored

Emitted when a new trade is stored

Parameters

Name
Type
Description

user

address

trade user

index

uint32

trade index

trade

struct ITradingStorage.Trade

the trade stored

tradeInfo

struct ITradingStorage.TradeInfo

the trade info stored

liquidationParams

struct IPairsStorage.GroupLiquidationParams

the trade liquidation params stored

TradeMaxClosingSlippagePUpdated

Emitted when the max closing slippage % of an open trade is updated

Parameters

Name
Type
Description

user

address

trade user

index

uint32

trade index

maxClosingSlippageP

uint16

new max closing slippage % value (1e3 precision)

TradeCollateralUpdated

Emitted when an open trade collateral is updated

Parameters

Name
Type
Description

user

address

trade user

index

uint32

trade index

collateralAmount

uint120

new collateral value (collateral precision)

TradePositionUpdated

Emitted when an open trade collateral is updated

Parameters

Name
Type
Description

user

address

trade user

index

uint32

trade index

collateralAmount

uint120

new collateral value (collateral precision)

leverage

uint24

new leverage value if present

openPrice

uint64

new open price value if present

newTp

uint64

newSl

uint64

isPartialIncrease

bool

true if trade liquidation params were refreshed

isPnlPositive

bool

true if trade pnl is positive (only relevant when closing)

OpenOrderDetailsUpdated

Emitted when an existing trade/limit order/stop order is updated

Parameters

Name
Type
Description

user

address

trade user

index

uint32

trade index

openPrice

uint64

new open price value (1e10)

tp

uint64

new take profit value (1e10)

sl

uint64

new stop loss value (1e10)

maxSlippageP

uint16

new max slippage % value (1e3)

TradeTpUpdated

Emitted when the take profit of an open trade is updated

Parameters

Name
Type
Description

user

address

trade user

index

uint32

trade index

newTp

uint64

the new take profit (1e10 precision)

TradeSlUpdated

Emitted when the stop loss of an open trade is updated

Parameters

Name
Type
Description

user

address

trade user

index

uint32

trade index

newSl

uint64

the new sl (1e10 precision)

TradeClosed

Emitted when an open trade is closed

Parameters

Name
Type
Description

user

address

trade user

index

uint32

trade index

isPnlPositive

bool

true if trade pnl is positive

PendingOrderStored

Emitted when a new pending order is stored

Parameters

Name
Type
Description

pendingOrder

struct ITradingStorage.PendingOrder

the pending order stored

PendingOrderClosed

Emitted when a pending order is closed

Parameters

Name
Type
Description

orderId

struct ITradingStorage.Id

the id of the pending order closed

MissingCollaterals

CollateralAlreadyActive

CollateralAlreadyDisabled

TradePositionSizeZero

TradeOpenPriceZero

TradePairNotListed

TradeTpInvalid

TradeSlInvalid

MaxSlippageZero

TradeInfoCollateralPriceUsdZero

Last updated

Was this helpful?