IFeeTiersUtils

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

initializeFeeTiers

function initializeFeeTiers(uint256[] _groupIndices, uint256[] _groupVolumeMultipliers, uint256[] _feeTiersIndices, struct IFeeTiers.FeeTier[] _feeTiers) external

Parameters

Name
Type
Description

_groupIndices

uint256[]

group indices (pairs storage fee index) to initialize

_groupVolumeMultipliers

uint256[]

corresponding group volume multipliers (1e3)

_feeTiersIndices

uint256[]

fee tiers indices to initialize

_feeTiers

fee tiers values to initialize (feeMultiplier, pointsThreshold)

setGroupVolumeMultipliers

function setGroupVolumeMultipliers(uint256[] _groupIndices, uint256[] _groupVolumeMultipliers) external

Updates groups volume multipliers

Parameters

Name
Type
Description

_groupIndices

uint256[]

indices of groups to update

_groupVolumeMultipliers

uint256[]

corresponding new volume multipliers (1e3)

setFeeTiers

Updates fee tiers

Parameters

Name
Type
Description

_feeTiersIndices

uint256[]

indices of fee tiers to update

_feeTiers

new fee tiers values (feeMultiplier, pointsThreshold)

setTradersFeeTiersEnrollment

Updates traders enrollment status in fee tiers

Parameters

Name
Type
Description

_traders

address[]

group of traders

_values

corresponding enrollment values

addTradersUnclaimedPoints

Credits points to traders

Parameters

Name
Type
Description

_traders

address[]

traders addresses

_creditTypes

enum IFeeTiers.CreditType[]

types of credit (IMMEDIATE, CLAIMABLE)

_points

uint224[]

points to credit (1e18)

updateTraderPoints

Increases daily points from a new trade, re-calculate trailing points, and cache daily fee tier for a trader.

Parameters

Name
Type
Description

_trader

address

trader address

_volumeUsd

uint256

trading volume in USD (1e18)

_pairIndex

uint256

pair index

calculateFeeAmount

Returns fee amount after applying the trader's active fee tier multiplier

Parameters

Name
Type
Description

_trader

address

address of trader

_normalFeeAmountCollateral

uint256

base fee amount (collateral precision)

getFeeTiersCount

Returns the current number of active fee tiers

getFeeTier

Returns a fee tier's details (feeMultiplier, pointsThreshold)

Parameters

Name
Type
Description

_feeTierIndex

uint256

fee tier index

getGroupVolumeMultiplier

Returns a group's volume multiplier

Parameters

Name
Type
Description

_groupIndex

uint256

group index (pairs storage fee index)

getFeeTiersTraderInfo

Returns a trader's info (lastDayUpdated, trailingPoints)

Parameters

Name
Type
Description

_trader

address

trader address

getFeeTiersTraderDailyInfo

Returns a trader's daily fee tier info (feeMultiplierCache, points)

Parameters

Name
Type
Description

_trader

address

trader address

_day

uint32

day

getTraderFeeTiersEnrollment

Returns a trader's fee tiers enrollment status

Parameters

Name
Type
Description

_trader

address

trader address

getTraderUnclaimedPoints

Returns a trader's unclaimed points, credited by Governance

Parameters

Name
Type
Description

_trader

address

trader address

GroupVolumeMultipliersUpdated

Emitted when group volume multipliers are updated

Parameters

Name
Type
Description

groupIndices

uint256[]

indices of updated groups

groupVolumeMultipliers

uint256[]

new corresponding volume multipliers (1e3)

FeeTiersUpdated

Emitted when fee tiers are updated

Parameters

Name
Type
Description

feeTiersIndices

uint256[]

indices of updated fee tiers

feeTiers

struct IFeeTiers.FeeTier[]

new corresponding fee tiers values (feeMultiplier, pointsThreshold)

TraderDailyPointsIncreased

Emitted when a trader's daily points are updated

Parameters

Name
Type
Description

trader

address

trader address

day

uint32

day

points

uint224

points added (1e18 precision)

TraderInfoFirstUpdate

Emitted when a trader info is updated for the first time

Parameters

Name
Type
Description

trader

address

address of trader

day

uint32

day

TraderTrailingPointsExpired

Emitted when a trader's trailing points are updated

Parameters

Name
Type
Description

trader

address

trader address

fromDay

uint32

from day

toDay

uint32

to day

expiredPoints

uint224

expired points amount (1e18 precision)

TraderInfoUpdated

Emitted when a trader's info is updated

Parameters

Name
Type
Description

trader

address

address of trader

traderInfo

struct IFeeTiers.TraderInfo

new trader info value (lastDayUpdated, trailingPoints)

TraderFeeMultiplierCached

Emitted when a trader's cached fee multiplier is updated (this is the one used in fee calculations)

Parameters

Name
Type
Description

trader

address

address of trader

day

uint32

day

feeMultiplier

uint32

new fee multiplier (1e3 precision)

TraderEnrollmentUpdated

Emitted when a trader's enrollment status is updated

Parameters

Name
Type
Description

trader

address

address of trader

enrollment

struct IFeeTiers.TraderEnrollment

trader's new enrollment status

TraderPointsCredited

Emitted when a trader is credited points by governance

Parameters

Name
Type
Description

trader

address

trader address

day

uint32

day the points were credited on, may be different from the day the points were claimed

creditType

enum IFeeTiers.CreditType

credit type (IMMEDIATE, CLAIMABLE)

points

uint224

points added (1e18 precision)

TraderUnclaimedPointsClaimed

Emitted when a trader's unclaimed points are claimed

Parameters

Name
Type
Description

trader

address

trader address

day

uint32

day of claim

points

uint224

points added (1e18 precision)

WrongFeeTier

PointsOverflow

Last updated

Was this helpful?