Gains Network
  • 📚Home
  • Gains Network
    • 🔎Overview
    • 🍏GNS Token
    • 📔Contract Addresses
      • Apechain Mainnet
      • Arbitrum Mainnet
      • Base Mainnet
      • Polygon Mainnet
  • gTrade (Leveraged Trading)
    • 🔎Overview
    • 🎛️Setting up to trade
      • 🟣Polygon Network Setup
      • 🔵Arbitrum Network Setup
    • 🏦Opening / Closing trades
    • 💲Trade Collaterals
      • Spotlight: WETH
    • 📖Asset classes
      • 🪙Cryptocurrencies
      • 💵Forex
      • 🛢️Commodities
    • 🎫Fees & Spread
    • 📰Pair List
    • 🧒How to use Practice Mode
    • ⚡One-Click Trading (1CT)
    • 🌌gTrade Solana
    • 📺Video tutorials
  • Loyalty Programs
    • Prime Trader
    • gTrade Credits
  • Community
    • gTrade Guardians
    • Governance forum
  • Reward Pools
    • 💚GNS Staking
    • 👛gToken Vaults
      • 👷Staker Functions
      • ❔Staker FAQ
      • ⏳Upgrades, updates, and timelocks
    • 🔼Active Pools & Incentives
  • Help
    • ❓FAQ
    • ⏳Chain congestion
  • Bridges
    • 🪐Arbitrum <-> Polygon Bridge
    • 🪐ERC20 Bridge (Polygon)
    • 🪐NFT Bridge (Polygon)
  • Developer
    • Integrators
      • Trading Contracts
      • Backend
      • Price Feed
      • Guides
        • v9 migration
        • Calculating borrowing fees
        • Calculating liquidation price
    • Technical Reference
      • Contracts
        • Changelogs
          • v9.2.1 Update
          • v9.1 Update
          • v9.1.1 Update
          • v9 Update
        • Core
          • Abstract
            • GNSAddressStore
            • GNSDiamondCut
            • GNSDiamondLoupe
            • GNSDiamondStorage
          • Facets
            • GNSBorrowingFees
            • GNSOtc
            • GNSPriceAggregator
            • GNSTradingInteractions
            • GNSTriggerRewards
            • GNSFeeTiers
            • GNSPairsStorage
            • GNSPriceImpact
            • GNSReferrals
            • GNSTradingCallbacks
            • GNSTradingStorage
          • GNSMultiCollatDiamond
          • GNSStaking
          • GToken
          • GTokenOpenPnlFeed
        • Interfaces
          • Libraries
            • IBorrowingFeesUtils
            • IOtcUtils
            • IPriceAggregatorUtils
            • ITriggerRewardsUtils
            • IFeeTiersUtils
            • IPairsStorageUtils
            • IPriceImpactUtils
            • IReferralsUtils
            • ITradingCallbacksUtils
            • ITradingCommonUtils
            • ITradingInteractionsUtils
            • ITradingStorageUtils
            • IUpdateLeverageUtils
            • IUpdatePositionSizeUtils
          • Types
            • IAddressStore
            • IBorrowingFees
            • IDiamondStorage
            • IOtc
            • IPriceAggregator
            • ITradingStorage
            • ITradingInteractions
            • ITriggerRewards
            • ITypes
            • IUpdateLeverage
            • IPairsStorage
            • IFeeTiers
            • IPriceImpact
            • IReferrals
            • ITradingCallbacks
            • IUpdatePositionSize
          • IChainlinkFeed
          • IArbSys
          • IChainlinkOracle
          • IERC20
          • IERC721
          • IERC721Design
          • IGeneralErrors
          • IGNSAddressStore
          • IGNSDiamond
          • IGNSDiamondCut
          • IGNSMultiCollatDiamond
          • IGNSDiamondLoupe
          • IGNSStaking
          • IGToken
          • IGTokenLockedDepositNft
          • IGTokenOpenPnlFeed
          • IGTokenLockedDepositNftDesign
          • ILiquidityPool
          • IRateProvider
          • IOwnable
        • Libraries
          • updateLeverage
            • UpdateLeverageLifecycles
          • updatePositionSize
            • IncreasePositionSizeUtils
            • DecreasePositionSizeUtils
            • UpdatePositionSizeLifecycles
          • AddressStoreUtils
          • ChainlinkClientUtils
          • ChainUtils
          • ConstantsUtils
          • CollateralUtils
          • DiamondUtils
          • LiquidityPoolUtils
          • OtcUtils
          • PackingUtils
          • StorageUtils
          • TriggerRewardsUtils
          • ArrayGetters
          • BorrowingFeesUtils
          • FeeTiersUtils
          • PriceAggregatorUtils
          • PriceImpactUtils
          • ReferralsUtils
          • TradingCallbacksUtils
          • PairsStorageUtils
          • TradingCommonUtils
          • TradingStorageUtils
          • TradingInteractionsUtils
        • Misc
          • EpochBasedTokenClaim
          • GNSCompensationHandler
          • GTokenRateProvider
          • GTokenLockedDepositNftDesign
          • ManagerTimelock
          • OwnerTimelock
          • VotingDelegator
        • Tokens
          • GainsNetworkToken
          • GTokenLockedDepositNft
      • Backend
        • Backend Types
      • SDK
        • Client Types
  • Archived
    • 🖼️gFARM2 NFTs
Powered by GitBook
On this page
  • requestIncreasePositionSize
  • Parameters
  • requestDecreasePositionSize
  • Parameters
  • executeIncreasePositionSizeMarket
  • Parameters
  • executeDecreasePositionSizeMarket
  • Parameters
  • _getMultiCollatDiamond
  • _baseValidateRequest
  • Parameters
  • _initiateRequest
  • Parameters
  • _validateBaseFulfillment
  • Parameters

Was this helpful?

  1. Developer
  2. Technical Reference
  3. Contracts
  4. Libraries
  5. updatePositionSize

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

PreviousDecreasePositionSizeUtilsNextAddressStoreUtils

Last updated 8 months ago

Was this helpful?

IUpdatePositionSize.IncreasePositionSizeInput
IUpdatePositionSize.DecreasePositionSizeInput
ITradingStorage.PendingOrder
ITradingCallbacks.AggregatorAnswer
ITradingStorage.PendingOrder
ITradingCallbacks.AggregatorAnswer
ITradingStorage.Trade
ITradingStorage.Trade
ITradingCallbacks.AggregatorAnswer