FeeController
Inherits: Initializable, ERC165Upgradeable, HubOwnableUUPSUpgradeable, IFeeController
Author: Daniel Yamagata & Naveen Ailawadi
A contract to set and manage fees for the Mezzanine Protocol
All fees are denominated in 100_000 as 100%. For example, a fee of 1_000 is equivalent to 1% All fees in Mezzanine are transferred to the fee controller, which then can be collected by the owner of the Mezz Hub. All implementations that charge a fee are responsible for transferring the fees to the fee controller.
State Variables
MAX_IMPLEMENTATION_FEE
FeeControllerStorageLocation
Functions
_getFeeControllerStorage
constructor
setImplementationFee
Sets the fee of the 'implementation' to 'newFee'. Only callable by the 'owner' of the MezzHub
collectFees
Transfers 'amount' of 'asset' to the owner of the Mezz Hub
calculateFee
Returns the fee for 'amount' based on the 'asset' and 'implementation' Returns zero if 'asset' is not a denomination asset or the implementation does not have a fee
getFeeByImplementation
Returns the fee for 'implementation'. Returns zero if there is no fee
supportsInterface
ERC165 support