The BeefyFeeConfigurator Contract is an infrastructure contract hosted on each of the blockchains which Beefy has deployed on. The contract manages the configuration of fees for each strategy on the relevant chain, which the StratFeeManager Contract interfaces with through IFeeConfig.sol.
The relevant address for the FeeConfigurator Contract ("beefyFeeConfig") on each chain is displayed in the Beefy API using the endpoint.
Modifier
Includes a standard onlyManager() modifier to control access to write functions.
Returns a FeeCategory structure for a specific strategy address argument, displaying the total fees charged, the fees for Beefy, the harvest caller and the strategist, a string showing the description of the type of fee category, and "active" boolean variable, showing whether the fee category is switched on or not.
Includes an "_adjust" boolean variable argument, which displays fees as a % of the total harvest if set to true, or as a % of the total fee if set to false.
Updates the stratFeeId mapping to show ultimately what FeeCategory structure is being used by a particular strategy, by way of an intermediate feeCategory mapping and feeId integer values.
This includes 3 options, including one for the strategy to update its own feeId, one to stipulate the strategy address and feeId as arguments, and one to set a range of strategies by giving both an array of strategy addresses and an array of feeIds as arguments. Each of the three then use the internal _setStratFeeId() function to update each strategy.
Sets the parameters for a given FeeCategory structure (new or existing), including the split in fees between Beefy, the harvest caller and the strategist.
Sets a specific FeeCategory (using the category ID as an argument) to either active ("unpaused") - meaning a strategy set to that category will use that category - or inactive ("paused") - meaning the strategy will revert to the default fee configuration.