IBaseFeeCalculator
Last updated
Last updated
Base interface for a contract that calculates TVL and performance fees for a vault and protocol
Set the protocol fee recipient
function setProtocolFeeRecipient(address feeRecipient) external;
Parameters
feeRecipient
address
The address of the protocol fee recipient
Set the protocol fee rates
function setProtocolFees(uint16 tvl, uint16 performance) external;
Parameters
tvl
uint16
The TVL fee rate in basis points
performance
uint16
The performance fee rate in basis points
Set the vault-specific fee rates
function setVaultFees(address vault, uint16 tvl, uint16 performance) external;
Parameters
vault
address
The address of the vault
tvl
uint16
The TVL fee rate in basis points
performance
uint16
The performance fee rate in basis points
Set the accountant for a vault
function setVaultAccountant(address vault, address accountant) external;
Parameters
vault
address
The address of the vault
accountant
address
The address of the new accountant
Emitted when a vault's fees are updated
event VaultFeesSet(address indexed vault, uint16 tvlFee, uint16 performanceFee);
Parameters
vault
address
The address of the vault
tvlFee
uint16
The new TVL fee rate in basis points
performanceFee
uint16
The new performance fee rate in basis points
Emitted when the protocol fee recipient is updated
event ProtocolFeeRecipientSet(address indexed feeRecipient);
Parameters
feeRecipient
address
The address of the protocol fee recipient
Emitted when protocol fees are updated
event ProtocolFeesSet(uint16 tvlFee, uint16 performanceFee);
Parameters
tvlFee
uint16
The new protocol TVL fee rate in basis points
performanceFee
uint16
The new protocol performance fee rate in basis points
Emitted when the accountant for a vault is updated
event VaultAccountantSet(address vault, address accountant);
Parameters
vault
address
The address of the vault whose accountant is being updated
accountant
address
The address of the new accountant assigned to the vault
Thrown when attempting to set an TVL fee higher than the maximum allowed
error Aera__TvlFeeTooHigh();
Thrown when attempting to set a performance fee higher than the maximum allowed
error Aera__PerformanceFeeTooHigh();
Thrown when attempting to set a protocol fee recipient to the zero address
error Aera__ZeroAddressProtocolFeeRecipient();
Thrown when attempting to set vault fees for a vault that is not owned by the caller
error Aera__CallerIsNotVaultOwner();
Thrown when attempting to perform an action on a vault by someone who is not its assigned accountant
error Aera__CallerIsNotVaultAccountant();
Thrown during a vault is not registered and action requires a registered vault
error Aera__VaultNotRegistered();