IPairsStorageUtils

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

initializeGroupLiquidationParams

function initializeGroupLiquidationParams(struct IPairsStorage.GroupLiquidationParams[] _groupLiquidationParams) external

Initializes liquidation params for all existing groups

Parameters

Name
Type
Description

_groupLiquidationParams

liquidation params for each group (index corresponds to group index)

initializeNewFees

function initializeNewFees(struct IPairsStorage.GlobalTradeFeeParams _tradeFeeParams) external

Copies all existing fee groups to new mapping, multiplies existing groups min/max lev by 1e3, initializes new global trade fee params

Parameters

Name
Type
Description

_tradeFeeParams

global trade fee params

addPairs

function addPairs(struct IPairsStorage.Pair[] _pairs) external

Adds new trading pairs

Parameters

Name
Type
Description

_pairs

pairs to add

updatePairs

function updatePairs(uint256[] _pairIndices, struct IPairsStorage.Pair[] _pairs) external

Updates trading pairs

Parameters

Name
Type
Description

_pairIndices

uint256[]

indices of pairs

_pairs

new pairs values

addGroups

function addGroups(struct IPairsStorage.Group[] _groups) external

Adds new pair groups

Parameters

Name
Type
Description

_groups

groups to add

updateGroups

function updateGroups(uint256[] _ids, struct IPairsStorage.Group[] _groups) external

Updates pair groups

Parameters

Name
Type
Description

_ids

uint256[]

indices of groups

_groups

new groups values

addFees

function addFees(struct IPairsStorage.FeeGroup[] _fees) external

Adds new pair fees groups

Parameters

Name
Type
Description

_fees

fees to add

updateFees

function updateFees(uint256[] _ids, struct IPairsStorage.FeeGroup[] _fees) external

Updates pair fees groups

Parameters

Name
Type
Description

_ids

uint256[]

indices of fees

_fees

new fees values

setPairCustomMaxLeverages

function setPairCustomMaxLeverages(uint256[] _indices, uint256[] _values) external

Updates pair custom max leverages (if unset group default is used); useful to delist a pair if new value is below the pair's group minLeverage

Parameters

Name
Type
Description

_indices

uint256[]

indices of pairs

_values

uint256[]

new custom max leverages (1e3 precision)

setGroupLiquidationParams

function setGroupLiquidationParams(uint256 _groupIndex, struct IPairsStorage.GroupLiquidationParams _params) external

Updates group liquidation params (will only apply for trades opened after the change)

Parameters

Name
Type
Description

_groupIndex

uint256

index of group

_params

new liquidation params

setGlobalTradeFeeParams

function setGlobalTradeFeeParams(struct IPairsStorage.GlobalTradeFeeParams _feeParams) external

Updates global trade fee params

Parameters

Name
Type
Description

_feeParams

new fee params

pairJob

function pairJob(uint256 _pairIndex) external view returns (string from, string to)

Returns data needed by price aggregator when doing a new price request

Parameters

Name
Type
Description

_pairIndex

uint256

index of pair

Return Values

Name
Type
Description

from

string

pair from (eg. BTC)

to

string

pair to (eg. USD)

isPairListed

function isPairListed(string _from, string _to) external view returns (bool)

Returns whether a pair is listed

Parameters

Name
Type
Description

_from

string

pair from (eg. BTC)

_to

string

pair to (eg. USD)

isPairIndexListed

function isPairIndexListed(uint256 _pairIndex) external view returns (bool)

Returns whether a pair index is listed

Parameters

Name
Type
Description

_pairIndex

uint256

index of pair to check

pairs

function pairs(uint256 _index) external view returns (struct IPairsStorage.Pair)

Returns a pair's details

Parameters

Name
Type
Description

_index

uint256

index of pair

pairsCount

function pairsCount() external view returns (uint256)

Returns number of listed pairs

pairSpreadP

function pairSpreadP(uint256 _pairIndex) external view returns (uint256)

Returns a pair's spread % (1e10 precision)

Parameters

Name
Type
Description

_pairIndex

uint256

index of pair

pairMinLeverage

function pairMinLeverage(uint256 _pairIndex) external view returns (uint256)

Returns a pair's min leverage (1e3 precision)

Parameters

Name
Type
Description

_pairIndex

uint256

index of pair

pairTotalPositionSizeFeeP

function pairTotalPositionSizeFeeP(uint256 _pairIndex) external view returns (uint256)

Returns a pair's total position size fee % (1e10 precision)

Parameters

Name
Type
Description

_pairIndex

uint256

index of pair

pairTotalLiqCollateralFeeP

function pairTotalLiqCollateralFeeP(uint256 _pairIndex) external view returns (uint256)

Returns a pair's total liquidation collateral fee % (1e10 precision)

Parameters

Name
Type
Description

_pairIndex

uint256

index of pair

pairOraclePositionSizeFeeP

function pairOraclePositionSizeFeeP(uint256 _pairIndex) external view returns (uint256)

Returns a pair's oracle position size fee % (1e10 precision)

Parameters

Name
Type
Description

_pairIndex

uint256

index of pair

pairMinPositionSizeUsd

function pairMinPositionSizeUsd(uint256 _pairIndex) external view returns (uint256)

Returns a pair's min position size in USD (1e18 precision)

Parameters

Name
Type
Description

_pairIndex

uint256

index of pair

getGlobalTradeFeeParams

function getGlobalTradeFeeParams() external view returns (struct IPairsStorage.GlobalTradeFeeParams)

Returns global trade fee params

pairMinFeeUsd

function pairMinFeeUsd(uint256 _pairIndex) external view returns (uint256)

Returns a pair's minimum trading fee in USD (1e18 precision)

Parameters

Name
Type
Description

_pairIndex

uint256

index of pair

groups

function groups(uint256 _index) external view returns (struct IPairsStorage.Group)

Returns a group details

Parameters

Name
Type
Description

_index

uint256

index of group

groupsCount

function groupsCount() external view returns (uint256)

Returns number of listed groups

fees

function fees(uint256 _index) external view returns (struct IPairsStorage.FeeGroup)

Returns a fee group details

Parameters

Name
Type
Description

_index

uint256

index of fee group

feesCount

function feesCount() external view returns (uint256)

Returns number of listed fee groups

pairMaxLeverage

function pairMaxLeverage(uint256 _pairIndex) external view returns (uint256)

Returns a pair's active max leverage; custom if set, otherwise group default (1e3 precision)

Parameters

Name
Type
Description

_pairIndex

uint256

index of pair

pairCustomMaxLeverage

function pairCustomMaxLeverage(uint256 _pairIndex) external view returns (uint256)

Returns a pair's custom max leverage; 0 if not set (1e3 precision)

Parameters

Name
Type
Description

_pairIndex

uint256

index of pair

getAllPairsRestrictedMaxLeverage

function getAllPairsRestrictedMaxLeverage() external view returns (uint256[])

Returns all listed pairs custom max leverages (1e3 precision)

getGroupLiquidationParams

function getGroupLiquidationParams(uint256 _groupIndex) external view returns (struct IPairsStorage.GroupLiquidationParams)

Returns a group's liquidation params

getPairLiquidationParams

function getPairLiquidationParams(uint256 _pairIndex) external view returns (struct IPairsStorage.GroupLiquidationParams)

Returns a pair's group liquidation params

PairAdded

event PairAdded(uint256 index, string from, string to)

Emitted when a new pair is listed

Parameters

Name
Type
Description

index

uint256

index of pair

from

string

pair from (eg. BTC)

to

string

pair to (eg. USD)

PairUpdated

event PairUpdated(uint256 index)

Emitted when a pair is updated

Parameters

Name
Type
Description

index

uint256

index of pair

PairCustomMaxLeverageUpdated

event PairCustomMaxLeverageUpdated(uint256 index, uint256 maxLeverage)

Emitted when a pair's custom max leverage is updated

Parameters

Name
Type
Description

index

uint256

index of pair

maxLeverage

uint256

new max leverage (1e3 precision)

GroupAdded

event GroupAdded(uint256 index, string name)

Emitted when a new group is added

Parameters

Name
Type
Description

index

uint256

index of group

name

string

name of group

GroupUpdated

event GroupUpdated(uint256 index)

Emitted when a group is updated

Parameters

Name
Type
Description

index

uint256

index of group

FeeAdded

event FeeAdded(uint256 index, struct IPairsStorage.FeeGroup feeGroup)

Emitted when a new fee group is added

Parameters

Name
Type
Description

index

uint256

index of fee group

feeGroup

struct IPairsStorage.FeeGroup

fee group

FeeUpdated

event FeeUpdated(uint256 index, struct IPairsStorage.FeeGroup feeGroup)

Emitted when a fee group is updated

Parameters

Name
Type
Description

index

uint256

index of fee group

feeGroup

struct IPairsStorage.FeeGroup

updated fee group

GroupLiquidationParamsUpdated

event GroupLiquidationParamsUpdated(uint256 index, struct IPairsStorage.GroupLiquidationParams params)

Emitted when a group liquidation params are updated

Parameters

Name
Type
Description

index

uint256

index of group

params

struct IPairsStorage.GroupLiquidationParams

new group liquidation params

GlobalTradeFeeParamsUpdated

event GlobalTradeFeeParamsUpdated(struct IPairsStorage.GlobalTradeFeeParams feeParams)

Emitted when global trade fee params are updated

Parameters

Name
Type
Description

feeParams

struct IPairsStorage.GlobalTradeFeeParams

new fee params

PairNotListed

error PairNotListed()

GroupNotListed

error GroupNotListed()

FeeNotListed

error FeeNotListed()

WrongLeverages

error WrongLeverages()

WrongFees

error WrongFees()

PairAlreadyListed

error PairAlreadyListed()

MaxLiqSpreadPTooHigh

error MaxLiqSpreadPTooHigh()

WrongLiqParamsThresholds

error WrongLiqParamsThresholds()

WrongLiqParamsLeverages

error WrongLiqParamsLeverages()

StartLiqThresholdTooHigh

error StartLiqThresholdTooHigh()

EndLiqThresholdTooLow

error EndLiqThresholdTooLow()

StartLeverageTooLow

error StartLeverageTooLow()

EndLeverageTooHigh

error EndLeverageTooHigh()

Last updated