Skip to content

FeeHelper ​

Git Source

Author:
Trader Joe

This library contains functions to calculate fees

Functions ​

verifyFee ​

Modifier to check that the fee is not too large

solidity
modifier verifyFee(uint128 fee);

Parameters

NameTypeDescription
feeuint128The fee

verifyProtocolShare ​

Modifier to check that the protocol share is not too large

solidity
modifier verifyProtocolShare(uint128 protocolShare);

Parameters

NameTypeDescription
protocolShareuint128The protocol share

getFeeAmountFrom ​

Calculates the fee amount from the amount with fees, rounding up

solidity
function getFeeAmountFrom(uint128 amountWithFees, uint128 totalFee)
    internal
    pure
    verifyFee(totalFee)
    returns (uint128);

Parameters

NameTypeDescription
amountWithFeesuint128The amount with fees
totalFeeuint128The total fee

Returns

NameTypeDescription
<none>uint128feeAmount The fee amount

getFeeAmount ​

Calculates the fee amount that will be charged, rounding up

solidity
function getFeeAmount(uint128 amount, uint128 totalFee) internal pure verifyFee(totalFee) returns (uint128);

Parameters

NameTypeDescription
amountuint128The amount
totalFeeuint128The total fee

Returns

NameTypeDescription
<none>uint128feeAmount The fee amount

getCompositionFee ​

Calculates the composition fee amount from the amount with fees, rounding down

solidity
function getCompositionFee(uint128 amountWithFees, uint128 totalFee)
    internal
    pure
    verifyFee(totalFee)
    returns (uint128);

Parameters

NameTypeDescription
amountWithFeesuint128The amount with fees
totalFeeuint128The total fee

Returns

NameTypeDescription
<none>uint128The amount with fees

getProtocolFeeAmount ​

Calculates the protocol fee amount from the fee amount and the protocol share, rounding down

solidity
function getProtocolFeeAmount(uint128 feeAmount, uint128 protocolShare)
    internal
    pure
    verifyProtocolShare(protocolShare)
    returns (uint128);

Parameters

NameTypeDescription
feeAmountuint128The fee amount
protocolShareuint128The protocol share

Returns

NameTypeDescription
<none>uint128protocolFeeAmount The protocol fee amount

_verifyFee ​

Internal function to check that the fee is not too large

solidity
function _verifyFee(uint128 fee) private pure;

Parameters

NameTypeDescription
feeuint128The fee

Errors ​

FeeHelper__FeeTooLarge ​

solidity
error FeeHelper__FeeTooLarge();

FeeHelper__ProtocolShareTooLarge ​

solidity
error FeeHelper__ProtocolShareTooLarge();