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 contract.
  • 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.

function scheduleGlobalCreationFee(uint64 newFeeValue) external;

Parameters

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

scheduleGlobalTransferFee

Sets a new global transfer 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 minTransferFee and maxTransferFee.*
function scheduleGlobalTransferFee(uint64 newFeePercentage) external;

Parameters

NameTypeDescription
newFeePercentageuint64Value for transferFeePercentage that will be charged on VestingToken’s transfers.

scheduleGlobalClaimFee

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

function scheduleGlobalClaimFee(uint64 newFeeValue) external;

Parameters

NameTypeDescription
newFeeValueuint64Value for claimFee that will be charged on VestingToken’s claims.

scheduleCustomCreationFee

Sets a new custom creation fee value for a specific underlying token, 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 underlying token. 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:

  • The caller must have owner privileges to execute this function.*
function scheduleCustomCreationFee(address underlyingToken, uint64 newFeeValue) external;

Parameters

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

scheduleCustomTransferFee

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

*This function allows the contract owner to adjust the transfer fee for an underlying token. 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_TRANSFER_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 CustomTransferFeeChange event upon successful execution. Requirements:

  • Caller must be the contract owner.
  • newFeePercentage must be within the range limited by MAX_TRANSFER_FEE.*
function scheduleCustomTransferFee(address underlyingToken, uint64 newFeePercentage) external;

Parameters

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

scheduleCustomClaimFee

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

*Allows the contract owner to modify the claim fee associated with a specific underlying token. 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 CustomClaimFeeChange event upon successful fee update. Requirements:

  • The caller must have owner privileges to execute this function.*
function scheduleCustomClaimFee(address underlyingToken, uint64 newFeeValue) external;

Parameters

NameTypeDescription
underlyingTokenaddressAddress of the underlyingToken.
newFeeValueuint64The new claim fee amount to be set, in wei, to replace the current fee after the specified delay.

toggleCustomCreationFee

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

function toggleCustomCreationFee(address underlyingToken, bool enable) external;

Parameters

NameTypeDescription
underlyingTokenaddressAddress of the underlyingToken.
enableboolTrue to enable the fee, false to disable it.

toggleCustomTransferFee

Enables or disables the custom transfer fee for a given underlying token, to take effect after 1 hour.

function toggleCustomTransferFee(address underlyingToken, bool enable) external;

Parameters

NameTypeDescription
underlyingTokenaddressAddress of the underlyingToken.
enableboolTrue to enable the fee, false to disable it.

toggleCustomClaimFee

Enables or disables the custom claim fee for a given underlying token, with the change taking effect after 1 hour.

function toggleCustomClaimFee(address underlyingToken, bool enable) external;

Parameters

NameTypeDescription
underlyingTokenaddressAddress of the underlyingToken.
enableboolTrue to enable the fee, false to disable it.

minTransferFee

Exposes the minimum transfer fee.

function minTransferFee() external pure returns (uint64);

maxTransferFee

Exposes the maximum transfer fee.

function maxTransferFee() 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);

globalTransferFee

Retrieves the current global transfer fee percentage to users.

function globalTransferFee() external view returns (uint64);

globalClaimFee

Retrieves the current global claim fee to users.

function globalClaimFee() external view returns (uint64);

creationFeeData

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

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

Parameters

NameTypeDescription
underlyingTokenaddressAddress of the underlyingToken.

transferFeeData

Returns the current transfer fee for a specific underlying token, considering any pending updates.

function transferFeeData(address underlyingToken)
    external
    view
    override
    returns (address feeCollectorAddress, uint64 transferFeePercentage);

Parameters

NameTypeDescription
underlyingTokenaddressAddress of the underlyingToken.

claimFeeData

Returns the current claim fee for a specific underlying token, considering any pending updates.

function claimFeeData(address underlyingToken)
    external
    view
    override
    returns (address feeCollectorAddress, uint64 claimFeeValue);

Parameters

NameTypeDescription
underlyingTokenaddressAddress of the underlyingToken.

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.

GlobalTransferFeeChange

event GlobalTransferFeeChange(uint64 transferFeePercentage);

Parameters

NameTypeDescription
transferFeePercentageuint64Value for the new transfer fee.

GlobalClaimFeeChange

event GlobalClaimFeeChange(uint64 claimFeeValue);

Parameters

NameTypeDescription
claimFeeValueuint64Value for the new claim fee.

CustomCreationFeeChange

event CustomCreationFeeChange(address indexed underlyingToken, uint64 creationFeeValue);

Parameters

NameTypeDescription
underlyingTokenaddressAddress of the underlying token.
creationFeeValueuint64Value for the new creation fee.

CustomCreationFeeToggle

event CustomCreationFeeToggle(address indexed underlyingToken, bool enable);

Parameters

NameTypeDescription
underlyingTokenaddressAddress of the underlying token.
enableboolIndicates the enabled state of the fee.

CustomTransferFeeChange

event CustomTransferFeeChange(address indexed underlyingToken, uint64 transferFeePercentage);

Parameters

NameTypeDescription
underlyingTokenaddressAddress of the underlying token.
transferFeePercentageuint64Value for the new transfer fee.

CustomTransferFeeToggle

event CustomTransferFeeToggle(address indexed underlyingToken, bool enable);

Parameters

NameTypeDescription
underlyingTokenaddressAddress of the underlying token.
enableboolIndicates the enabled state of the fee.

CustomClaimFeeChange

event CustomClaimFeeChange(address indexed underlyingToken, uint64 claimFeeValue);

Parameters

NameTypeDescription
underlyingTokenaddressAddress of the underlying token.
claimFeeValueuint64Value for the new claim fee.

CustomClaimFeeToggle

event CustomClaimFeeToggle(address indexed underlyingToken, bool enable);

Parameters

NameTypeDescription
underlyingTokenaddressAddress of the underlying token.
enableboolIndicates the enabled state of the fee.