NFTXFeeDistributorV3
NFTXFeeDistributorV3.sol
Fee distributor contract for distributing vault fees.
Table of Contents
Constants
nftxVaultFactory
function nftxVaultFactory() external view returns (address)
Address of NFTX vault factory.
ammFactory
function ammFactory() external view returns (address)
Address of NFTX AMM pool factory.
inventoryStaking
function inventoryStaking() external view returns (address)
Address of NFTX inventory staking contract.
WETH
function WETH() external view returns (address)
Address of WETH contract.
POOL_DEFAULT_ALLOC
uint256 constant POOL_DEFAULT_ALLOC = 0.8 ether
Global liquidity provider vault fee percentage, set to 80%.
INVENTORY_DEFAULT_ALLOC
uint256 constant INVENTORY_DEFAULT_ALLOC = 0.2 ether
Global inventory staker vault fee percentage, set to 20%.
Variables
rewardFeeTier
function rewardFeeTier() external view returns (uint24)
AMM pool fee tier that receives vault fees for liquidity providers.
nftxRouter
function nftxRouter() external view returns (address)
Contract address of NFTX router.
treasury
function treasury() external view returns (address)
Treasury address.
allocTotal
function allocTotal() external view returns (uint256)
Total allocation across all feeReceivers
.
feeReceivers
function feeReceivers(
uint256
)
external
view
returns (
address receiver,
uint256 allocPoint,
ReceiverType receiverType
)
enum ReceiverType {
INVENTORY,
POOL,
ADDRESS
}
List of fee receivers.
distributionPaused
function distributionPaused() external view returns (bool)
Whether fee distribution has been paused.
Events
UpdateTreasuryAddress
event UpdateTreasuryAddress(address oldTreasury, address newTreasury)
Emitted by setTreasuryAddress()
.
oldTreasury
address
Previous treasury address.
newTreasury
address
New treasury address.
PauseDistribution
event PauseDistribution(bool paused)
Emitted by pauseFeeDistribution()
.
paused
bool
Whether the contract was paused or unpaused.
NewRewardFeeTier
event NewRewardFeeTier(uint24 rewardFeeTier)
Emitted by changeRewardFeeTier()
.
rewardFeeTier
address
The new reward fee tier that determins which AMM pools receive vault rewards .
NewNFTXRouter
event NewNFTXRouter(address nftxRouter)
Emitted by setNFTXRouter()
.
nftxRouter
address
New NFTXRouter address.
WethDistributedToInventory
event WethDistributedToInventory(uint256 vaultId, uint256 amount)
Emitted by distribute()
.
vaultId
uint256
ID of vault.
amount
uin256
Amount of WETH.
WethDistributedToPool
event WethDistributedToPool(uint256 vaultId, uint256 amount)
Emitted by distribute()
.
vaultId
uint256
ID number of vault.
amount
uin256
Amount of WETH.
Write Functions
distribute
function distribute(uint256 vaultId) external
Distributes current WETH balance to feeReceivers
for vaultId.
vaultId
uint256
ID of vault.
distributeVTokensToPool
function distributeVTokensToPool(
address pool,
address vToken,
uint256 vTokenAmount
) external
Distributes vTokens to NFTX AMM pool. Can only be called by NFTXRouter when vTokens have been paid as part of an early withdrawal penalty.
pool
address
Address of pool.
vToken
address
Address of vToken.
vTokenAmount
uint256
Amount of vToken.
Owner Functions
setReceivers
function setReceivers(
FeeReceiver[] memory feeReceivers_
) external
struct FeeReceiver {
address receiver;
uint256 allocPoint;
ReceiverType receiverType; // NOTE: receiver address is ignored for `POOL` type, as each vaultId has different pool address
}
enum ReceiverType {
INVENTORY,
POOL,
ADDRESS
}
Sets fee receivers.
feeReceivers_
FeeReceiver[]
New fee receivers array.
changeRewardFeeTier
function changeRewardFeeTier(uint24 rewardFeeTier_) external
Sets new reward fee tier (determining which AMM pool receives vault fees).
Updating the reward fee tier here won't change the cardinality of existing AMM pools already deployed with rewardFeeTier_
. That has to be increased externally for each pool. If the new rewardFeeTier pool doesn't exist for a vToken, then the corresponding vault fees immediately become 0 until liquidity is provided in the new pool.
rewardFeeTier_
uint24
New reward fee tier.
setTreasuryAddress
function setTreasuryAddress(address treasury_) external
Sets new treasury address.
treasury_
address
New treasury address.
setNFTXRouter
function setNFTXRouter(INFTXRouter nftxRouter_) external
Sets NFTXRouter address.
nftxRouter_
INFTXRouter
New NFTXRouter address.
pauseFeeDistribution
function pauseFeeDistribution(bool pause) external
Pauses (or resumes) fee distribution.
pause
bool
Whether the contract is being paused or un-paused.
rescueTokens
function rescueTokens(IERC20 token) external
Rescues ERC20 token.
token
IERC20
Address of token being rescued.
Last updated