UpdatePositionSizeLifecycles

This is an external library for position size updates lifecycles Used by GNSTrading and GNSTradingCallbacks facets

requestIncreasePositionSize

function requestIncreasePositionSize(struct IUpdatePositionSize.IncreasePositionSizeInput _input) external

Initiate increase position size order, done in 2 steps because position size changes

Parameters

Name
Type
Description

_input

request increase position size input struct

requestDecreasePositionSize

function requestDecreasePositionSize(struct IUpdatePositionSize.DecreasePositionSizeInput _input) external

Initiate decrease position size order, done in 2 steps because position size changes

Parameters

Name
Type
Description

_input

request decrease position size input struct

executeIncreasePositionSizeMarket

function executeIncreasePositionSizeMarket(struct ITradingStorage.PendingOrder _order, struct ITradingCallbacks.AggregatorAnswer _answer) external

Execute increase position size market callback

Parameters

Name
Type
Description

_order

corresponding pending order

_answer

price aggregator answer

executeDecreasePositionSizeMarket

function executeDecreasePositionSizeMarket(struct ITradingStorage.PendingOrder _order, struct ITradingCallbacks.AggregatorAnswer _answer) external

Execute decrease position size market callback

Parameters

Name
Type
Description

_order

corresponding pending order

_answer

price aggregator answer

_getMultiCollatDiamond

function _getMultiCollatDiamond() internal view returns (contract IGNSMultiCollatDiamond)

Returns current address as multi-collateral diamond interface to call other facets functions.

_baseValidateRequest

function _baseValidateRequest(address _trader, uint32 _index) internal view returns (struct ITradingStorage.Trade trade)

Basic validation for increase/decrease position size request

Parameters

Name
Type
Description

_trader

address

trader address

_index

uint32

trade index

_initiateRequest

function _initiateRequest(struct ITradingStorage.Trade _trade, bool _isIncrease, uint120 _collateralAmount, uint24 _leverage, uint256 _positionSizeCollateralDelta, uint64 _expectedPrice, uint16 _maxSlippageP) internal returns (struct ITradingStorage.Id orderId)

Creates pending order, makes price aggregator request, and returns corresponding pending order id

Parameters

Name
Type
Description

_trade

trade to update

_isIncrease

bool

whether is increase or decrease position size order

_collateralAmount

uint120

partial trade collateral amount (collateral precision)

_leverage

uint24

partial trade leverage (1e3)

_positionSizeCollateralDelta

uint256

position size delta in collateral tokens (collateral precision)

_expectedPrice

uint64

reference price for max slippage check (1e10), only useful for increase position size

_maxSlippageP

uint16

max slippage % (1e3), only useful for increase position size

_validateBaseFulfillment

function _validateBaseFulfillment(struct ITradingStorage.Trade _trade, struct ITradingCallbacks.AggregatorAnswer _answer) internal pure returns (enum ITradingCallbacks.CancelReason)

Basic validation for callbacks, returns corresponding cancel reason

Parameters

Name
Type
Description

_trade

trade struct

_answer

price aggegator answer

Last updated