Skip to main content

VaultFee

Git Source ↗

Inherits: VaultImmutables, Initializable ↗, VaultAdmin, IVaultFee

Defines the fee functionality for the Vault

State Variables

_maxFeePercent

uint256 internal constant _maxFeePercent = 10_000

_feeUpdateDelay

uint256 private constant _feeUpdateDelay = 3 days

_feeUpdateMultiplier

uint256 private constant _feeUpdateMultiplier = 120

_feeUpdateBase

uint256 private constant _feeUpdateBase = 100

feeRecipient

The Vault's fee recipient

address public override feeRecipient

feePercent

The Vault's fee percent in BPS

uint16 public override feePercent

_lastUpdateTimestamp

uint64 private _lastUpdateTimestamp

__gap

This empty reserved space is put in place to allow future versions to add new variables without shifting down storage in the inheritance chain. See https://docs.openzeppelin.com/contracts/4.x/upgradeable#storage_gaps

uint256[50] private __gap

Functions

setFeeRecipient

Function for updating the fee recipient address. Can only be called by the admin.

function setFeeRecipient(address _feeRecipient) external virtual override;

Parameters

NameTypeDescription
_feeRecipientaddressThe address of the new fee recipient

setFeePercent

Function for updating the fee percent. Can only be called by the admin.

function setFeePercent(uint16 _feePercent) external override;

Parameters

NameTypeDescription
_feePercentuint16The new fee percent

_setFeeRecipient

Internal function for updating the fee recipient externally or from the initializer

function _setFeeRecipient(address _feeRecipient) internal virtual;

Parameters

NameTypeDescription
_feeRecipientaddressThe address of the new fee recipient

_setFeePercent

Internal function for updating the fee percent

function _setFeePercent(uint16 _feePercent, bool isVaultCreation) private;

Parameters

NameTypeDescription
_feePercentuint16The new fee percent
isVaultCreationboolFlag indicating whether the fee percent is set during the vault creation

__VaultFee_init

Initializes the VaultFee contract

function __VaultFee_init(address _feeRecipient, uint16 _feePercent) internal onlyInitializing;

Parameters

NameTypeDescription
_feeRecipientaddressThe address of the fee recipient
_feePercentuint16The fee percent that is charged by the Vault