Skip to main content
Facet #3: Fee tiers

constructor

constructor() public

initializeFeeTiers

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

Parameters

NameTypeDescription
_groupIndicesuint256[]group indices (pairs storage fee index) to initialize
_groupVolumeMultipliersuint256[]corresponding group volume multipliers (1e3)
_feeTiersIndicesuint256[]fee tiers indices to initialize
_feeTiersIFeeTiers.FeeTier[]fee tiers values to initialize (feeMultiplier, pointsThreshold)

setGroupVolumeMultipliers

function setGroupVolumeMultipliers(uint256[] _groupIndices, uint256[] _groupVolumeMultipliers) external
Updates groups volume multipliers

Parameters

NameTypeDescription
_groupIndicesuint256[]indices of groups to update
_groupVolumeMultipliersuint256[]corresponding new volume multipliers (1e3)

setFeeTiers

function setFeeTiers(uint256[] _feeTiersIndices, struct IFeeTiers.FeeTier[] _feeTiers) external
Updates fee tiers

Parameters

NameTypeDescription
_feeTiersIndicesuint256[]indices of fee tiers to update
_feeTiersIFeeTiers.FeeTier[]new fee tiers values (feeMultiplier, pointsThreshold)

setTradersFeeTiersEnrollment

function setTradersFeeTiersEnrollment(address[] _traders, struct IFeeTiers.TraderEnrollment[] _values) external
Updates traders enrollment status in fee tiers

Parameters

NameTypeDescription
_tradersaddress[]group of traders
_valuesIFeeTiers.TraderEnrollment[]corresponding enrollment values

addTradersUnclaimedPoints

function addTradersUnclaimedPoints(address[] _traders, enum IFeeTiers.CreditType[] _creditTypes, uint224[] _points) external
Credits points to traders

Parameters

NameTypeDescription
_tradersaddress[]traders addresses
_creditTypesenum IFeeTiers.CreditType[]types of credit (IMMEDIATE, CLAIMABLE)
_pointsuint224[]points to credit (1e18)

updateTraderPoints

function updateTraderPoints(address _trader, uint256 _volumeUsd, uint256 _pairIndex) external virtual
Increases daily points from a new trade, re-calculate trailing points, and cache daily fee tier for a trader.

Parameters

NameTypeDescription
_traderaddresstrader address
_volumeUsduint256trading volume in USD (1e18)
_pairIndexuint256pair index

calculateFeeAmount

function calculateFeeAmount(address _trader, uint256 _normalFeeAmountCollateral) external view returns (uint256)
Returns fee amount after applying the trader’s active fee tier multiplier

Parameters

NameTypeDescription
_traderaddressaddress of trader
_normalFeeAmountCollateraluint256base fee amount (collateral precision)

getFeeTiersCount

function getFeeTiersCount() external view returns (uint256)
Returns the current number of active fee tiers

getFeeTier

function getFeeTier(uint256 _feeTierIndex) external view returns (struct IFeeTiers.FeeTier)
Returns a fee tier’s details (feeMultiplier, pointsThreshold)

Parameters

NameTypeDescription
_feeTierIndexuint256fee tier index

getGroupVolumeMultiplier

function getGroupVolumeMultiplier(uint256 _groupIndex) external view returns (uint256)
Returns a group’s volume multiplier

Parameters

NameTypeDescription
_groupIndexuint256group index (pairs storage fee index)

getFeeTiersTraderInfo

function getFeeTiersTraderInfo(address _trader) external view returns (struct IFeeTiers.TraderInfo)
Returns a trader’s info (lastDayUpdated, trailingPoints)

Parameters

NameTypeDescription
_traderaddresstrader address

getFeeTiersTraderDailyInfo

function getFeeTiersTraderDailyInfo(address _trader, uint32 _day) external view returns (struct IFeeTiers.TraderDailyInfo)
Returns a trader’s daily fee tier info (feeMultiplierCache, points)

Parameters

NameTypeDescription
_traderaddresstrader address
_dayuint32day

getTraderFeeTiersEnrollment

function getTraderFeeTiersEnrollment(address _trader) external view returns (struct IFeeTiers.TraderEnrollment)
Returns a trader’s fee tiers enrollment status

Parameters

NameTypeDescription
_traderaddresstrader address

getTraderUnclaimedPoints

function getTraderUnclaimedPoints(address _trader) external view returns (uint224)
Returns a trader’s unclaimed points, credited by Governance

Parameters

NameTypeDescription
_traderaddresstrader address