IFeeManager_v1.sol

Git Source

Functions

BPS

This function returns the Base Points used for percentage calculation.

function BPS() external returns (uint);

Returns

NameTypeDescription

<none>

uint256

uint The Base Points used for percentage calculation. This value represents 100%.

getDefaultProtocolTreasury

Returns the default treasury for all workflows.

function getDefaultProtocolTreasury() external view returns (address);

Returns

NameTypeDescription

<none>

address

The address of the treasury.

getWorkflowTreasuries

Returns the treasury assigned to the given workflow.

function getWorkflowTreasuries(address workflow)
    external
    view
    returns (address);

Parameters

NameTypeDescription

workflow

address

The address of the workflow.

Returns

NameTypeDescription

<none>

address

The address of the treasury.

getDefaultCollateralFee

Returns the default collateral fee for all workflows.

function getDefaultCollateralFee() external view returns (uint);

Returns

NameTypeDescription

<none>

uint256

The collateral fee amount in relation to the BPS.

getDefaultIssuanceFee

Returns the default issuance fee for all workflows.

function getDefaultIssuanceFee() external view returns (uint);

Returns

NameTypeDescription

<none>

uint256

The issuance fee amount in relation to the BPS.

getCollateralWorkflowFee

Returns the collateral fee for a specific workflow module function.

function getCollateralWorkflowFee(
    address workflow,
    address module,
    bytes4 functionSelector
) external view returns (uint fee);

Parameters

NameTypeDescription

workflow

address

The address of the workflow that contains the module function.

module

address

The address of the module that contains the function.

functionSelector

bytes4

The function selector of the target function.

Returns

NameTypeDescription

fee

uint256

The collateral fee amount in relation to the BPS.

getIssuanceWorkflowFee

Returns the issuance fee for a specific workflow module function.

function getIssuanceWorkflowFee(
    address workflow,
    address module,
    bytes4 functionSelector
) external view returns (uint fee);

Parameters

NameTypeDescription

workflow

address

The address of the workflow that contains the module function.

module

address

The address of the module that contains the function.

functionSelector

bytes4

The function selector of the target function.

Returns

NameTypeDescription

fee

uint256

The issuance fee amount in relation to the BPS.

getCollateralWorkflowFeeAndTreasury

Returns the collateral fee for a specific workflow module function and the according treasury address of the workflow.

function getCollateralWorkflowFeeAndTreasury(
    address workflow,
    address module,
    bytes4 functionSelector
) external view returns (uint fee, address treasury);

Parameters

NameTypeDescription

workflow

address

The address of the workflow that contains the module function.

module

address

The address of the module that contains the function.

functionSelector

bytes4

The function selector of the target function.

Returns

NameTypeDescription

fee

uint256

The collateral fee amount in relation to the BPS.

treasury

address

The address of the treasury.

getIssuanceWorkflowFeeAndTreasury

Returns the issuance fee for a specific workflow module function and the according treasury address of the workflow.

function getIssuanceWorkflowFeeAndTreasury(
    address workflow,
    address module,
    bytes4 functionSelector
) external view returns (uint fee, address treasury);

Parameters

NameTypeDescription

workflow

address

The address of the workflow that contains the module function.

module

address

The address of the module that contains the function.

functionSelector

bytes4

The function selector of the target function.

Returns

NameTypeDescription

fee

uint256

The issuance fee amount in relation to the BPS.

treasury

address

The address of the treasury.

setMaxFee

Sets the maximum fee percentage that can be assigned.

This function can only be called by the owner.

The given max fee can not be higher than the BPS.

function setMaxFee(uint _maxFee) external;

Parameters

NameTypeDescription

_maxFee

uint256

The max Fee in relation to the BPS.

setDefaultProtocolTreasury

Sets the default protocol treasury address.

This function can only be called by the owner.

The given treasury address can not be address(0).

function setDefaultProtocolTreasury(address _defaultProtocolTreasury)
    external;

Parameters

NameTypeDescription

_defaultProtocolTreasury

address

The address of the default protocol treasury.

setWorkflowTreasury

Sets the protocol treasury address for a specific workflow.

This function can only be called by the owner.

The given treasury address can not be address(0).

function setWorkflowTreasury(address workflow, address treasury) external;

Parameters

NameTypeDescription

workflow

address

The address of the workflow.

treasury

address

The address of the protocol treasury for that specific workflow.

setDefaultCollateralFee

Sets the default collateral fee of the protocol.

This function can only be called by the owner.

The given fee needs to be less than the BPS.

function setDefaultCollateralFee(uint _defaultCollateralFee) external;

Parameters

NameTypeDescription

_defaultCollateralFee

uint256

The default collateral fee of the protocol in relation to the BPS.

setDefaultIssuanceFee

Sets the default issuance fee of the protocol.

This function can only be called by the owner.

The given fee needs to be less than the BPS.

function setDefaultIssuanceFee(uint _defaultIssuanceFee) external;

Parameters

NameTypeDescription

_defaultIssuanceFee

uint256

The default issuance fee of the protocol in relation to the BPS.

setCollateralWorkflowFee

Sets the collateral fee for a specific workflow module function.

This function can only be called by the owner.

The given fee needs to be less than the BPS.

function setCollateralWorkflowFee(
    address workflow,
    address module,
    bytes4 functionSelector,
    bool set,
    uint fee
) external;

Parameters

NameTypeDescription

workflow

address

The address of the workflow that contains the module function.

module

address

The address of the module that contains the function.

functionSelector

bytes4

The function selector of the target function.

set

bool

Boolean that determines if the fee is actually used or not.

fee

uint256

The collateral fee in relation to the BPS.

setIssuanceWorkflowFee

Sets the issuance fee for a specific workflow module function.

This function can only be called by the owner.

The given fee needs to be less than the BPS.

function setIssuanceWorkflowFee(
    address workflow,
    address module,
    bytes4 functionSelector,
    bool set,
    uint fee
) external;

Parameters

NameTypeDescription

workflow

address

The address of the workflow that contains the module function.

module

address

The address of the module that contains the function.

functionSelector

bytes4

The function selector of the target function.

set

bool

Boolean that determines if the fee is actually used or not.

fee

uint256

The issuance fee in relation to the BPS.

Events

MaxFeeSet

Event emitted when the max fee percentage is set.

event MaxFeeSet(uint maxFee);

Parameters

NameTypeDescription

maxFee

uint256

The maximum fee percentage.

DefaultProtocolTreasurySet

Event emitted when the default protocol treasury is set.

event DefaultProtocolTreasurySet(address defaultProtocolTreasury);

Parameters

NameTypeDescription

defaultProtocolTreasury

address

The address of the default protocol treasury.

WorkflowTreasurySet

Event emitted when the workflow treasury is set.

event WorkflowTreasurySet(address workflow, address treasury);

Parameters

NameTypeDescription

workflow

address

The address of the workflow.

treasury

address

The address of the treasury.

DefaultCollateralFeeSet

Event emitted when the default collateral fee is set.

event DefaultCollateralFeeSet(uint fee);

Parameters

NameTypeDescription

fee

uint256

The collateral fee amount in relation to the BPS.

DefaultIssuanceFeeSet

Event emitted when the default issuance fee is set.

event DefaultIssuanceFeeSet(uint fee);

Parameters

NameTypeDescription

fee

uint256

The issuance fee amount in relation to the BPS.

CollateralWorkflowFeeSet

Event emitted when the collateral workflow fee is set.

event CollateralWorkflowFeeSet(
    address workflow,
    address module,
    bytes4 functionSelector,
    bool set,
    uint fee
);

Parameters

NameTypeDescription

workflow

address

The address of the workflow that contains the module function.

module

address

The address of the module that contains the function.

functionSelector

bytes4

The function selector of the target function.

set

bool

Boolean that determines if the fee is actually used or not.

fee

uint256

The collateral fee in relation to the BPS.

IssuanceWorkflowFeeSet

Event emitted when the issuance workflow fee is set.

event IssuanceWorkflowFeeSet(
    address workflow,
    address module,
    bytes4 functionSelector,
    bool set,
    uint fee
);

Parameters

NameTypeDescription

workflow

address

The address of the workflow that contains the module function.

module

address

The address of the module that contains the function.

functionSelector

bytes4

The function selector of the target function.

set

bool

Boolean that determines if the fee is actually used or not.

fee

uint256

The issuance fee in relation to the BPS.

Errors

FeeManager__InvalidAddress

The given address is invalid.

error FeeManager__InvalidAddress();

FeeManager__InvalidFee

The given fee is invalid.

error FeeManager__InvalidFee();

FeeManager__InvalidMaxFee

The given max fee is invalid.

error FeeManager__InvalidMaxFee();

Structs

Fee

Struct used to store fee information.

When `set` 'is true, the value is taken, otherwise it reverts to the default value. We need some indication here on whether the value is set or not, to differentiate between an uninitialized 0 and a real 0 fee.

struct Fee {
    bool set;
    uint value;
}

Properties

NameTypeDescription

set

bool

Whether the fee is set or not.

value

uint256

The fee value.

Last updated