NFTXVaultFactoryUpgradeableV3
NFTXVaultFactoryUpgradeableV3.sol
Factory contract for creating NFTX vaults, and also managing general protocol settings.
Table of Contents
Constants
MAX_DEPOSITOR_PREMIUM_SHARE
Max depositor premium fee share allowed. Set to 100%.
BEACON_CODE
Beacon proxy creation code.
Variables
feeDistributor
Address of NFTXFeeDistributorV3.
eligibilityManager
Address of NFTXEligibilityManager.
excludedFromFees
Which addresses are excluded from fees.
factoryMintFee
Global mint fee for vaults using default fee settings.
factoryRedeemFee
Global redeem fee for vaults using default fee settings.
factorySwapFee
Global (NFT-to-NFT) swap fee for vaults using default fee settings.
twapInterval
The time-weighted average price interval. For example, if the twapInterval
is set to 3600
seconds (1 hour), it would mean that you are interested in computing or observing the average price of an asset over the past hour.
premiumDuration
The time it takes for premium fees to decay from premiumMax
to zero. In seconds.
premiumMax
The starting (max) premium fee. 1e16 = 1%.
depositorPremiumShare
Portion of premium fee that goes to depositor. 1e16 = 1%.
Events
NewFeeDistributor
Emitted by setFeeDistributor()
.
FeeExclusion
Emitted by setFeeExclusion()
.
NewEligibilityManager
Emitted by setEligibilityManager()
.
NewVault
Emitted by createVault()
.
UpdateVaultFees
Emitted by setVaultFees()
. Fees are calculated in vToken, but paid in ETH. 1e16 = 0.01 vToken = 1%.
DisableVaultFees
Emitted by disableVaultFees()
.
UpdateFactoryFees
Emitted by setFactoryFees()
. Fees are calculated in vToken, but paid in ETH. 1e16 = 0.01 vToken = 1%.
NewPremiumMax
Emitted by setPremiumMax()
. Fees are calculated in vToken, but paid in ETH. 1e16 = 0.01 vToken = 1%.
NewPremiumDuration
Emitted by setPremiumDuration()
. In seconds.
NewDepositorPremiumShare
Emitted by setDepositorPremiumShare()
. 1e16 = 1%.
NewTwapInterval
Emitted by setTwapInterval()
.
Write Functions
createVault
Creates a vault.
Privileged Functions
These functions can be called by vault contracts (on themselves) or by this contract's owner.
setVaultFees
Sets mint, redeem, and (NFT-to-NFT) swap fees for a vault. 1e16 = 1%.
disableVaultFees
Revert vault to global/default fee settings.
Owner Functions
setFactoryFees
Sets global/default mint, redeem, and (NFT-to-NFT) swap fees. 1e16 = 1%.
setFeeDistributor
Sets address of NFTXFeeDistributorV3.
setFeeExclusion
Sets whether an address is excluded from vault fees.
setEligibilityManager
Sets address of NFTXEligibilityManager.
setTwapInterval
Sets the TWAP interval duration. In seconds.
setPremiumDuration
Sets the time it takes, in seconds, for premium fees to decay from premiumMax
to zero.
setPremiumMax
Sets the starting (max) premium fee.
setDepositorPremiumShare
Sets the portion of premium fee that goes to depositor.
Read Functions
vaultFees
Returns the mint, redeem, and (NFT-to-NFT) swap fees for a vault.
isLocked
Checks whether the NFTX protocol is locked (i.e., paused).
vaultsForAsset
Returns addresses for all vaults that are linked to an NFT address.
allVaults
Returns addresses of all vaults.
numVaults
Returns total number of NFTX V3 vaults.
vault
Returns the address of a vault.
computeVaultAddress
Returns a deterministic address based on an assetAddress
, name
, and symbol
.
getTwapX96
Returns the TWAP of the given pool, across the recent twapInterval
. The returned value is in UniswapV3's 96-bit fixed point representation.
getVTokenPremium721
Returns premium fee for redeeming or swapping an ERC721 NFT from a vault.
getVTokenPremium1155
Returns premium fee for redeeming or swapping for ERC1155 NFTs from a vault.
Last updated