MagnifyCashV1
Git Source Inherits: IMagnifyCashV1, Ownable, Pausable, ERC721Holder, ERC1155Holder
Unique identifier for lending desks
Unique identifier for loans
Mapping to store lending desks
Mapping to store loan configs of lending desks
Mapping to store loans
The address of the ERC721 to generate obligation notes for borrowers
The address of the lending desk ownership ERC721
The basis points of fees that the borrower will pay for each loan
The address of the platform wallet
Creates a new lending desk
Emits an {NewLendingDeskInitialized} event.
Parameters
_erc20
address
The ERC20 that will be accepted for loans in this lending desk
_depositAmount
uint256
The initial balance of this lending desk
_loanConfigs
LoanConfig[]
Loan config for each NFT collection this lending desk will support
Creates a new lending configuration
Emits an {LendingDeskLoanConfigsSet} event.
Parameters
_lendingDeskId
uint256
Identifier for the lending desk
_loanConfigs
LoanConfig[]
Loan config for each NFT collection this lending desk will support
Removes a new lending configuration
Emits an {LendingDeskLoanConfigsSet} event.
Parameters
_lendingDeskId
uint256
Identifier for the lending desk
_nftCollection
address
Address for the NFT collection to remove supported config for
This function is called to add liquidity to a lending desk
Emits an {LendingDeskLiquidityDeposited} event.
Parameters
_lendingDeskId
uint256
The id of the lending desk
_amount
uint256
The balance to be transferred
This function is called to cash out a lending desk
Emits an {LendingDeskLiquidityWithdrawn} event.
Parameters
_lendingDeskId
uint256
The id of the lending desk to be cashout
_amount
uint256
Amount to withdraw from the lending desk
This function can be called by the lending desk owner in order to freeze it
Emits an {LendingDeskStateSet} event.
Parameters
_lendingDeskId
uint256
ID of the lending desk to be frozen
_freeze
bool
Whether to freeze or unfreeze
This function can be called by a borrower to create a loan
Emits an {NewLoanInitialized} event
Parameters
_lendingDeskId
uint64
ID of the lending desk related to this offer
_nftCollection
address
The NFT collection address to be used as collateral
_nftId
uint64
ID of the NFT to be used as collateral
_duration
uint32
Loan duration in hours
_amount
uint256
Amount to ask on this loan in ERC20
_maxInterestAllowed
uint32
This function can be called by anyone to get the remaining due amount of a loan
Parameters
_loanId
uint256
ID of the loan
This function can be called by the obligation note holder to pay a loan and get the collateral back
Emits an {LoanPaymentMade} event.
Parameters
_loanId
uint256
ID of the loan
_amount
uint256
The amount to be paid, in erc20 tokens
_resolve
bool
Whether to resolve the loan or not. If true, _amount is ignored.
This function is called by the lending desk key owner in order to liquidate a loan and claim the NFT collateral
Emits an {LiquidatedOverdueLoan} event.
Parameters
_loanId
uint256
ID of the loan
Allows the admin of the contract to modify loan origination fee.
Emits an {LoanOriginationFeeSet} event.
Parameters
_loanOriginationFee
uint256
Basis points fee the borrower will have to pay to the platform when borrowing loan
Allows the admin of the contract to set the platform wallet where platform fees will be sent to
Emits an {PlatformWalletSet} event.
Parameters
_platformWallet
address
Wallet where platform fees will be sent to
Allows the admin of the contract to pause the contract as an emergency response.
Emits either a {Paused} or {Unpaused} event.
Parameters
_paused
bool
Whether to pause or unpause
Event that will be emitted every time a lending desk is created
Event that will be emitted every time a lending desk config is created
Event that will be emitted every time a lending desk config is removed
Event that will be emitted every time liquidity is added to a lending desk
Event that will be emitted every time there is a cash out on a lending desk
Event that will be emitted every time a lending desk is frozen// unfrozen
Event that will be emitted every time a new offer is accepted
Event that will be emitted every time a borrower pays back a loan
Event that will be emitted every time a loan is liquidated when the obligation note holder did not pay it back in time
Event that will be when the contract is deployed
Event that will be emitted every time an admin updates loan origination fee
Event that will be emitted every time an admin updates the platform wallet
Last updated