Skip to main content

FeeReferral

FeeReferral

User referrals for Domination Finance exchange

Tracks referrals. Grants discounted trade fees to users who submit a referral code, and redirects part of their trade fees to the referrer.

Addresses

ChainAddress
Arbitrum Sepolia0xf606877986bB70D78a2b098d096150a284Ca8e1C
Base Sepolia0x396575939c6223e007FCB71bA914bb94B09B05E0
Base Mainnet0xC20bBbA2081B3aE77C6cc23b32c6BBC8C15dFDCd

Functions

initialize

function initialize(struct StorageInstance _store) external

referrerOf

Get the registered referrer of an account.

function referrerOf(address account) external view returns (address referrer)

Parameters

NameTypeDescription
accountaddressAddress that registered a referrer

Return Values

NameTypeDescription
referreraddressAddress that referred account to Domination Finance, or 0x0 if no referrer has been registered

setReferrerRedirect

function setReferrerRedirect(address referrer, FPUnsigned redirect) external

setReferrerFeeDiscount

function setReferrerFeeDiscount(address referrer, FPUnsigned discount) external

setReferrer

Register an address as user's referrer. The caller must either be user or their manager as returned by DomFiPerp.isManagerFor. Reverts if user's referrer has already been set.

function setReferrer(address user, address referrer) external
Dev note

Only the administrator can reset a fee referral that has already been set.

Parameters

NameTypeDescription
useraddressThe user who wishes to redeem someone's referral code
referreraddressAn address that referred them to Domination Finance

getReferrerDiscount

Get the fee discount applied to everyone who signed up using referrer's code.

function getReferrerDiscount(address referrer) external view returns (FPUnsigned)
Dev note

Used by FeeCalculator to compute fees. Applies before any redirect.

Parameters

NameTypeDescription
referreraddressAddress that referred another user

Return Values

NameTypeDescription
[0]FPUnsigned

getReferrerRedirect

Get the fraction of fees that should be redirected to referrer from everyone they've referred.

function getReferrerRedirect(address referrer) external view returns (FPUnsigned)
Dev note

Used by FeeDistributor when distributing trade fees. Applies to whatever fees remain after the discount.

Parameters

NameTypeDescription
referreraddressAddress that referred another user

Return Values

NameTypeDescription
[0]FPUnsigned

referrerDiscounts

function referrerDiscounts(address referrer) external view returns (FPUnsigned)

MAX_REFERRER_TRADE_DISCOUNT

function MAX_REFERRER_TRADE_DISCOUNT() external view returns (FPUnsigned)

DEFAULT_REFFERER_TRADE_DISCOUNT

function DEFAULT_REFFERER_TRADE_DISCOUNT() external view returns (FPUnsigned)

referrerRedirect

function referrerRedirect(address referrer) external view returns (FPUnsigned)

MAX_REFERRER_REDIRECT

function MAX_REFERRER_REDIRECT() external view returns (FPUnsigned)

DEFAULT_REFERRAL_REDIRECT

function DEFAULT_REFERRAL_REDIRECT() external view returns (FPUnsigned)

Events

ReferrerRedirectSet

event ReferrerRedirectSet(address referrer, FPUnsigned redirect)

ReferrerSet

event ReferrerSet(address user, address referrer)

ReferrerFeeDiscountSet

event ReferrerFeeDiscountSet(address referer, FPUnsigned discounts)

Errors

RedirectFractionAboveMax

error RedirectFractionAboveMax(address referrer, FPUnsigned requested, FPUnsigned max)

DiscountAboveMax

error DiscountAboveMax(address referrer, FPUnsigned requested, FPUnsigned max)

ReferrerAlreadySet

error ReferrerAlreadySet()

Unauthorized

error Unauthorized()

SelfReferral

Users cannot register as their own referrers.

error SelfReferral()