IFactoryFeeManager

Git Source

Inherits: IFeeManager

Interface that describes the struct and accessor function for the data related to the collection of fees.

Functions

setFeeCollector

FUNCTIONS

*Set address of fee collector. Requirements:

  • msg.sender has to be the owner of the factory.
  • newFeeCollector can’t be address 0x0.*
function setFeeCollector(address newFeeCollector) external;

Parameters

NameTypeDescription
newFeeCollectoraddressAddress of feeCollector.

scheduleGlobalCreationFee

Sets a new global creation fee value, to take effect after 1 hour.

msg.sender has to be the fee collector of the factory.

function scheduleGlobalCreationFee(uint64 newFeeValue) external;

Parameters

NameTypeDescription
newFeeValueuint64Value for creationFee that will be charged on Raffl’s deployments.

scheduleGlobalPoolFee

Sets a new global pool fee percentage, to take effect after 1 hour.

*Percentages and fees are calculated using 18 decimals where 1 ether is 100%. Requirements:

  • newFeePercentage must be within minPoolFee and maxPoolFee.
  • msg.sender has to be the fee collector of the factory.*
function scheduleGlobalPoolFee(uint64 newFeePercentage) external;

Parameters

NameTypeDescription
newFeePercentageuint64Value for poolFeePercentage that will be charged on Raffl’s pools.

scheduleCustomCreationFee

Sets a new custom creation fee value for a specific User, to be enabled and take effect after 1 hour from the time of this transaction.

*Allows the contract owner to modify the creation fee associated with a specific User. The new fee becomes effective after a delay of 1 hour, aiming to provide a buffer for users to be aware of the upcoming fee change. This function updates the fee and schedules its activation, ensuring transparency and predictability in fee adjustments. The fee is specified in wei, allowing for granular control over the fee structure. Emits a CustomCreationFeeChange event upon successful fee update. Requirements:

  • msg.sender has to be the fee collector of the factory.*
function scheduleCustomCreationFee(address user, uint64 newFeeValue) external;

Parameters

NameTypeDescription
useraddressAddress of the user.
newFeeValueuint64The new creation fee amount to be set, in wei, to replace the current fee after the specified delay.

scheduleCustomPoolFee

Sets a new custom pool fee percentage for a specific User, to be enabled and take effect after 1 hour from the time of this transaction.

*This function allows the contract owner to adjust the pool fee for a User. The fee adjustment is delayed by 1 hour to provide transparency and predictability. Fees are calculated with precision to 18 decimal places, where 1 ether equals 100% fee. The function enforces fee limits; newFeePercentage must be within the predefined 0-MAX_POOL_FEE bounds. If the custom fee was previously disabled or set to a different value, this operation schedules the new fee to take effect after the delay, enabling it if necessary. Emits a CustomPoolFeeChange event upon successful execution. Requirements:

  • msg.sender has to be the fee collector of the factory.
  • newFeePercentage must be within the range limited by MAX_POOL_FEE.*
function scheduleCustomPoolFee(address user, uint64 newFeePercentage) external;

Parameters

NameTypeDescription
useraddressAddress of the user.
newFeePercentageuint64The new pool fee percentage to be applied, expressed in ether terms (18 decimal places) where 1 ether represents 100%.

toggleCustomCreationFee

Enables or disables the custom creation fee for a given Raffle, with the change taking effect after 1 hour.

msg.sender has to be the fee collector of the factory.

function toggleCustomCreationFee(address user, bool enable) external;

Parameters

NameTypeDescription
useraddressAddress of the user.
enableboolTrue to enable the fee, false to disable it.

toggleCustomPoolFee

Enables or disables the custom pool fee for a given Raffle, to take effect after 1 hour.

msg.sender has to be the fee collector of the factory.

function toggleCustomPoolFee(address user, bool enable) external;

Parameters

NameTypeDescription
useraddressAddress of the user.
enableboolTrue to enable the fee, false to disable it.

minPoolFee

Exposes the minimum pool fee.

function minPoolFee() external pure returns (uint64);

maxPoolFee

Exposes the maximum pool fee.

function maxPoolFee() external pure returns (uint64);

feeCollector

Exposes the FeeData.feeCollector to users.

function feeCollector() external view returns (address);

globalCreationFee

Retrieves the current global creation fee to users.

function globalCreationFee() external view returns (uint64);

globalPoolFee

Retrieves the current global pool fee percentage to users.

function globalPoolFee() external view returns (uint64);

creationFeeData

Returns the current creation fee for a specific user, considering any pending updates.

function creationFeeData(address user)
    external
    view
    override
    returns (address feeCollectorAddress, uint64 creationFeeValue);

Parameters

NameTypeDescription
useraddressAddress of the user.

poolFeeData

Returns the current pool fee for a specific user, considering any pending updates.

function poolFeeData(address user)
    external
    view
    override
    returns (address feeCollectorAddress, uint64 poolFeePercentage);

Parameters

NameTypeDescription
useraddressAddress of the user.

Events

FeeCollectorChange

EVENTS

event FeeCollectorChange(address indexed feeCollector);

Parameters

NameTypeDescription
feeCollectoraddressAddress of the new fee collector.

GlobalCreationFeeChange

event GlobalCreationFeeChange(uint64 creationFeeValue);

Parameters

NameTypeDescription
creationFeeValueuint64Value for the new creation fee.

GlobalPoolFeeChange

event GlobalPoolFeeChange(uint64 poolFeePercentage);

Parameters

NameTypeDescription
poolFeePercentageuint64Value for the new pool fee.

CustomCreationFeeChange

event CustomCreationFeeChange(address indexed user, uint64 creationFeeValue);

Parameters

NameTypeDescription
useraddressAddress of the user.
creationFeeValueuint64Value for the new creation fee.

CustomCreationFeeToggle

event CustomCreationFeeToggle(address indexed user, bool enable);

Parameters

NameTypeDescription
useraddressAddress of the user.
enableboolIndicates the enabled state of the fee.

CustomPoolFeeChange

event CustomPoolFeeChange(address indexed user, uint64 poolFeePercentage);

Parameters

NameTypeDescription
useraddressAddress of the user.
poolFeePercentageuint64Value for the new pool fee.

CustomPoolFeeToggle

event CustomPoolFeeToggle(address indexed user, bool enable);

Parameters

NameTypeDescription
useraddressAddress of the user.
enableboolIndicates the enabled state of the fee.