Maple
  • Welcome to Maple
  • Maple for Lenders
    • Introduction
    • Lending
    • Defaults and Impairments
    • Margin Calls and Liquidations
    • Risk
    • Withdrawal Process
  • syrupUSDC for Lenders
    • Powered by Maple
    • Lending in syrupUSDC and syrupUSDT
    • Commitments
    • Drips Rewards
    • Withdrawals
    • Monthly Updates
    • Pendle Integration
  • SyrupUSDC Rewards Prize Draw Program Summary
  • FAQ
  • Maple for Borrowers
    • Introduction
    • Loan Management
  • Maple for Token Holders
    • Introduction to SYRUP
      • MPL to SYRUP Conversion
      • FAQs
    • SYRUP Tokenomics
      • Staking
      • Staking Smart Contract Details
    • Governance and Voting
    • Drips Rewards
    • Research and Media
      • Podcasts
      • News Articles
      • TV Segments
      • Research Reports
      • Data Dashboards
    • Additional Resources
  • Technical Resources
    • Protocol Overview
      • Background
      • Protocol Actors
      • Smart Contract Architecture
      • Glossary
      • Smart Contract Addresses
      • Fees
      • Composability
      • Proxies and Upgradeability
    • Security
      • Security
      • List of Assumptions
      • External Entry Points
      • Emergency Protocol Pause
      • Protocol Invariants
      • Test Report
    • Loans
      • Loans
      • Fixed Term Loans
      • Open Term Loans
      • Refinancing
      • Impairments
      • Defaults
    • Pools
      • Pools
      • Pool Creation
      • PoolManager
      • PoolDelegateCover
      • Accounting
        • Pool Accounting
        • Pool Exchange Rates
    • Strategies
      • Fixed Term Loan Manager
        • Overview
        • Claims
        • Advance Payment Accounting
        • Accounting Examples
      • Open Term Loan Manager
      • DeFi Strategies
    • Withdrawal Managers
      • WithdrawalManager (Cyclical)
      • WithdrawalManager (Queue)
    • Singletons
      • Globals
      • MapleTreasury
      • Oracles
      • Pool Permission Manager
    • Admin Functions
      • Governor Admin Actions
        • Operational Admin Actions
      • Pool Delegate Admin Actions
      • Timelocks
    • Operations
      • Protocol Deployment
      • Open Term Loan Deployment
      • December 2023 Deployment & Upgrade Procedure
      • Strategies Release Deployment Procedure
    • Interfaces
      • FixedTermLoan
      • FixedTermLoanFactory
      • FixedTermLoanFeeManager
      • FixedTermLoanInitializer
      • FixedTermLoanManager
      • FixedTermLoanManagerFactory
      • FixedTermLoanManagerInitializer
      • FixedTermLoanRefinancer
      • Globals
      • Liquidator
      • LiquidatorFactory
      • LiquidatorInitializer
      • OpenTermLoan
      • OpenTermLoanFactory
      • OpenTermLoanInitializer
      • OpenTermLoanManager
      • OpenTermLoanManagerFactory
      • OpenTermLoanManagerInitializer
      • OpenTermLoanRefinancer
      • Pool
      • PoolDelegateCover
      • PoolDeployer
      • PoolManager
      • PoolManagerFactory
      • PoolManagerInitializer
      • PoolPermissionManager
      • WithdrawalManager (Cyclical)
      • WithdrawalManagerFactory (Cyclical)
      • WithdrawalManagerInitializer (Cyclical)
      • WithdrawalManager (Queue)
      • WithdrawalManagerFactory (Queue)
      • WithdrawalManagerInitializer (Queue)
    • SYRUP Token
      • Architectural Overview
      • Base ERC20 Structure
      • Upgradability
      • Modules
      • Time Locks
      • Recapitalization Module
      • Emergency Module
      • Deployment and Migration Procedure
    • GraphQL API
    • SDK
      • Introduction
      • Installation
      • Protocol Actors
      • Usage Guide
  • Troubleshooting & Support
    • Intercom
  • Maple 1.0
    • Access to deprecated Maple 1.0
  • Legal
    • Borrower MLA
    • KYC
    • Interface Terms of Use
    • Privacy Policy
    • syrupUSDC and syrupUSDT - Risks
    • syrupUSDC and syrupUSDT - Defaults and Impairments
    • syrupUSDC and syrupUSDT - Available Jurisdictions
    • Interface Terms of Use [syrupUSDC and syrupUSDT]
    • Interface Terms of Use [Syrup.fi/convert/ and Syrup.fi/stake/]
    • syrupUSDC and syrupUSDT- Privacy Policy
    • SyrupUSDC Rewards Prize Draw Terms & Conditions
Powered by GitBook
On this page
  • Constructor
  • Functions
  • delegateOriginationFee
  • delegateRefinanceServiceFee
  • delegateServiceFee
  • getDelegateServiceFeesForPeriod
  • getOriginationFees
  • getPlatformOriginationFee
  • getPlatformServiceFeeForPeriod
  • getServiceFeeBreakdown
  • getServiceFees
  • getServiceFeesForPeriod
  • globals
  • payOriginationFees
  • payServiceFees
  • platformRefinanceServiceFee
  • platformServiceFee
  • updateDelegateFeeTerms
  • updatePlatformServiceFee
  • updateRefinanceServiceFees
  • Events
  • FeeTermsUpdated
  • OriginationFeesPaid
  • PartialRefinanceServiceFeesUpdated
  • PlatformServiceFeeUpdated
  • ServiceFeesPaid
  1. Technical Resources
  2. Interfaces

FixedTermLoanFeeManager

\

Constructor

    constructor(
        address globals_
    );

Parameters:

Index
Name
Type
Internal Type
Description

0

globals_

address

address

\

Functions

delegateOriginationFee

Gets the delegate origination fee for the given loan.

    function delegateOriginationFee(
        address
    )
        view
        returns (
            uint256
        );

Parameters:

Index
Name
Type
Internal Type
Description

0

``

address

address

Return Values:

Index
Name
Type
Internal Type
Description

0

uint256

uint256

\

delegateRefinanceServiceFee

Gets the delegate service fee rate for the given loan.

    function delegateRefinanceServiceFee(
        address
    )
        view
        returns (
            uint256
        );

Parameters:

Index
Name
Type
Internal Type
Description

0

``

address

address

Return Values:

Index
Name
Type
Internal Type
Description

0

uint256

uint256

\

delegateServiceFee

Gets the delegate service fee rate for the given loan.

    function delegateServiceFee(
        address
    )
        view
        returns (
            uint256
        );

Parameters:

Index
Name
Type
Internal Type
Description

0

``

address

address

Return Values:

Index
Name
Type
Internal Type
Description

0

uint256

uint256

\

getDelegateServiceFeesForPeriod

Gets the delegate service fee for the given loan.

    function getDelegateServiceFeesForPeriod(
        address loan_,
        uint256 interval_
    )
        view
        returns (
            uint256 delegateServiceFee_
        );

Parameters:

Index
Name
Type
Internal Type
Description

0

loan_

address

address

The address of the loan contract.

1

interval_

uint256

uint256

The time, in seconds, to get the proportional fee for

Return Values:

Index
Name
Type
Internal Type
Description

0

delegateServiceFee_

uint256

uint256

The amount of delegate service fee to be paid.

\

getOriginationFees

Gets the sum of all origination fees for the given loan.

    function getOriginationFees(
        address loan_,
        uint256 principalRequested_
    )
        view
        returns (
            uint256 originationFees_
        );

Parameters:

Index
Name
Type
Internal Type
Description

0

loan_

address

address

The address of the loan contract.

1

principalRequested_

uint256

uint256

The amount of principal requested in the loan.

Return Values:

Index
Name
Type
Internal Type
Description

0

originationFees_

uint256

uint256

The amount of origination fees to be paid.

\

getPlatformOriginationFee

Gets the platform origination fee value for the given loan.

    function getPlatformOriginationFee(
        address loan_,
        uint256 principalRequested_
    )
        view
        returns (
            uint256 platformOriginationFee_
        );

Parameters:

Index
Name
Type
Internal Type
Description

0

loan_

address

address

The address of the loan contract.

1

principalRequested_

uint256

uint256

The amount of principal requested in the loan.

Return Values:

Index
Name
Type
Internal Type
Description

0

platformOriginationFee_

uint256

uint256

The amount of platform origination fee to be paid.

\

getPlatformServiceFeeForPeriod

Gets the delegate service fee for the given loan.

    function getPlatformServiceFeeForPeriod(
        address loan_,
        uint256 principalRequested_,
        uint256 interval_
    )
        view
        returns (
            uint256 platformServiceFee_
        );

Parameters:

Index
Name
Type
Internal Type
Description

0

loan_

address

address

The address of the loan contract.

1

principalRequested_

uint256

uint256

The amount of principal requested in the loan.

2

interval_

uint256

uint256

The time, in seconds, to get the proportional fee for

Return Values:

Index
Name
Type
Internal Type
Description

0

platformServiceFee_

uint256

uint256

The amount of platform service fee to be paid.

\

getServiceFeeBreakdown

Gets the service fees for the given interval.

    function getServiceFeeBreakdown(
        address loan_,
        uint256 numberOfPayments_
    )
        view
        returns (
            uint256 delegateServiceFee_,
            uint256 delegateRefinanceFee_,
            uint256 platformServiceFee_,
            uint256 platformRefinanceFee_
        );

Parameters:

Index
Name
Type
Internal Type
Description

0

loan_

address

address

The address of the loan contract.

1

numberOfPayments_

uint256

uint256

The number of payments being paid.

Return Values:

Index
Name
Type
Internal Type
Description

0

delegateServiceFee_

uint256

uint256

The amount of delegate service fee to be paid.

1

delegateRefinanceFee_

uint256

uint256

The amount of delegate refinance fee to be paid.

2

platformServiceFee_

uint256

uint256

The amount of platform service fee to be paid.

3

platformRefinanceFee_

uint256

uint256

The amount of platform refinance fee to be paid.

\

getServiceFees

Gets the service fees for the given interval.

    function getServiceFees(
        address loan_,
        uint256 numberOfPayments_
    )
        view
        returns (
            uint256 serviceFees_
        );

Parameters:

Index
Name
Type
Internal Type
Description

0

loan_

address

address

The address of the loan contract.

1

numberOfPayments_

uint256

uint256

The number of payments being paid.

Return Values:

Index
Name
Type
Internal Type
Description

0

serviceFees_

uint256

uint256

The amount of platform service fee to be paid.

\

getServiceFeesForPeriod

Gets the service fees for the given interval.

    function getServiceFeesForPeriod(
        address loan_,
        uint256 interval_
    )
        view
        returns (
            uint256 serviceFee_
        );

Parameters:

Index
Name
Type
Internal Type
Description

0

loan_

address

address

The address of the loan contract.

1

interval_

uint256

uint256

The time, in seconds, to get the proportional fee for

Return Values:

Index
Name
Type
Internal Type
Description

0

serviceFee_

uint256

uint256

The amount of platform service fee to be paid.

\

globals

Gets the global contract address.

    function globals()
        view
        returns (
            address
        );

Return Values:

Index
Name
Type
Internal Type
Description

0

address

address

\

payOriginationFees

Called during `fundLoan`, performs fee payments to poolDelegate and treasury.

    function payOriginationFees(
        address asset_,
        uint256 principalRequested_
    )
        nonpayable
        returns (
            uint256 feePaid_
        );

Parameters:

Index
Name
Type
Internal Type
Description

0

asset_

address

address

The address asset in which fees were paid.

1

principalRequested_

uint256

uint256

The total amount of principal requested, which will be used to calculate fees.

Return Values:

Index
Name
Type
Internal Type
Description

0

feePaid_

uint256

uint256

The total amount of fees paid.

\

payServiceFees

Called during `makePayment`, performs fee payments to the pool delegate and treasury.

    function payServiceFees(
        address asset_,
        uint256 numberOfPayments_
    )
        nonpayable
        returns (
            uint256 feePaid_
        );

Parameters:

Index
Name
Type
Internal Type
Description

0

asset_

address

address

The address asset in which fees were paid.

1

numberOfPayments_

uint256

uint256

The number of payments for which service fees will be paid.

Return Values:

Index
Name
Type
Internal Type
Description

0

feePaid_

uint256

uint256

\

platformRefinanceServiceFee

Gets the platform fee rate for the given loan.

    function platformRefinanceServiceFee(
        address
    )
        view
        returns (
            uint256
        );

Parameters:

Index
Name
Type
Internal Type
Description

0

``

address

address

Return Values:

Index
Name
Type
Internal Type
Description

0

uint256

uint256

\

platformServiceFee

Gets the platform fee rate for the given loan.

    function platformServiceFee(
        address
    )
        view
        returns (
            uint256
        );

Parameters:

Index
Name
Type
Internal Type
Description

0

``

address

address

Return Values:

Index
Name
Type
Internal Type
Description

0

uint256

uint256

\

updateDelegateFeeTerms

Called during loan creation or refinance, sets the fee terms.

    function updateDelegateFeeTerms(
        uint256 delegateOriginationFee_,
        uint256 delegateServiceFee_
    )
        nonpayable;

Parameters:

Index
Name
Type
Internal Type
Description

0

delegateOriginationFee_

uint256

uint256

The amount of delegate origination fee to be paid.

1

delegateServiceFee_

uint256

uint256

The amount of delegate service fee to be paid.

\

updatePlatformServiceFee

Function called by loans to update the saved platform service fee rate.

    function updatePlatformServiceFee(
        uint256 principalRequested_,
        uint256 paymentInterval_
    )
        nonpayable;

Parameters:

Index
Name
Type
Internal Type
Description

0

principalRequested_

uint256

uint256

1

paymentInterval_

uint256

uint256

\

updateRefinanceServiceFees

Called during loan refinance to save the partial service fees accrued.

    function updateRefinanceServiceFees(
        uint256 principalRequested_,
        uint256 timeSinceLastDueDate_
    )
        nonpayable;

Parameters:

Index
Name
Type
Internal Type
Description

0

principalRequested_

uint256

uint256

The amount of principal pre-refinance requested.

1

timeSinceLastDueDate_

uint256

uint256

The amount of time since last payment due date.

\

Events

FeeTermsUpdated

New fee terms have been set.

    event FeeTermsUpdated(
        address loan_,
        uint256 delegateOriginationFee_,
        uint256 delegateServiceFee_
    );

Parameters:

Index
Name
Type
Internal Type
Description

0

loan_

address

address

The address of the loan contract.

1

delegateOriginationFee_

uint256

uint256

The new value for delegate origination fee.

2

delegateServiceFee_

uint256

uint256

The new value for delegate service fee.

\

OriginationFeesPaid

A fee payment was made.

    event OriginationFeesPaid(
        address loan_,
        uint256 delegateOriginationFee_,
        uint256 platformOriginationFee_
    );

Parameters:

Index
Name
Type
Internal Type
Description

0

loan_

address

address

The address of the loan contract.

1

delegateOriginationFee_

uint256

uint256

The amount of delegate origination fee paid.

2

platformOriginationFee_

uint256

uint256

The amount of platform origination fee paid.

\

PartialRefinanceServiceFeesUpdated

New fee terms have been set.

    event PartialRefinanceServiceFeesUpdated(
        address loan_,
        uint256 partialPlatformServiceFee_,
        uint256 partialDelegateServiceFee_
    );

Parameters:

Index
Name
Type
Internal Type
Description

0

loan_

address

address

The address of the loan contract.

1

partialPlatformServiceFee_

uint256

uint256

The value for the platform service fee.

2

partialDelegateServiceFee_

uint256

uint256

The value for the delegate service fee.

\

PlatformServiceFeeUpdated

New fee terms have been set.

    event PlatformServiceFeeUpdated(
        address loan_,
        uint256 platformServiceFee_
    );

Parameters:

Index
Name
Type
Internal Type
Description

0

loan_

address

address

The address of the loan contract.

1

platformServiceFee_

uint256

uint256

The new value for the platform service fee.

\

ServiceFeesPaid

A fee payment was made.

    event ServiceFeesPaid(
        address loan_,
        uint256 delegateServiceFee_,
        uint256 partialRefinanceDelegateServiceFee_,
        uint256 platformServiceFee_,
        uint256 partialRefinancePlatformServiceFee_
    );

Parameters:

Index
Name
Type
Internal Type
Description

0

loan_

address

address

The address of the loan contract.

1

delegateServiceFee_

uint256

uint256

The amount of delegate service fee paid.

2

partialRefinanceDelegateServiceFee_

uint256

uint256

The amount of partial delegate service fee from refinance paid.

3

platformServiceFee_

uint256

uint256

The amount of platform service fee paid.

4

partialRefinancePlatformServiceFee_

uint256

uint256

The amount of partial platform service fee from refinance paid.

\

PreviousFixedTermLoanFactoryNextFixedTermLoanInitializer

Last updated 6 months ago