Properties
version
version : "3" | "3.1" | "3.2"
abi
abi : readonly [ { inputs : readonly [ { internalType : "address" ; name : "loanLiquidator" ; type : "address" ; } , { components : readonly [ { internalType : "address" ; name : "recipient" ; type : "address" ; } , { internalType : "uint256" ; name : "fraction" ; type : "uint256" ; } ] ; internalType : "struct WithProtocolFee.ProtocolFee" ; name : "protocolFee" ; type : "tuple" ; } , { internalType : "address" ; name : "currencyManager" ; type : "address" ; } , { internalType : "address" ; name : "collectionManager" ; type : "address" ; } , { internalType : "uint256" ; name : "maxTranches" ; type : "uint256" ; } , { internalType : "uint256" ; name : "minLockPeriod" ; type : "uint256" ; } , { internalType : "address" ; name : "delegateRegistry" ; type : "address" ; } , { internalType : "address" ; name : "loanManagerRegistry" ; type : "address" ; } , { internalType : "address" ; name : "flashActionContract" ; type : "address" ; } , { internalType : "uint256" ; name : "minWaitTime" ; type : "uint256" ; } ] ; stateMutability : "nonpayable" ; type : "constructor" ; } , { inputs : readonly [ ] ; name : "DOMAIN_SEPARATOR" ; outputs : readonly [ { internalType : "bytes32" ; name : "" ; type : "bytes32" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "FEE_UPDATE_NOTICE" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "INITIAL_DOMAIN_SEPARATOR" ; outputs : readonly [ { internalType : "bytes32" ; name : "" ; type : "bytes32" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "MAX_AUCTION_DURATION" ; outputs : readonly [ { internalType : "uint48" ; name : "" ; type : "uint48" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "MIN_AUCTION_DURATION" ; outputs : readonly [ { internalType : "uint48" ; name : "" ; type : "uint48" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "MIN_BID_LIQUIDATION" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "MIN_WAIT_TIME" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "VERSION" ; outputs : readonly [ { internalType : "bytes" ; name : "" ; type : "bytes" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ { components : readonly [ { internalType : "uint256" ; name : "renegotiationId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "fee" ; type : "uint256" ; } , { internalType : "uint256[]" ; name : "trancheIndex" ; type : "uint256[]" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } , { internalType : "uint256" ; name : "expirationTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.RenegotiationOffer" ; name : "_renegotiationOffer" ; type : "tuple" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "_loan" ; type : "tuple" ; } , { internalType : "bytes" ; name : "_renegotiationOfferSignature" ; type : "bytes" ; } ] ; name : "addNewTranche" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "" ; type : "tuple" ; } ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "_contract" ; type : "address" ; } ] ; name : "addWhitelistedCallbackContract" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_minOfferId" ; type : "uint256" ; } ] ; name : "cancelAllOffers" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_offerId" ; type : "uint256" ; } ] ; name : "cancelOffer" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_renegotiationId" ; type : "uint256" ; } ] ; name : "cancelRenegotiationOffer" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_loanId" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "loan" ; type : "tuple" ; } , { internalType : "address" ; name : "_delegate" ; type : "address" ; } , { internalType : "bytes32" ; name : "_rights" ; type : "bytes32" ; } , { internalType : "bool" ; name : "_value" ; type : "bool" ; } ] ; name : "delegate" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { components : readonly [ { components : readonly [ { components : readonly [ { components : readonly [ { internalType : "uint256" ; name : "offerId" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "fee" ; type : "uint256" ; } , { internalType : "uint256" ; name : "capacity" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } , { internalType : "uint256" ; name : "expirationTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { internalType : "uint256" ; name : "maxSeniorRepayment" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "validator" ; type : "address" ; } , { internalType : "bytes" ; name : "arguments" ; type : "bytes" ; } ] ; internalType : "struct IBaseLoan.OfferValidator[]" ; name : "validators" ; type : "tuple[]" ; } ] ; internalType : "struct IMultiSourceLoan.LoanOffer" ; name : "offer" ; type : "tuple" ; } , { internalType : "uint256" ; name : "amount" ; type : "uint256" ; } , { internalType : "bytes" ; name : "lenderOfferSignature" ; type : "bytes" ; } ] ; internalType : "struct IMultiSourceLoan.OfferExecution[]" ; name : "offerExecution" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "tokenId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { internalType : "uint256" ; name : "expirationTime" ; type : "uint256" ; } , { internalType : "address" ; name : "principalReceiver" ; type : "address" ; } , { internalType : "bytes" ; name : "callbackData" ; type : "bytes" ; } ] ; internalType : "struct IMultiSourceLoan.ExecutionData" ; name : "executionData" ; type : "tuple" ; } , { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "bytes" ; name : "borrowerOfferSignature" ; type : "bytes" ; } ] ; internalType : "struct IMultiSourceLoan.LoanExecutionData" ; name : "_loanExecutionData" ; type : "tuple" ; } ] ; name : "emitLoan" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "" ; type : "tuple" ; } ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_loanId" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "_loan" ; type : "tuple" ; } , { internalType : "address" ; name : "_target" ; type : "address" ; } , { internalType : "bytes" ; name : "_data" ; type : "bytes" ; } ] ; name : "executeFlashAction" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getCollectionManager" ; outputs : readonly [ { internalType : "address" ; name : "" ; type : "address" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getCurrencyManager" ; outputs : readonly [ { internalType : "address" ; name : "" ; type : "address" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getDelegateRegistry" ; outputs : readonly [ { internalType : "address" ; name : "" ; type : "address" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getFlashActionContract" ; outputs : readonly [ { internalType : "address" ; name : "" ; type : "address" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getLiquidationAuctionDuration" ; outputs : readonly [ { internalType : "uint48" ; name : "" ; type : "uint48" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getLiquidator" ; outputs : readonly [ { internalType : "address" ; name : "" ; type : "address" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_loanId" ; type : "uint256" ; } ] ; name : "getLoanHash" ; outputs : readonly [ { internalType : "bytes32" ; name : "" ; type : "bytes32" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getLoanManagerRegistry" ; outputs : readonly [ { internalType : "contract ILoanManagerRegistry" ; name : "" ; type : "address" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getMaxTranches" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getMinImprovementApr" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getMinLockPeriod" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getPendingProtocolFee" ; outputs : readonly [ { components : readonly [ { internalType : "address" ; name : "recipient" ; type : "address" ; } , { internalType : "uint256" ; name : "fraction" ; type : "uint256" ; } ] ; internalType : "struct WithProtocolFee.ProtocolFee" ; name : "" ; type : "tuple" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getPendingProtocolFeeSetTime" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getProtocolFee" ; outputs : readonly [ { components : readonly [ { internalType : "address" ; name : "recipient" ; type : "address" ; } , { internalType : "uint256" ; name : "fraction" ; type : "uint256" ; } ] ; internalType : "struct WithProtocolFee.ProtocolFee" ; name : "" ; type : "tuple" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getTotalLoansIssued" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "_lender" ; type : "address" ; } , { internalType : "uint256" ; name : "_offerId" ; type : "uint256" ; } ] ; name : "getUsedCapacity" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "user" ; type : "address" ; } , { internalType : "uint256" ; name : "offerId" ; type : "uint256" ; } ] ; name : "isOfferCancelled" ; outputs : readonly [ { internalType : "bool" ; name : "notActive" ; type : "bool" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "user" ; type : "address" ; } , { internalType : "uint256" ; name : "renegotiationIf" ; type : "uint256" ; } ] ; name : "isRenegotiationOfferCancelled" ; outputs : readonly [ { internalType : "bool" ; name : "notActive" ; type : "bool" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "_contract" ; type : "address" ; } ] ; name : "isWhitelistedCallbackContract" ; outputs : readonly [ { internalType : "bool" ; name : "" ; type : "bool" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_loanId" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "_loan" ; type : "tuple" ; } ] ; name : "liquidateLoan" ; outputs : readonly [ { internalType : "bytes" ; name : "" ; type : "bytes" ; } ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_loanId" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "_loan" ; type : "tuple" ; } ] ; name : "loanLiquidated" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "user" ; type : "address" ; } ] ; name : "minOfferId" ; outputs : readonly [ { internalType : "uint256" ; name : "minOfferId" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ { internalType : "bytes[]" ; name : "data" ; type : "bytes[]" ; } ] ; name : "multicall" ; outputs : readonly [ { internalType : "bytes[]" ; name : "results" ; type : "bytes[]" ; } ] ; stateMutability : "payable" ; type : "function" ; } , { inputs : readonly [ ] ; name : "name" ; outputs : readonly [ { internalType : "string" ; name : "" ; type : "string" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "" ; type : "address" ; } , { internalType : "address" ; name : "" ; type : "address" ; } , { internalType : "uint256" ; name : "" ; type : "uint256" ; } , { internalType : "bytes" ; name : "" ; type : "bytes" ; } ] ; name : "onERC721Received" ; outputs : readonly [ { internalType : "bytes4" ; name : "" ; type : "bytes4" ; } ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ ] ; name : "owner" ; outputs : readonly [ { internalType : "address" ; name : "" ; type : "address" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "pendingOwner" ; outputs : readonly [ { internalType : "address" ; name : "" ; type : "address" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "pendingOwnerTime" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_loanId" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "_loan" ; type : "tuple" ; } , { components : readonly [ { components : readonly [ { components : readonly [ { components : readonly [ { internalType : "uint256" ; name : "offerId" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "fee" ; type : "uint256" ; } , { internalType : "uint256" ; name : "capacity" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } , { internalType : "uint256" ; name : "expirationTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { internalType : "uint256" ; name : "maxSeniorRepayment" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "validator" ; type : "address" ; } , { internalType : "bytes" ; name : "arguments" ; type : "bytes" ; } ] ; internalType : "struct IBaseLoan.OfferValidator[]" ; name : "validators" ; type : "tuple[]" ; } ] ; internalType : "struct IMultiSourceLoan.LoanOffer" ; name : "offer" ; type : "tuple" ; } , { internalType : "uint256" ; name : "amount" ; type : "uint256" ; } , { internalType : "bytes" ; name : "lenderOfferSignature" ; type : "bytes" ; } ] ; internalType : "struct IMultiSourceLoan.OfferExecution[]" ; name : "offerExecution" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "tokenId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { internalType : "uint256" ; name : "expirationTime" ; type : "uint256" ; } , { internalType : "address" ; name : "principalReceiver" ; type : "address" ; } , { internalType : "bytes" ; name : "callbackData" ; type : "bytes" ; } ] ; internalType : "struct IMultiSourceLoan.ExecutionData" ; name : "executionData" ; type : "tuple" ; } , { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "bytes" ; name : "borrowerOfferSignature" ; type : "bytes" ; } ] ; internalType : "struct IMultiSourceLoan.LoanExecutionData" ; name : "_loanExecutionData" ; type : "tuple" ; } ] ; name : "refinanceFromLoanExecutionData" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "" ; type : "tuple" ; } ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { components : readonly [ { internalType : "uint256" ; name : "renegotiationId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "fee" ; type : "uint256" ; } , { internalType : "uint256[]" ; name : "trancheIndex" ; type : "uint256[]" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } , { internalType : "uint256" ; name : "expirationTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.RenegotiationOffer" ; name : "_renegotiationOffer" ; type : "tuple" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "_loan" ; type : "tuple" ; } , { internalType : "bytes" ; name : "_renegotiationOfferSignature" ; type : "bytes" ; } ] ; name : "refinanceFull" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "" ; type : "tuple" ; } ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { components : readonly [ { internalType : "uint256" ; name : "renegotiationId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "fee" ; type : "uint256" ; } , { internalType : "uint256[]" ; name : "trancheIndex" ; type : "uint256[]" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } , { internalType : "uint256" ; name : "expirationTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.RenegotiationOffer" ; name : "_renegotiationOffer" ; type : "tuple" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "_loan" ; type : "tuple" ; } ] ; name : "refinancePartial" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "" ; type : "tuple" ; } ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "_contract" ; type : "address" ; } ] ; name : "removeWhitelistedCallbackContract" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { components : readonly [ { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "bytes" ; name : "callbackData" ; type : "bytes" ; } , { internalType : "bool" ; name : "shouldDelegate" ; type : "bool" ; } ] ; internalType : "struct IMultiSourceLoan.SignableRepaymentData" ; name : "data" ; type : "tuple" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "loan" ; type : "tuple" ; } , { internalType : "bytes" ; name : "borrowerSignature" ; type : "bytes" ; } ] ; internalType : "struct IMultiSourceLoan.LoanRepaymentData" ; name : "_repaymentData" ; type : "tuple" ; } ] ; name : "repayLoan" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "_newOwner" ; type : "address" ; } ] ; name : "requestTransferOwner" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "_delegate" ; type : "address" ; } , { internalType : "address" ; name : "_collection" ; type : "address" ; } , { internalType : "uint256" ; name : "_tokenId" ; type : "uint256" ; } , { internalType : "bytes32" ; name : "_rights" ; type : "bytes32" ; } ] ; name : "revokeDelegate" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "_newFlashActionContract" ; type : "address" ; } ] ; name : "setFlashActionContract" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "__minLockPeriod" ; type : "uint256" ; } ] ; name : "setMinLockPeriod" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ ] ; name : "setProtocolFee" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ ] ; name : "transferOwnership" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "newOwner" ; type : "address" ; } ] ; name : "transferOwnership" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint48" ; name : "_newDuration" ; type : "uint48" ; } ] ; name : "updateLiquidationAuctionDuration" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "__loanLiquidator" ; type : "address" ; } ] ; name : "updateLiquidationContract" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_newMinimum" ; type : "uint256" ; } ] ; name : "updateMinImprovementApr" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { components : readonly [ { internalType : "address" ; name : "recipient" ; type : "address" ; } , { internalType : "uint256" ; name : "fraction" ; type : "uint256" ; } ] ; internalType : "struct WithProtocolFee.ProtocolFee" ; name : "_newProtocolFee" ; type : "tuple" ; } ] ; name : "updateProtocolFee" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "address" ; name : "lender" ; type : "address" ; } , { indexed : false ; internalType : "uint256" ; name : "minOfferId" ; type : "uint256" ; } ] ; name : "AllOffersCancelled" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { indexed : false ; internalType : "address" ; name : "delegate" ; type : "address" ; } , { indexed : false ; internalType : "bytes32" ; name : "_rights" ; type : "bytes32" ; } , { indexed : false ; internalType : "bool" ; name : "value" ; type : "bool" ; } ] ; name : "Delegated" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "address" ; name : "newFlashActionContract" ; type : "address" ; } ] ; name : "FlashActionContractUpdated" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { indexed : false ; internalType : "address" ; name : "target" ; type : "address" ; } , { indexed : false ; internalType : "bytes" ; name : "data" ; type : "bytes" ; } ] ; name : "FlashActionExecuted" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "newDuration" ; type : "uint256" ; } ] ; name : "LiquidationAuctionDurationUpdated" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "address" ; name : "liquidator" ; type : "address" ; } ] ; name : "LiquidationContractUpdated" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { indexed : false ; internalType : "uint256[]" ; name : "offerId" ; type : "uint256[]" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; indexed : false ; internalType : "struct IMultiSourceLoan.Loan" ; name : "loan" ; type : "tuple" ; } , { indexed : false ; internalType : "uint256" ; name : "fee" ; type : "uint256" ; } ] ; name : "LoanEmitted" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } ] ; name : "LoanForeclosed" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } ] ; name : "LoanLiquidated" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "renegotiationId" ; type : "uint256" ; } , { indexed : false ; internalType : "uint256" ; name : "oldLoanId" ; type : "uint256" ; } , { indexed : false ; internalType : "uint256" ; name : "newLoanId" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; indexed : false ; internalType : "struct IMultiSourceLoan.Loan" ; name : "loan" ; type : "tuple" ; } , { indexed : false ; internalType : "uint256" ; name : "fee" ; type : "uint256" ; } ] ; name : "LoanRefinanced" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { indexed : false ; internalType : "uint256" ; name : "newLoanId" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; indexed : false ; internalType : "struct IMultiSourceLoan.Loan" ; name : "loan" ; type : "tuple" ; } , { indexed : false ; internalType : "uint256[]" ; name : "offerIds" ; type : "uint256[]" ; } , { indexed : false ; internalType : "uint256" ; name : "totalFee" ; type : "uint256" ; } ] ; name : "LoanRefinancedFromNewOffers" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { indexed : false ; internalType : "uint256" ; name : "totalRepayment" ; type : "uint256" ; } , { indexed : false ; internalType : "uint256" ; name : "fee" ; type : "uint256" ; } ] ; name : "LoanRepaid" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { indexed : false ; internalType : "address" ; name : "liquidator" ; type : "address" ; } ] ; name : "LoanSentToLiquidator" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "_minimum" ; type : "uint256" ; } ] ; name : "MinAprImprovementUpdated" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "newMinBid" ; type : "uint256" ; } ] ; name : "MinBidLiquidationUpdated" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "minLockPeriod" ; type : "uint256" ; } ] ; name : "MinLockPeriodUpdated" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "address" ; name : "lender" ; type : "address" ; } , { indexed : false ; internalType : "uint256" ; name : "offerId" ; type : "uint256" ; } ] ; name : "OfferCancelled" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : true ; internalType : "address" ; name : "user" ; type : "address" ; } , { indexed : true ; internalType : "address" ; name : "newOwner" ; type : "address" ; } ] ; name : "OwnershipTransferred" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { components : readonly [ { internalType : "address" ; name : "recipient" ; type : "address" ; } , { internalType : "uint256" ; name : "fraction" ; type : "uint256" ; } ] ; indexed : false ; internalType : "struct WithProtocolFee.ProtocolFee" ; name : "fee" ; type : "tuple" ; } ] ; name : "ProtocolFeePendingUpdate" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { components : readonly [ { internalType : "address" ; name : "recipient" ; type : "address" ; } , { internalType : "uint256" ; name : "fraction" ; type : "uint256" ; } ] ; indexed : false ; internalType : "struct WithProtocolFee.ProtocolFee" ; name : "fee" ; type : "tuple" ; } ] ; name : "ProtocolFeeUpdated" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "address" ; name : "lender" ; type : "address" ; } , { indexed : false ; internalType : "uint256" ; name : "renegotiationId" ; type : "uint256" ; } ] ; name : "RenegotiationOfferCancelled" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "address" ; name : "delegate" ; type : "address" ; } , { indexed : false ; internalType : "address" ; name : "collection" ; type : "address" ; } , { indexed : false ; internalType : "uint256" ; name : "tokenId" ; type : "uint256" ; } , { indexed : false ; internalType : "bytes32" ; name : "_rights" ; type : "bytes32" ; } ] ; name : "RevokeDelegate" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "address" ; name : "newOwner" ; type : "address" ; } ] ; name : "TransferOwnerRequested" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "address" ; name : "contractAdded" ; type : "address" ; } ] ; name : "WhitelistedCallbackContractAdded" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "address" ; name : "contractRemoved" ; type : "address" ; } ] ; name : "WhitelistedCallbackContractRemoved" ; type : "event" ; } , { inputs : readonly [ ] ; name : "AddressZeroError" ; type : "error" ; } , { inputs : readonly [ { internalType : "address" ; name : "_lender" ; type : "address" ; } , { internalType : "uint256" ; name : "_offerId" ; type : "uint256" ; } ] ; name : "CancelledOrExecutedOfferError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "CollectionNotWhitelistedError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "CurrencyNotWhitelistedError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "ECDSAInvalidSignature" ; type : "error" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "length" ; type : "uint256" ; } ] ; name : "ECDSAInvalidSignatureLength" ; type : "error" ; } , { inputs : readonly [ { internalType : "bytes32" ; name : "s" ; type : "bytes32" ; } ] ; name : "ECDSAInvalidSignatureS" ; type : "error" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_expirationTime" ; type : "uint256" ; } ] ; name : "ExpiredOfferError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidAddressesError" ; type : "error" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_amount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "_principalAmount" ; type : "uint256" ; } ] ; name : "InvalidAmountError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidCallbackError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidCallerError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidCollateralIdError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidDurationError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidInputError" ; type : "error" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_loanId" ; type : "uint256" ; } ] ; name : "InvalidLoanError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidMethodError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidParametersError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidRenegotiationOfferError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidSignatureError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidTrancheError" ; type : "error" ; } , { inputs : readonly [ { internalType : "address" ; name : "_liquidator" ; type : "address" ; } ] ; name : "LiquidatorOnlyError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "LoanExpiredError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "LoanLockedError" ; type : "error" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_expirationTime" ; type : "uint256" ; } ] ; name : "LoanNotDueError" ; type : "error" ; } , { inputs : readonly [ { internalType : "address" ; name : "_lender" ; type : "address" ; } , { internalType : "uint256" ; name : "_newMinOfferId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "_minOfferId" ; type : "uint256" ; } ] ; name : "LowOfferIdError" ; type : "error" ; } , { inputs : readonly [ { internalType : "address" ; name : "_lender" ; type : "address" ; } , { internalType : "uint256" ; name : "_newMinRenegotiationOfferId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "_minOfferId" ; type : "uint256" ; } ] ; name : "LowRenegotiationOfferIdError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "MaxCapacityExceededError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "MismatchError" ; type : "error" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "i" ; type : "uint256" ; } , { internalType : "bytes" ; name : "returndata" ; type : "bytes" ; } ] ; name : "MulticallFailed" ; type : "error" ; } , { inputs : readonly [ ] ; name : "NFTNotReturnedError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "NotStrictlyImprovedError" ; type : "error" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_pendingProtocolFeeSetTime" ; type : "uint256" ; } ] ; name : "TooEarlyError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "TooManyTranchesError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "TooSoonError" ; type : "error" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "minTimestamp" ; type : "uint256" ; } ] ; name : "TrancheCannotBeRefinancedError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "ZeroInterestError" ; type : "error" ; } ] | readonly [ { type : "constructor" ; inputs : readonly [ { name : "loanLiquidator" ; type : "address" ; internalType : "address" ; } , { name : "protocolFee" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "currencyManager" ; type : "address" ; internalType : "address" ; } , { name : "collectionManager" ; type : "address" ; internalType : "address" ; } , { name : "maxTranches" ; type : "uint256" ; internalType : "uint256" ; } , { name : "minLockPeriod" ; type : "uint256" ; internalType : "uint256" ; } , { name : "delegateRegistry" ; type : "address" ; internalType : "address" ; } , { name : "loanManagerRegistry" ; type : "address" ; internalType : "address" ; } , { name : "flashActionContract" ; type : "address" ; internalType : "address" ; } , { name : "minWaitTime" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "DOMAIN_SEPARATOR" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "FEE_UPDATE_NOTICE" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "INITIAL_DOMAIN_SEPARATOR" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "MAX_AUCTION_DURATION" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint48" ; internalType : "uint48" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "MIN_AUCTION_DURATION" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint48" ; internalType : "uint48" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "MIN_BID_LIQUIDATION" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "MIN_WAIT_TIME" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "VERSION" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes" ; internalType : "bytes" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "addNewTranche" ; inputs : readonly [ { name : "_renegotiationOffer" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.RenegotiationOffer" ; components : readonly [ { name : "renegotiationId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "trancheIndex" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_renegotiationOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "addWhitelistedCallbackContract" ; inputs : readonly [ { name : "_contract" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "cancelOffer" ; inputs : readonly [ { name : "_offerId" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "cancelRenegotiationOffer" ; inputs : readonly [ { name : "_renegotiationId" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "delegate" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_delegate" ; type : "address" ; internalType : "address" ; } , { name : "_rights" ; type : "bytes32" ; internalType : "bytes32" ; } , { name : "_value" ; type : "bool" ; internalType : "bool" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "emitLoan" ; inputs : readonly [ { name : "_loanExecutionData" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.LoanExecutionData" ; components : readonly [ { name : "executionData" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.ExecutionData" ; components : readonly [ { name : "offerExecution" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.OfferExecution[]" ; components : readonly [ { name : "offer" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.LoanOffer" ; components : readonly [ { name : "offerId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "capacity" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "maxSeniorRepayment" ; type : "uint256" ; internalType : "uint256" ; } , { name : "validators" ; type : "tuple[]" ; internalType : "struct IBaseLoan.OfferValidator[]" ; components : readonly [ { name : "validator" ; type : "address" ; internalType : "address" ; } , { name : "arguments" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; } , { name : "amount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "tokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalReceiver" ; type : "address" ; internalType : "address" ; } , { name : "callbackData" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "borrowerOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "executeFlashAction" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_target" ; type : "address" ; internalType : "address" ; } , { name : "_data" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "getCollectionManager" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getCurrencyManager" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getDelegateRegistry" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getFlashActionContract" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getLiquidationAuctionDuration" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint48" ; internalType : "uint48" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getLiquidator" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getLoanHash" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getLoanManagerRegistry" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "contract ILoanManagerRegistry" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getMaxTranches" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getMinImprovementApr" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getMinLockPeriod" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getPendingProtocolFee" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getPendingProtocolFeeSetTime" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getProtocolFee" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getTotalLoansIssued" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getUsedCapacity" ; inputs : readonly [ { name : "_lender" ; type : "address" ; internalType : "address" ; } , { name : "_offerId" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "isOfferCancelled" ; inputs : readonly [ { name : "user" ; type : "address" ; internalType : "address" ; } , { name : "offerId" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ { name : "notActive" ; type : "bool" ; internalType : "bool" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "isRenegotiationOfferCancelled" ; inputs : readonly [ { name : "user" ; type : "address" ; internalType : "address" ; } , { name : "renegotiationIf" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ { name : "notActive" ; type : "bool" ; internalType : "bool" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "isWhitelistedCallbackContract" ; inputs : readonly [ { name : "_contract" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ { name : "" ; type : "bool" ; internalType : "bool" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "liquidateLoan" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; outputs : readonly [ { name : "" ; type : "bytes" ; internalType : "bytes" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "loanLiquidated" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "multicall" ; inputs : readonly [ { name : "data" ; type : "bytes[]" ; internalType : "bytes[]" ; } ] ; outputs : readonly [ { name : "results" ; type : "bytes[]" ; internalType : "bytes[]" ; } ] ; stateMutability : "payable" ; } , { type : "function" ; name : "name" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "string" ; internalType : "string" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "onERC721Received" ; inputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } , { name : "" ; type : "address" ; internalType : "address" ; } , { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "bytes4" ; internalType : "bytes4" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "owner" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "pendingOwner" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "pendingOwnerTime" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "refinanceFromLoanExecutionData" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_loanExecutionData" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.LoanExecutionData" ; components : readonly [ { name : "executionData" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.ExecutionData" ; components : readonly [ { name : "offerExecution" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.OfferExecution[]" ; components : readonly [ { name : "offer" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.LoanOffer" ; components : readonly [ { name : "offerId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "capacity" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "maxSeniorRepayment" ; type : "uint256" ; internalType : "uint256" ; } , { name : "validators" ; type : "tuple[]" ; internalType : "struct IBaseLoan.OfferValidator[]" ; components : readonly [ { name : "validator" ; type : "address" ; internalType : "address" ; } , { name : "arguments" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; } , { name : "amount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "tokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalReceiver" ; type : "address" ; internalType : "address" ; } , { name : "callbackData" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "borrowerOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "refinanceFull" ; inputs : readonly [ { name : "_renegotiationOffer" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.RenegotiationOffer" ; components : readonly [ { name : "renegotiationId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "trancheIndex" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_renegotiationOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "refinancePartial" ; inputs : readonly [ { name : "_renegotiationOffer" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.RenegotiationOffer" ; components : readonly [ { name : "renegotiationId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "trancheIndex" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "removeWhitelistedCallbackContract" ; inputs : readonly [ { name : "_contract" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "repayLoan" ; inputs : readonly [ { name : "_repaymentData" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.LoanRepaymentData" ; components : readonly [ { name : "data" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.SignableRepaymentData" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "callbackData" ; type : "bytes" ; internalType : "bytes" ; } , { name : "shouldDelegate" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "borrowerSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "requestTransferOwner" ; inputs : readonly [ { name : "_newOwner" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "revokeDelegate" ; inputs : readonly [ { name : "_delegate" ; type : "address" ; internalType : "address" ; } , { name : "_collection" ; type : "address" ; internalType : "address" ; } , { name : "_tokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_rights" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "setFlashActionContract" ; inputs : readonly [ { name : "_newFlashActionContract" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "setMinLockPeriod" ; inputs : readonly [ { name : "__minLockPeriod" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "setProtocolFee" ; inputs : readonly [ ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "transferOwnership" ; inputs : readonly [ ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "transferOwnership" ; inputs : readonly [ { name : "newOwner" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "updateLiquidationAuctionDuration" ; inputs : readonly [ { name : "_newDuration" ; type : "uint48" ; internalType : "uint48" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "updateLiquidationContract" ; inputs : readonly [ { name : "__loanLiquidator" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "updateMinImprovementApr" ; inputs : readonly [ { name : "_newMinimum" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "updateProtocolFee" ; inputs : readonly [ { name : "_newProtocolFee" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "event" ; name : "Delegated" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "delegate" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "_rights" ; type : "bytes32" ; indexed : false ; internalType : "bytes32" ; } , { name : "value" ; type : "bool" ; indexed : false ; internalType : "bool" ; } ] ; anonymous : false ; } , { type : "event" ; name : "FlashActionContractUpdated" ; inputs : readonly [ { name : "newFlashActionContract" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "FlashActionExecuted" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "target" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "data" ; type : "bytes" ; indexed : false ; internalType : "bytes" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LiquidationAuctionDurationUpdated" ; inputs : readonly [ { name : "newDuration" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LiquidationContractUpdated" ; inputs : readonly [ { name : "liquidator" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanEmitted" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "offerId" ; type : "uint256[]" ; indexed : false ; internalType : "uint256[]" ; } , { name : "loan" ; type : "tuple" ; indexed : false ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "fee" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanForeclosed" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanLiquidated" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanRefinanced" ; inputs : readonly [ { name : "renegotiationId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "oldLoanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "newLoanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "loan" ; type : "tuple" ; indexed : false ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "fee" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanRefinancedFromNewOffers" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "newLoanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "loan" ; type : "tuple" ; indexed : false ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "offerIds" ; type : "uint256[]" ; indexed : false ; internalType : "uint256[]" ; } , { name : "totalFee" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanRepaid" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "totalRepayment" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "fee" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanSentToLiquidator" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "liquidator" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "MinAprImprovementUpdated" ; inputs : readonly [ { name : "_minimum" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "MinBidLiquidationUpdated" ; inputs : readonly [ { name : "newMinBid" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "MinLockPeriodUpdated" ; inputs : readonly [ { name : "minLockPeriod" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "OfferCancelled" ; inputs : readonly [ { name : "lender" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "offerId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "OwnershipTransferred" ; inputs : readonly [ { name : "user" ; type : "address" ; indexed : true ; internalType : "address" ; } , { name : "newOwner" ; type : "address" ; indexed : true ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "ProtocolFeePendingUpdate" ; inputs : readonly [ { name : "fee" ; type : "tuple" ; indexed : false ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; anonymous : false ; } , { type : "event" ; name : "ProtocolFeeUpdated" ; inputs : readonly [ { name : "fee" ; type : "tuple" ; indexed : false ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; anonymous : false ; } , { type : "event" ; name : "RenegotiationOfferCancelled" ; inputs : readonly [ { name : "lender" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "renegotiationId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "RevokeDelegate" ; inputs : readonly [ { name : "delegate" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "collection" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "tokenId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "_rights" ; type : "bytes32" ; indexed : false ; internalType : "bytes32" ; } ] ; anonymous : false ; } , { type : "event" ; name : "TransferOwnerRequested" ; inputs : readonly [ { name : "newOwner" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "WhitelistedCallbackContractAdded" ; inputs : readonly [ { name : "contractAdded" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "WhitelistedCallbackContractRemoved" ; inputs : readonly [ { name : "contractRemoved" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "error" ; name : "AddressZeroError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "CancelledOrExecutedOfferError" ; inputs : readonly [ { name : "_lender" ; type : "address" ; internalType : "address" ; } , { name : "_offerId" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "CollectionNotWhitelistedError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "CurrencyNotWhitelistedError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "ECDSAInvalidSignature" ; inputs : readonly [ ] ; } , { type : "error" ; name : "ECDSAInvalidSignatureLength" ; inputs : readonly [ { name : "length" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "ECDSAInvalidSignatureS" ; inputs : readonly [ { name : "s" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; } , { type : "error" ; name : "ExpiredOfferError" ; inputs : readonly [ { name : "_expirationTime" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "InvalidAddressesError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidAmountError" ; inputs : readonly [ { name : "_amount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_principalAmount" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "InvalidCallbackError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidCallerError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidCollateralError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidCollateralIdError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidDurationError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidInputError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidLoanError" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "InvalidMethodError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidParametersError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidRenegotiationOfferError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidSignatureError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidTrancheError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "LiquidatorOnlyError" ; inputs : readonly [ { name : "_liquidator" ; type : "address" ; internalType : "address" ; } ] ; } , { type : "error" ; name : "LoanExpiredError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "LoanLockedError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "LoanNotDueError" ; inputs : readonly [ { name : "_expirationTime" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "MaxCapacityExceededError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "MismatchError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "MulticallFailed" ; inputs : readonly [ { name : "i" ; type : "uint256" ; internalType : "uint256" ; } , { name : "returndata" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { type : "error" ; name : "NFTNotReturnedError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "NotStrictlyImprovedError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "TooEarlyError" ; inputs : readonly [ { name : "_pendingProtocolFeeSetTime" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "TooManyTranchesError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "TooSoonError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "TrancheCannotBeRefinancedError" ; inputs : readonly [ { name : "minTimestamp" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "ZeroInterestError" ; inputs : readonly [ ] ; } ] | readonly [ { type : "constructor" ; inputs : readonly [ { name : "loanLiquidator" ; type : "address" ; internalType : "address" ; } , { name : "protocolFee" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "currencyManager" ; type : "address" ; internalType : "address" ; } , { name : "collectionManager" ; type : "address" ; internalType : "address" ; } , { name : "maxTranches" ; type : "uint256" ; internalType : "uint256" ; } , { name : "minLockPeriod" ; type : "uint256" ; internalType : "uint256" ; } , { name : "delegateRegistry" ; type : "address" ; internalType : "address" ; } , { name : "loanManagerRegistry" ; type : "address" ; internalType : "address" ; } , { name : "flashActionContract" ; type : "address" ; internalType : "address" ; } , { name : "minWaitTime" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "DOMAIN_SEPARATOR" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "FEE_UPDATE_NOTICE" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "INITIAL_DOMAIN_SEPARATOR" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "MAX_AUCTION_DURATION" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint48" ; internalType : "uint48" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "MIN_AUCTION_DURATION" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint48" ; internalType : "uint48" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "MIN_BID_LIQUIDATION" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "MIN_WAIT_TIME" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "VERSION" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes" ; internalType : "bytes" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "addNewTranche" ; inputs : readonly [ { name : "_renegotiationOffer" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.RenegotiationOffer" ; components : readonly [ { name : "renegotiationId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "trancheIndex" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "_renegotiationOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "addWhitelistedCallbackContract" ; inputs : readonly [ { name : "_contract" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "cancelOffer" ; inputs : readonly [ { name : "_offerId" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "cancelRenegotiationOffer" ; inputs : readonly [ { name : "_renegotiationId" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "delegate" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "_delegate" ; type : "address" ; internalType : "address" ; } , { name : "_rights" ; type : "bytes32" ; internalType : "bytes32" ; } , { name : "_value" ; type : "bool" ; internalType : "bool" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "emitLoan" ; inputs : readonly [ { name : "_loanExecutionData" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.LoanExecutionData" ; components : readonly [ { name : "executionData" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.ExecutionData" ; components : readonly [ { name : "offerExecution" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.OfferExecution[]" ; components : readonly [ { name : "offer" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.LoanOffer" ; components : readonly [ { name : "offerId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "capacity" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "maxSeniorRepayment" ; type : "uint256" ; internalType : "uint256" ; } , { name : "validators" ; type : "tuple[]" ; internalType : "struct IBaseLoan.OfferValidator[]" ; components : readonly [ { name : "validator" ; type : "address" ; internalType : "address" ; } , { name : "arguments" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } , { name : "borrower" ; type : "address" ; internalType : "address" ; } ] ; } , { name : "amount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "tokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalReceiver" ; type : "address" ; internalType : "address" ; } , { name : "callbackData" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "borrowerOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "executeFlashAction" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "_target" ; type : "address" ; internalType : "address" ; } , { name : "_data" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "getCollectionManager" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getCurrencyManager" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getDelegateRegistry" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getFlashActionContract" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getLiquidationAuctionDuration" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint48" ; internalType : "uint48" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getLiquidator" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getLoanHash" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getLoanManagerRegistry" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "contract ILoanManagerRegistry" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getMaxTranches" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getMinImprovementApr" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getMinLockPeriod" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getPendingProtocolFee" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getPendingProtocolFeeSetTime" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getProtocolFee" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getTotalLoansIssued" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getUsedCapacity" ; inputs : readonly [ { name : "_lender" ; type : "address" ; internalType : "address" ; } , { name : "_offerId" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "isOfferCancelled" ; inputs : readonly [ { name : "user" ; type : "address" ; internalType : "address" ; } , { name : "offerId" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ { name : "notActive" ; type : "bool" ; internalType : "bool" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "isRenegotiationOfferCancelled" ; inputs : readonly [ { name : "user" ; type : "address" ; internalType : "address" ; } , { name : "renegotiationIf" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ { name : "notActive" ; type : "bool" ; internalType : "bool" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "isWhitelistedCallbackContract" ; inputs : readonly [ { name : "_contract" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ { name : "" ; type : "bool" ; internalType : "bool" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "liquidateLoan" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } ] ; outputs : readonly [ { name : "" ; type : "bytes" ; internalType : "bytes" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "multicall" ; inputs : readonly [ { name : "data" ; type : "bytes[]" ; internalType : "bytes[]" ; } ] ; outputs : readonly [ { name : "results" ; type : "bytes[]" ; internalType : "bytes[]" ; } ] ; stateMutability : "payable" ; } , { type : "function" ; name : "name" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "string" ; internalType : "string" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "onERC721Received" ; inputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } , { name : "" ; type : "address" ; internalType : "address" ; } , { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "bytes4" ; internalType : "bytes4" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "owner" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "pendingOwner" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "pendingOwnerTime" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "refinanceFromLoanExecutionData" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "_loanExecutionData" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.LoanExecutionData" ; components : readonly [ { name : "executionData" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.ExecutionData" ; components : readonly [ { name : "offerExecution" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.OfferExecution[]" ; components : readonly [ { name : "offer" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.LoanOffer" ; components : readonly [ { name : "offerId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "capacity" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "maxSeniorRepayment" ; type : "uint256" ; internalType : "uint256" ; } , { name : "validators" ; type : "tuple[]" ; internalType : "struct IBaseLoan.OfferValidator[]" ; components : readonly [ { name : "validator" ; type : "address" ; internalType : "address" ; } , { name : "arguments" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } , { name : "borrower" ; type : "address" ; internalType : "address" ; } ] ; } , { name : "amount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "tokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalReceiver" ; type : "address" ; internalType : "address" ; } , { name : "callbackData" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "borrowerOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "refinanceFull" ; inputs : readonly [ { name : "_renegotiationOffer" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.RenegotiationOffer" ; components : readonly [ { name : "renegotiationId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "trancheIndex" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "_renegotiationOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "refinancePartial" ; inputs : readonly [ { name : "_renegotiationOffer" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.RenegotiationOffer" ; components : readonly [ { name : "renegotiationId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "trancheIndex" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "removeWhitelistedCallbackContract" ; inputs : readonly [ { name : "_contract" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "repayLoan" ; inputs : readonly [ { name : "_repaymentData" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.LoanRepaymentData" ; components : readonly [ { name : "data" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.SignableRepaymentData" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "callbackData" ; type : "bytes" ; internalType : "bytes" ; } , { name : "shouldDelegate" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "borrowerSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "requestTransferOwner" ; inputs : readonly [ { name : "_newOwner" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "revokeDelegate" ; inputs : readonly [ { name : "_delegate" ; type : "address" ; internalType : "address" ; } , { name : "_collection" ; type : "address" ; internalType : "address" ; } , { name : "_tokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_rights" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "setFlashActionContract" ; inputs : readonly [ { name : "_newFlashActionContract" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "setMinLockPeriod" ; inputs : readonly [ { name : "__minLockPeriod" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "setProtocolFee" ; inputs : readonly [ ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "transferOwnership" ; inputs : readonly [ ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "updateLiquidationAuctionDuration" ; inputs : readonly [ { name : "_newDuration" ; type : "uint48" ; internalType : "uint48" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "updateLiquidationContract" ; inputs : readonly [ { name : "__loanLiquidator" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "updateMinImprovementApr" ; inputs : readonly [ { name : "_newMinimum" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "updateProtocolFee" ; inputs : readonly [ { name : "_newProtocolFee" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "event" ; name : "Delegated" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "delegate" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "_rights" ; type : "bytes32" ; indexed : false ; internalType : "bytes32" ; } , { name : "value" ; type : "bool" ; indexed : false ; internalType : "bool" ; } ] ; anonymous : false ; } , { type : "event" ; name : "FlashActionContractUpdated" ; inputs : readonly [ { name : "newFlashActionContract" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "FlashActionExecuted" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "target" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "data" ; type : "bytes" ; indexed : false ; internalType : "bytes" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LiquidationAuctionDurationUpdated" ; inputs : readonly [ { name : "newDuration" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LiquidationContractUpdated" ; inputs : readonly [ { name : "liquidator" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanEmitted" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "offerId" ; type : "uint256[]" ; indexed : false ; internalType : "uint256[]" ; } , { name : "loan" ; type : "tuple" ; indexed : false ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "fee" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanForeclosed" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanLiquidated" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "foreclosed" ; type : "bool" ; indexed : false ; internalType : "bool" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanRefinanced" ; inputs : readonly [ { name : "renegotiationId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "oldLoanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "newLoanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "loan" ; type : "tuple" ; indexed : false ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "fee" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanRefinancedFromNewOffers" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "newLoanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "loan" ; type : "tuple" ; indexed : false ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "offerIds" ; type : "uint256[]" ; indexed : false ; internalType : "uint256[]" ; } , { name : "totalFee" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanRepaid" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "totalRepayment" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "fee" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanSentToLiquidator" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "liquidator" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "MinAprImprovementUpdated" ; inputs : readonly [ { name : "_minimum" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "MinBidLiquidationUpdated" ; inputs : readonly [ { name : "newMinBid" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "MinLockPeriodUpdated" ; inputs : readonly [ { name : "minLockPeriod" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "OfferCancelled" ; inputs : readonly [ { name : "lender" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "offerId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "OwnershipTransferred" ; inputs : readonly [ { name : "user" ; type : "address" ; indexed : true ; internalType : "address" ; } , { name : "newOwner" ; type : "address" ; indexed : true ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "ProtocolFeePendingUpdate" ; inputs : readonly [ { name : "fee" ; type : "tuple" ; indexed : false ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; anonymous : false ; } , { type : "event" ; name : "ProtocolFeeUpdated" ; inputs : readonly [ { name : "fee" ; type : "tuple" ; indexed : false ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; anonymous : false ; } , { type : "event" ; name : "RenegotiationOfferCancelled" ; inputs : readonly [ { name : "lender" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "renegotiationId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "RevokeDelegate" ; inputs : readonly [ { name : "delegate" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "collection" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "tokenId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "_rights" ; type : "bytes32" ; indexed : false ; internalType : "bytes32" ; } ] ; anonymous : false ; } , { type : "event" ; name : "TransferOwnerRequested" ; inputs : readonly [ { name : "newOwner" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "WhitelistedCallbackContractAdded" ; inputs : readonly [ { name : "contractAdded" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "WhitelistedCallbackContractRemoved" ; inputs : readonly [ { name : "contractRemoved" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "error" ; name : "AddressZeroError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "CancelledOrExecutedOfferError" ; inputs : readonly [ { name : "_lender" ; type : "address" ; internalType : "address" ; } , { name : "_offerId" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "CollectionNotWhitelistedError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "CurrencyNotWhitelistedError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "ECDSAInvalidSignature" ; inputs : readonly [ ] ; } , { type : "error" ; name : "ECDSAInvalidSignatureLength" ; inputs : readonly [ { name : "length" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "ECDSAInvalidSignatureS" ; inputs : readonly [ { name : "s" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; } , { type : "error" ; name : "ExpiredOfferError" ; inputs : readonly [ { name : "_expirationTime" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "InvalidAddressesError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidAmountError" ; inputs : readonly [ { name : "_amount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_principalAmount" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "InvalidBorrowerError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidCallbackError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidCallerError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidCollateralError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidCollateralIdError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidDurationError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidInputError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidLoanError" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "InvalidLockPeriodError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidMethodError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidRenegotiationOfferError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidSignatureError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidTrancheError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "LenderRefinanceDisabledError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "LoanExpiredError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "LoanLockedError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "LoanNotDueError" ; inputs : readonly [ { name : "_expirationTime" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "MaxCapacityExceededError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "MulticallFailed" ; inputs : readonly [ { name : "i" ; type : "uint256" ; internalType : "uint256" ; } , { name : "returndata" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { type : "error" ; name : "NFTNotReturnedError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "NotStrictlyImprovedError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "TooEarlyError" ; inputs : readonly [ { name : "_pendingProtocolFeeSetTime" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "TooManyTranchesError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "TooSoonError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "TrancheCannotBeRefinancedError" ; inputs : readonly [ { name : "minTimestamp" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "ZeroInterestError" ; inputs : readonly [ ] ; } ]
address
address : ` 0x ${ string } `
contract
contract : GetContractReturnType < readonly [ { inputs : readonly [ { internalType : "address" ; name : "loanLiquidator" ; type : "address" ; } , { components : readonly [ { internalType : "address" ; name : "recipient" ; type : "address" ; } , { internalType : "uint256" ; name : "fraction" ; type : "uint256" ; } ] ; internalType : "struct WithProtocolFee.ProtocolFee" ; name : "protocolFee" ; type : "tuple" ; } , { internalType : "address" ; name : "currencyManager" ; type : "address" ; } , { internalType : "address" ; name : "collectionManager" ; type : "address" ; } , { internalType : "uint256" ; name : "maxTranches" ; type : "uint256" ; } , { internalType : "uint256" ; name : "minLockPeriod" ; type : "uint256" ; } , { internalType : "address" ; name : "delegateRegistry" ; type : "address" ; } , { internalType : "address" ; name : "loanManagerRegistry" ; type : "address" ; } , { internalType : "address" ; name : "flashActionContract" ; type : "address" ; } , { internalType : "uint256" ; name : "minWaitTime" ; type : "uint256" ; } ] ; stateMutability : "nonpayable" ; type : "constructor" ; } , { inputs : readonly [ ] ; name : "DOMAIN_SEPARATOR" ; outputs : readonly [ { internalType : "bytes32" ; name : "" ; type : "bytes32" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "FEE_UPDATE_NOTICE" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "INITIAL_DOMAIN_SEPARATOR" ; outputs : readonly [ { internalType : "bytes32" ; name : "" ; type : "bytes32" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "MAX_AUCTION_DURATION" ; outputs : readonly [ { internalType : "uint48" ; name : "" ; type : "uint48" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "MIN_AUCTION_DURATION" ; outputs : readonly [ { internalType : "uint48" ; name : "" ; type : "uint48" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "MIN_BID_LIQUIDATION" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "MIN_WAIT_TIME" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "VERSION" ; outputs : readonly [ { internalType : "bytes" ; name : "" ; type : "bytes" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ { components : readonly [ { internalType : "uint256" ; name : "renegotiationId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "fee" ; type : "uint256" ; } , { internalType : "uint256[]" ; name : "trancheIndex" ; type : "uint256[]" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } , { internalType : "uint256" ; name : "expirationTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.RenegotiationOffer" ; name : "_renegotiationOffer" ; type : "tuple" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "_loan" ; type : "tuple" ; } , { internalType : "bytes" ; name : "_renegotiationOfferSignature" ; type : "bytes" ; } ] ; name : "addNewTranche" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "" ; type : "tuple" ; } ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "_contract" ; type : "address" ; } ] ; name : "addWhitelistedCallbackContract" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_minOfferId" ; type : "uint256" ; } ] ; name : "cancelAllOffers" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_offerId" ; type : "uint256" ; } ] ; name : "cancelOffer" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_renegotiationId" ; type : "uint256" ; } ] ; name : "cancelRenegotiationOffer" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_loanId" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "loan" ; type : "tuple" ; } , { internalType : "address" ; name : "_delegate" ; type : "address" ; } , { internalType : "bytes32" ; name : "_rights" ; type : "bytes32" ; } , { internalType : "bool" ; name : "_value" ; type : "bool" ; } ] ; name : "delegate" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { components : readonly [ { components : readonly [ { components : readonly [ { components : readonly [ { internalType : "uint256" ; name : "offerId" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "fee" ; type : "uint256" ; } , { internalType : "uint256" ; name : "capacity" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } , { internalType : "uint256" ; name : "expirationTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { internalType : "uint256" ; name : "maxSeniorRepayment" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "validator" ; type : "address" ; } , { internalType : "bytes" ; name : "arguments" ; type : "bytes" ; } ] ; internalType : "struct IBaseLoan.OfferValidator[]" ; name : "validators" ; type : "tuple[]" ; } ] ; internalType : "struct IMultiSourceLoan.LoanOffer" ; name : "offer" ; type : "tuple" ; } , { internalType : "uint256" ; name : "amount" ; type : "uint256" ; } , { internalType : "bytes" ; name : "lenderOfferSignature" ; type : "bytes" ; } ] ; internalType : "struct IMultiSourceLoan.OfferExecution[]" ; name : "offerExecution" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "tokenId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { internalType : "uint256" ; name : "expirationTime" ; type : "uint256" ; } , { internalType : "address" ; name : "principalReceiver" ; type : "address" ; } , { internalType : "bytes" ; name : "callbackData" ; type : "bytes" ; } ] ; internalType : "struct IMultiSourceLoan.ExecutionData" ; name : "executionData" ; type : "tuple" ; } , { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "bytes" ; name : "borrowerOfferSignature" ; type : "bytes" ; } ] ; internalType : "struct IMultiSourceLoan.LoanExecutionData" ; name : "_loanExecutionData" ; type : "tuple" ; } ] ; name : "emitLoan" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "" ; type : "tuple" ; } ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_loanId" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "_loan" ; type : "tuple" ; } , { internalType : "address" ; name : "_target" ; type : "address" ; } , { internalType : "bytes" ; name : "_data" ; type : "bytes" ; } ] ; name : "executeFlashAction" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getCollectionManager" ; outputs : readonly [ { internalType : "address" ; name : "" ; type : "address" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getCurrencyManager" ; outputs : readonly [ { internalType : "address" ; name : "" ; type : "address" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getDelegateRegistry" ; outputs : readonly [ { internalType : "address" ; name : "" ; type : "address" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getFlashActionContract" ; outputs : readonly [ { internalType : "address" ; name : "" ; type : "address" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getLiquidationAuctionDuration" ; outputs : readonly [ { internalType : "uint48" ; name : "" ; type : "uint48" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getLiquidator" ; outputs : readonly [ { internalType : "address" ; name : "" ; type : "address" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_loanId" ; type : "uint256" ; } ] ; name : "getLoanHash" ; outputs : readonly [ { internalType : "bytes32" ; name : "" ; type : "bytes32" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getLoanManagerRegistry" ; outputs : readonly [ { internalType : "contract ILoanManagerRegistry" ; name : "" ; type : "address" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getMaxTranches" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getMinImprovementApr" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getMinLockPeriod" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getPendingProtocolFee" ; outputs : readonly [ { components : readonly [ { internalType : "address" ; name : "recipient" ; type : "address" ; } , { internalType : "uint256" ; name : "fraction" ; type : "uint256" ; } ] ; internalType : "struct WithProtocolFee.ProtocolFee" ; name : "" ; type : "tuple" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getPendingProtocolFeeSetTime" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getProtocolFee" ; outputs : readonly [ { components : readonly [ { internalType : "address" ; name : "recipient" ; type : "address" ; } , { internalType : "uint256" ; name : "fraction" ; type : "uint256" ; } ] ; internalType : "struct WithProtocolFee.ProtocolFee" ; name : "" ; type : "tuple" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getTotalLoansIssued" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "_lender" ; type : "address" ; } , { internalType : "uint256" ; name : "_offerId" ; type : "uint256" ; } ] ; name : "getUsedCapacity" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "user" ; type : "address" ; } , { internalType : "uint256" ; name : "offerId" ; type : "uint256" ; } ] ; name : "isOfferCancelled" ; outputs : readonly [ { internalType : "bool" ; name : "notActive" ; type : "bool" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "user" ; type : "address" ; } , { internalType : "uint256" ; name : "renegotiationIf" ; type : "uint256" ; } ] ; name : "isRenegotiationOfferCancelled" ; outputs : readonly [ { internalType : "bool" ; name : "notActive" ; type : "bool" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "_contract" ; type : "address" ; } ] ; name : "isWhitelistedCallbackContract" ; outputs : readonly [ { internalType : "bool" ; name : "" ; type : "bool" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_loanId" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "_loan" ; type : "tuple" ; } ] ; name : "liquidateLoan" ; outputs : readonly [ { internalType : "bytes" ; name : "" ; type : "bytes" ; } ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_loanId" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "_loan" ; type : "tuple" ; } ] ; name : "loanLiquidated" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "user" ; type : "address" ; } ] ; name : "minOfferId" ; outputs : readonly [ { internalType : "uint256" ; name : "minOfferId" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ { internalType : "bytes[]" ; name : "data" ; type : "bytes[]" ; } ] ; name : "multicall" ; outputs : readonly [ { internalType : "bytes[]" ; name : "results" ; type : "bytes[]" ; } ] ; stateMutability : "payable" ; type : "function" ; } , { inputs : readonly [ ] ; name : "name" ; outputs : readonly [ { internalType : "string" ; name : "" ; type : "string" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "" ; type : "address" ; } , { internalType : "address" ; name : "" ; type : "address" ; } , { internalType : "uint256" ; name : "" ; type : "uint256" ; } , { internalType : "bytes" ; name : "" ; type : "bytes" ; } ] ; name : "onERC721Received" ; outputs : readonly [ { internalType : "bytes4" ; name : "" ; type : "bytes4" ; } ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ ] ; name : "owner" ; outputs : readonly [ { internalType : "address" ; name : "" ; type : "address" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "pendingOwner" ; outputs : readonly [ { internalType : "address" ; name : "" ; type : "address" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "pendingOwnerTime" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_loanId" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "_loan" ; type : "tuple" ; } , { components : readonly [ { components : readonly [ { components : readonly [ { components : readonly [ { internalType : "uint256" ; name : "offerId" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "fee" ; type : "uint256" ; } , { internalType : "uint256" ; name : "capacity" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } , { internalType : "uint256" ; name : "expirationTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { internalType : "uint256" ; name : "maxSeniorRepayment" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "validator" ; type : "address" ; } , { internalType : "bytes" ; name : "arguments" ; type : "bytes" ; } ] ; internalType : "struct IBaseLoan.OfferValidator[]" ; name : "validators" ; type : "tuple[]" ; } ] ; internalType : "struct IMultiSourceLoan.LoanOffer" ; name : "offer" ; type : "tuple" ; } , { internalType : "uint256" ; name : "amount" ; type : "uint256" ; } , { internalType : "bytes" ; name : "lenderOfferSignature" ; type : "bytes" ; } ] ; internalType : "struct IMultiSourceLoan.OfferExecution[]" ; name : "offerExecution" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "tokenId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { internalType : "uint256" ; name : "expirationTime" ; type : "uint256" ; } , { internalType : "address" ; name : "principalReceiver" ; type : "address" ; } , { internalType : "bytes" ; name : "callbackData" ; type : "bytes" ; } ] ; internalType : "struct IMultiSourceLoan.ExecutionData" ; name : "executionData" ; type : "tuple" ; } , { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "bytes" ; name : "borrowerOfferSignature" ; type : "bytes" ; } ] ; internalType : "struct IMultiSourceLoan.LoanExecutionData" ; name : "_loanExecutionData" ; type : "tuple" ; } ] ; name : "refinanceFromLoanExecutionData" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "" ; type : "tuple" ; } ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { components : readonly [ { internalType : "uint256" ; name : "renegotiationId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "fee" ; type : "uint256" ; } , { internalType : "uint256[]" ; name : "trancheIndex" ; type : "uint256[]" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } , { internalType : "uint256" ; name : "expirationTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.RenegotiationOffer" ; name : "_renegotiationOffer" ; type : "tuple" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "_loan" ; type : "tuple" ; } , { internalType : "bytes" ; name : "_renegotiationOfferSignature" ; type : "bytes" ; } ] ; name : "refinanceFull" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "" ; type : "tuple" ; } ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { components : readonly [ { internalType : "uint256" ; name : "renegotiationId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "fee" ; type : "uint256" ; } , { internalType : "uint256[]" ; name : "trancheIndex" ; type : "uint256[]" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } , { internalType : "uint256" ; name : "expirationTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.RenegotiationOffer" ; name : "_renegotiationOffer" ; type : "tuple" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "_loan" ; type : "tuple" ; } ] ; name : "refinancePartial" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "" ; type : "tuple" ; } ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "_contract" ; type : "address" ; } ] ; name : "removeWhitelistedCallbackContract" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { components : readonly [ { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "bytes" ; name : "callbackData" ; type : "bytes" ; } , { internalType : "bool" ; name : "shouldDelegate" ; type : "bool" ; } ] ; internalType : "struct IMultiSourceLoan.SignableRepaymentData" ; name : "data" ; type : "tuple" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "loan" ; type : "tuple" ; } , { internalType : "bytes" ; name : "borrowerSignature" ; type : "bytes" ; } ] ; internalType : "struct IMultiSourceLoan.LoanRepaymentData" ; name : "_repaymentData" ; type : "tuple" ; } ] ; name : "repayLoan" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "_newOwner" ; type : "address" ; } ] ; name : "requestTransferOwner" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "_delegate" ; type : "address" ; } , { internalType : "address" ; name : "_collection" ; type : "address" ; } , { internalType : "uint256" ; name : "_tokenId" ; type : "uint256" ; } , { internalType : "bytes32" ; name : "_rights" ; type : "bytes32" ; } ] ; name : "revokeDelegate" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "_newFlashActionContract" ; type : "address" ; } ] ; name : "setFlashActionContract" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "__minLockPeriod" ; type : "uint256" ; } ] ; name : "setMinLockPeriod" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ ] ; name : "setProtocolFee" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ ] ; name : "transferOwnership" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "newOwner" ; type : "address" ; } ] ; name : "transferOwnership" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint48" ; name : "_newDuration" ; type : "uint48" ; } ] ; name : "updateLiquidationAuctionDuration" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "__loanLiquidator" ; type : "address" ; } ] ; name : "updateLiquidationContract" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_newMinimum" ; type : "uint256" ; } ] ; name : "updateMinImprovementApr" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { components : readonly [ { internalType : "address" ; name : "recipient" ; type : "address" ; } , { internalType : "uint256" ; name : "fraction" ; type : "uint256" ; } ] ; internalType : "struct WithProtocolFee.ProtocolFee" ; name : "_newProtocolFee" ; type : "tuple" ; } ] ; name : "updateProtocolFee" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "address" ; name : "lender" ; type : "address" ; } , { indexed : false ; internalType : "uint256" ; name : "minOfferId" ; type : "uint256" ; } ] ; name : "AllOffersCancelled" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { indexed : false ; internalType : "address" ; name : "delegate" ; type : "address" ; } , { indexed : false ; internalType : "bytes32" ; name : "_rights" ; type : "bytes32" ; } , { indexed : false ; internalType : "bool" ; name : "value" ; type : "bool" ; } ] ; name : "Delegated" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "address" ; name : "newFlashActionContract" ; type : "address" ; } ] ; name : "FlashActionContractUpdated" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { indexed : false ; internalType : "address" ; name : "target" ; type : "address" ; } , { indexed : false ; internalType : "bytes" ; name : "data" ; type : "bytes" ; } ] ; name : "FlashActionExecuted" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "newDuration" ; type : "uint256" ; } ] ; name : "LiquidationAuctionDurationUpdated" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "address" ; name : "liquidator" ; type : "address" ; } ] ; name : "LiquidationContractUpdated" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { indexed : false ; internalType : "uint256[]" ; name : "offerId" ; type : "uint256[]" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; indexed : false ; internalType : "struct IMultiSourceLoan.Loan" ; name : "loan" ; type : "tuple" ; } , { indexed : false ; internalType : "uint256" ; name : "fee" ; type : "uint256" ; } ] ; name : "LoanEmitted" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } ] ; name : "LoanForeclosed" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } ] ; name : "LoanLiquidated" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "renegotiationId" ; type : "uint256" ; } , { indexed : false ; internalType : "uint256" ; name : "oldLoanId" ; type : "uint256" ; } , { indexed : false ; internalType : "uint256" ; name : "newLoanId" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; indexed : false ; internalType : "struct IMultiSourceLoan.Loan" ; name : "loan" ; type : "tuple" ; } , { indexed : false ; internalType : "uint256" ; name : "fee" ; type : "uint256" ; } ] ; name : "LoanRefinanced" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { indexed : false ; internalType : "uint256" ; name : "newLoanId" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; indexed : false ; internalType : "struct IMultiSourceLoan.Loan" ; name : "loan" ; type : "tuple" ; } , { indexed : false ; internalType : "uint256[]" ; name : "offerIds" ; type : "uint256[]" ; } , { indexed : false ; internalType : "uint256" ; name : "totalFee" ; type : "uint256" ; } ] ; name : "LoanRefinancedFromNewOffers" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { indexed : false ; internalType : "uint256" ; name : "totalRepayment" ; type : "uint256" ; } , { indexed : false ; internalType : "uint256" ; name : "fee" ; type : "uint256" ; } ] ; name : "LoanRepaid" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { indexed : false ; internalType : "address" ; name : "liquidator" ; type : "address" ; } ] ; name : "LoanSentToLiquidator" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "_minimum" ; type : "uint256" ; } ] ; name : "MinAprImprovementUpdated" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "newMinBid" ; type : "uint256" ; } ] ; name : "MinBidLiquidationUpdated" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "minLockPeriod" ; type : "uint256" ; } ] ; name : "MinLockPeriodUpdated" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "address" ; name : "lender" ; type : "address" ; } , { indexed : false ; internalType : "uint256" ; name : "offerId" ; type : "uint256" ; } ] ; name : "OfferCancelled" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : true ; internalType : "address" ; name : "user" ; type : "address" ; } , { indexed : true ; internalType : "address" ; name : "newOwner" ; type : "address" ; } ] ; name : "OwnershipTransferred" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { components : readonly [ { internalType : "address" ; name : "recipient" ; type : "address" ; } , { internalType : "uint256" ; name : "fraction" ; type : "uint256" ; } ] ; indexed : false ; internalType : "struct WithProtocolFee.ProtocolFee" ; name : "fee" ; type : "tuple" ; } ] ; name : "ProtocolFeePendingUpdate" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { components : readonly [ { internalType : "address" ; name : "recipient" ; type : "address" ; } , { internalType : "uint256" ; name : "fraction" ; type : "uint256" ; } ] ; indexed : false ; internalType : "struct WithProtocolFee.ProtocolFee" ; name : "fee" ; type : "tuple" ; } ] ; name : "ProtocolFeeUpdated" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "address" ; name : "lender" ; type : "address" ; } , { indexed : false ; internalType : "uint256" ; name : "renegotiationId" ; type : "uint256" ; } ] ; name : "RenegotiationOfferCancelled" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "address" ; name : "delegate" ; type : "address" ; } , { indexed : false ; internalType : "address" ; name : "collection" ; type : "address" ; } , { indexed : false ; internalType : "uint256" ; name : "tokenId" ; type : "uint256" ; } , { indexed : false ; internalType : "bytes32" ; name : "_rights" ; type : "bytes32" ; } ] ; name : "RevokeDelegate" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "address" ; name : "newOwner" ; type : "address" ; } ] ; name : "TransferOwnerRequested" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "address" ; name : "contractAdded" ; type : "address" ; } ] ; name : "WhitelistedCallbackContractAdded" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "address" ; name : "contractRemoved" ; type : "address" ; } ] ; name : "WhitelistedCallbackContractRemoved" ; type : "event" ; } , { inputs : readonly [ ] ; name : "AddressZeroError" ; type : "error" ; } , { inputs : readonly [ { internalType : "address" ; name : "_lender" ; type : "address" ; } , { internalType : "uint256" ; name : "_offerId" ; type : "uint256" ; } ] ; name : "CancelledOrExecutedOfferError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "CollectionNotWhitelistedError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "CurrencyNotWhitelistedError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "ECDSAInvalidSignature" ; type : "error" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "length" ; type : "uint256" ; } ] ; name : "ECDSAInvalidSignatureLength" ; type : "error" ; } , { inputs : readonly [ { internalType : "bytes32" ; name : "s" ; type : "bytes32" ; } ] ; name : "ECDSAInvalidSignatureS" ; type : "error" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_expirationTime" ; type : "uint256" ; } ] ; name : "ExpiredOfferError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidAddressesError" ; type : "error" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_amount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "_principalAmount" ; type : "uint256" ; } ] ; name : "InvalidAmountError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidCallbackError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidCallerError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidCollateralIdError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidDurationError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidInputError" ; type : "error" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_loanId" ; type : "uint256" ; } ] ; name : "InvalidLoanError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidMethodError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidParametersError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidRenegotiationOfferError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidSignatureError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidTrancheError" ; type : "error" ; } , { inputs : readonly [ { internalType : "address" ; name : "_liquidator" ; type : "address" ; } ] ; name : "LiquidatorOnlyError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "LoanExpiredError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "LoanLockedError" ; type : "error" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_expirationTime" ; type : "uint256" ; } ] ; name : "LoanNotDueError" ; type : "error" ; } , { inputs : readonly [ { internalType : "address" ; name : "_lender" ; type : "address" ; } , { internalType : "uint256" ; name : "_newMinOfferId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "_minOfferId" ; type : "uint256" ; } ] ; name : "LowOfferIdError" ; type : "error" ; } , { inputs : readonly [ { internalType : "address" ; name : "_lender" ; type : "address" ; } , { internalType : "uint256" ; name : "_newMinRenegotiationOfferId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "_minOfferId" ; type : "uint256" ; } ] ; name : "LowRenegotiationOfferIdError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "MaxCapacityExceededError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "MismatchError" ; type : "error" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "i" ; type : "uint256" ; } , { internalType : "bytes" ; name : "returndata" ; type : "bytes" ; } ] ; name : "MulticallFailed" ; type : "error" ; } , { inputs : readonly [ ] ; name : "NFTNotReturnedError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "NotStrictlyImprovedError" ; type : "error" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_pendingProtocolFeeSetTime" ; type : "uint256" ; } ] ; name : "TooEarlyError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "TooManyTranchesError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "TooSoonError" ; type : "error" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "minTimestamp" ; type : "uint256" ; } ] ; name : "TrancheCannotBeRefinancedError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "ZeroInterestError" ; type : "error" ; } ] | readonly [ { type : "constructor" ; inputs : readonly [ { name : "loanLiquidator" ; type : "address" ; internalType : "address" ; } , { name : "protocolFee" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "currencyManager" ; type : "address" ; internalType : "address" ; } , { name : "collectionManager" ; type : "address" ; internalType : "address" ; } , { name : "maxTranches" ; type : "uint256" ; internalType : "uint256" ; } , { name : "minLockPeriod" ; type : "uint256" ; internalType : "uint256" ; } , { name : "delegateRegistry" ; type : "address" ; internalType : "address" ; } , { name : "loanManagerRegistry" ; type : "address" ; internalType : "address" ; } , { name : "flashActionContract" ; type : "address" ; internalType : "address" ; } , { name : "minWaitTime" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "DOMAIN_SEPARATOR" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "FEE_UPDATE_NOTICE" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "INITIAL_DOMAIN_SEPARATOR" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "MAX_AUCTION_DURATION" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint48" ; internalType : "uint48" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "MIN_AUCTION_DURATION" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint48" ; internalType : "uint48" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "MIN_BID_LIQUIDATION" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "MIN_WAIT_TIME" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "VERSION" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes" ; internalType : "bytes" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "addNewTranche" ; inputs : readonly [ { name : "_renegotiationOffer" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.RenegotiationOffer" ; components : readonly [ { name : "renegotiationId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "trancheIndex" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_renegotiationOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "addWhitelistedCallbackContract" ; inputs : readonly [ { name : "_contract" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "cancelOffer" ; inputs : readonly [ { name : "_offerId" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "cancelRenegotiationOffer" ; inputs : readonly [ { name : "_renegotiationId" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "delegate" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_delegate" ; type : "address" ; internalType : "address" ; } , { name : "_rights" ; type : "bytes32" ; internalType : "bytes32" ; } , { name : "_value" ; type : "bool" ; internalType : "bool" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "emitLoan" ; inputs : readonly [ { name : "_loanExecutionData" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.LoanExecutionData" ; components : readonly [ { name : "executionData" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.ExecutionData" ; components : readonly [ { name : "offerExecution" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.OfferExecution[]" ; components : readonly [ { name : "offer" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.LoanOffer" ; components : readonly [ { name : "offerId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "capacity" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "maxSeniorRepayment" ; type : "uint256" ; internalType : "uint256" ; } , { name : "validators" ; type : "tuple[]" ; internalType : "struct IBaseLoan.OfferValidator[]" ; components : readonly [ { name : "validator" ; type : "address" ; internalType : "address" ; } , { name : "arguments" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; } , { name : "amount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "tokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalReceiver" ; type : "address" ; internalType : "address" ; } , { name : "callbackData" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "borrowerOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "executeFlashAction" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_target" ; type : "address" ; internalType : "address" ; } , { name : "_data" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "getCollectionManager" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getCurrencyManager" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getDelegateRegistry" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getFlashActionContract" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getLiquidationAuctionDuration" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint48" ; internalType : "uint48" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getLiquidator" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getLoanHash" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getLoanManagerRegistry" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "contract ILoanManagerRegistry" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getMaxTranches" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getMinImprovementApr" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getMinLockPeriod" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getPendingProtocolFee" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getPendingProtocolFeeSetTime" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getProtocolFee" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getTotalLoansIssued" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getUsedCapacity" ; inputs : readonly [ { name : "_lender" ; type : "address" ; internalType : "address" ; } , { name : "_offerId" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "isOfferCancelled" ; inputs : readonly [ { name : "user" ; type : "address" ; internalType : "address" ; } , { name : "offerId" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ { name : "notActive" ; type : "bool" ; internalType : "bool" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "isRenegotiationOfferCancelled" ; inputs : readonly [ { name : "user" ; type : "address" ; internalType : "address" ; } , { name : "renegotiationIf" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ { name : "notActive" ; type : "bool" ; internalType : "bool" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "isWhitelistedCallbackContract" ; inputs : readonly [ { name : "_contract" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ { name : "" ; type : "bool" ; internalType : "bool" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "liquidateLoan" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; outputs : readonly [ { name : "" ; type : "bytes" ; internalType : "bytes" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "loanLiquidated" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "multicall" ; inputs : readonly [ { name : "data" ; type : "bytes[]" ; internalType : "bytes[]" ; } ] ; outputs : readonly [ { name : "results" ; type : "bytes[]" ; internalType : "bytes[]" ; } ] ; stateMutability : "payable" ; } , { type : "function" ; name : "name" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "string" ; internalType : "string" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "onERC721Received" ; inputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } , { name : "" ; type : "address" ; internalType : "address" ; } , { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "bytes4" ; internalType : "bytes4" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "owner" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "pendingOwner" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "pendingOwnerTime" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "refinanceFromLoanExecutionData" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_loanExecutionData" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.LoanExecutionData" ; components : readonly [ { name : "executionData" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.ExecutionData" ; components : readonly [ { name : "offerExecution" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.OfferExecution[]" ; components : readonly [ { name : "offer" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.LoanOffer" ; components : readonly [ { name : "offerId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "capacity" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "maxSeniorRepayment" ; type : "uint256" ; internalType : "uint256" ; } , { name : "validators" ; type : "tuple[]" ; internalType : "struct IBaseLoan.OfferValidator[]" ; components : readonly [ { name : "validator" ; type : "address" ; internalType : "address" ; } , { name : "arguments" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; } , { name : "amount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "tokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalReceiver" ; type : "address" ; internalType : "address" ; } , { name : "callbackData" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "borrowerOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "refinanceFull" ; inputs : readonly [ { name : "_renegotiationOffer" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.RenegotiationOffer" ; components : readonly [ { name : "renegotiationId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "trancheIndex" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_renegotiationOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "refinancePartial" ; inputs : readonly [ { name : "_renegotiationOffer" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.RenegotiationOffer" ; components : readonly [ { name : "renegotiationId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "trancheIndex" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "removeWhitelistedCallbackContract" ; inputs : readonly [ { name : "_contract" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "repayLoan" ; inputs : readonly [ { name : "_repaymentData" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.LoanRepaymentData" ; components : readonly [ { name : "data" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.SignableRepaymentData" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "callbackData" ; type : "bytes" ; internalType : "bytes" ; } , { name : "shouldDelegate" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "borrowerSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "requestTransferOwner" ; inputs : readonly [ { name : "_newOwner" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "revokeDelegate" ; inputs : readonly [ { name : "_delegate" ; type : "address" ; internalType : "address" ; } , { name : "_collection" ; type : "address" ; internalType : "address" ; } , { name : "_tokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_rights" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "setFlashActionContract" ; inputs : readonly [ { name : "_newFlashActionContract" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "setMinLockPeriod" ; inputs : readonly [ { name : "__minLockPeriod" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "setProtocolFee" ; inputs : readonly [ ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "transferOwnership" ; inputs : readonly [ ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "transferOwnership" ; inputs : readonly [ { name : "newOwner" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "updateLiquidationAuctionDuration" ; inputs : readonly [ { name : "_newDuration" ; type : "uint48" ; internalType : "uint48" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "updateLiquidationContract" ; inputs : readonly [ { name : "__loanLiquidator" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "updateMinImprovementApr" ; inputs : readonly [ { name : "_newMinimum" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "updateProtocolFee" ; inputs : readonly [ { name : "_newProtocolFee" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "event" ; name : "Delegated" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "delegate" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "_rights" ; type : "bytes32" ; indexed : false ; internalType : "bytes32" ; } , { name : "value" ; type : "bool" ; indexed : false ; internalType : "bool" ; } ] ; anonymous : false ; } , { type : "event" ; name : "FlashActionContractUpdated" ; inputs : readonly [ { name : "newFlashActionContract" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "FlashActionExecuted" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "target" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "data" ; type : "bytes" ; indexed : false ; internalType : "bytes" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LiquidationAuctionDurationUpdated" ; inputs : readonly [ { name : "newDuration" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LiquidationContractUpdated" ; inputs : readonly [ { name : "liquidator" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanEmitted" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "offerId" ; type : "uint256[]" ; indexed : false ; internalType : "uint256[]" ; } , { name : "loan" ; type : "tuple" ; indexed : false ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "fee" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanForeclosed" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanLiquidated" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanRefinanced" ; inputs : readonly [ { name : "renegotiationId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "oldLoanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "newLoanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "loan" ; type : "tuple" ; indexed : false ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "fee" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanRefinancedFromNewOffers" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "newLoanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "loan" ; type : "tuple" ; indexed : false ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "offerIds" ; type : "uint256[]" ; indexed : false ; internalType : "uint256[]" ; } , { name : "totalFee" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanRepaid" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "totalRepayment" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "fee" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanSentToLiquidator" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "liquidator" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "MinAprImprovementUpdated" ; inputs : readonly [ { name : "_minimum" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "MinBidLiquidationUpdated" ; inputs : readonly [ { name : "newMinBid" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "MinLockPeriodUpdated" ; inputs : readonly [ { name : "minLockPeriod" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "OfferCancelled" ; inputs : readonly [ { name : "lender" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "offerId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "OwnershipTransferred" ; inputs : readonly [ { name : "user" ; type : "address" ; indexed : true ; internalType : "address" ; } , { name : "newOwner" ; type : "address" ; indexed : true ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "ProtocolFeePendingUpdate" ; inputs : readonly [ { name : "fee" ; type : "tuple" ; indexed : false ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; anonymous : false ; } , { type : "event" ; name : "ProtocolFeeUpdated" ; inputs : readonly [ { name : "fee" ; type : "tuple" ; indexed : false ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; anonymous : false ; } , { type : "event" ; name : "RenegotiationOfferCancelled" ; inputs : readonly [ { name : "lender" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "renegotiationId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "RevokeDelegate" ; inputs : readonly [ { name : "delegate" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "collection" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "tokenId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "_rights" ; type : "bytes32" ; indexed : false ; internalType : "bytes32" ; } ] ; anonymous : false ; } , { type : "event" ; name : "TransferOwnerRequested" ; inputs : readonly [ { name : "newOwner" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "WhitelistedCallbackContractAdded" ; inputs : readonly [ { name : "contractAdded" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "WhitelistedCallbackContractRemoved" ; inputs : readonly [ { name : "contractRemoved" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "error" ; name : "AddressZeroError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "CancelledOrExecutedOfferError" ; inputs : readonly [ { name : "_lender" ; type : "address" ; internalType : "address" ; } , { name : "_offerId" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "CollectionNotWhitelistedError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "CurrencyNotWhitelistedError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "ECDSAInvalidSignature" ; inputs : readonly [ ] ; } , { type : "error" ; name : "ECDSAInvalidSignatureLength" ; inputs : readonly [ { name : "length" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "ECDSAInvalidSignatureS" ; inputs : readonly [ { name : "s" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; } , { type : "error" ; name : "ExpiredOfferError" ; inputs : readonly [ { name : "_expirationTime" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "InvalidAddressesError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidAmountError" ; inputs : readonly [ { name : "_amount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_principalAmount" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "InvalidCallbackError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidCallerError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidCollateralError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidCollateralIdError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidDurationError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidInputError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidLoanError" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "InvalidMethodError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidParametersError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidRenegotiationOfferError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidSignatureError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidTrancheError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "LiquidatorOnlyError" ; inputs : readonly [ { name : "_liquidator" ; type : "address" ; internalType : "address" ; } ] ; } , { type : "error" ; name : "LoanExpiredError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "LoanLockedError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "LoanNotDueError" ; inputs : readonly [ { name : "_expirationTime" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "MaxCapacityExceededError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "MismatchError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "MulticallFailed" ; inputs : readonly [ { name : "i" ; type : "uint256" ; internalType : "uint256" ; } , { name : "returndata" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { type : "error" ; name : "NFTNotReturnedError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "NotStrictlyImprovedError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "TooEarlyError" ; inputs : readonly [ { name : "_pendingProtocolFeeSetTime" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "TooManyTranchesError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "TooSoonError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "TrancheCannotBeRefinancedError" ; inputs : readonly [ { name : "minTimestamp" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "ZeroInterestError" ; inputs : readonly [ ] ; } ] | readonly [ { type : "constructor" ; inputs : readonly [ { name : "loanLiquidator" ; type : "address" ; internalType : "address" ; } , { name : "protocolFee" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "currencyManager" ; type : "address" ; internalType : "address" ; } , { name : "collectionManager" ; type : "address" ; internalType : "address" ; } , { name : "maxTranches" ; type : "uint256" ; internalType : "uint256" ; } , { name : "minLockPeriod" ; type : "uint256" ; internalType : "uint256" ; } , { name : "delegateRegistry" ; type : "address" ; internalType : "address" ; } , { name : "loanManagerRegistry" ; type : "address" ; internalType : "address" ; } , { name : "flashActionContract" ; type : "address" ; internalType : "address" ; } , { name : "minWaitTime" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "DOMAIN_SEPARATOR" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "FEE_UPDATE_NOTICE" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "INITIAL_DOMAIN_SEPARATOR" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "MAX_AUCTION_DURATION" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint48" ; internalType : "uint48" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "MIN_AUCTION_DURATION" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint48" ; internalType : "uint48" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "MIN_BID_LIQUIDATION" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "MIN_WAIT_TIME" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "VERSION" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes" ; internalType : "bytes" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "addNewTranche" ; inputs : readonly [ { name : "_renegotiationOffer" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.RenegotiationOffer" ; components : readonly [ { name : "renegotiationId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "trancheIndex" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "_renegotiationOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "addWhitelistedCallbackContract" ; inputs : readonly [ { name : "_contract" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "cancelOffer" ; inputs : readonly [ { name : "_offerId" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "cancelRenegotiationOffer" ; inputs : readonly [ { name : "_renegotiationId" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "delegate" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "_delegate" ; type : "address" ; internalType : "address" ; } , { name : "_rights" ; type : "bytes32" ; internalType : "bytes32" ; } , { name : "_value" ; type : "bool" ; internalType : "bool" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "emitLoan" ; inputs : readonly [ { name : "_loanExecutionData" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.LoanExecutionData" ; components : readonly [ { name : "executionData" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.ExecutionData" ; components : readonly [ { name : "offerExecution" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.OfferExecution[]" ; components : readonly [ { name : "offer" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.LoanOffer" ; components : readonly [ { name : "offerId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "capacity" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "maxSeniorRepayment" ; type : "uint256" ; internalType : "uint256" ; } , { name : "validators" ; type : "tuple[]" ; internalType : "struct IBaseLoan.OfferValidator[]" ; components : readonly [ { name : "validator" ; type : "address" ; internalType : "address" ; } , { name : "arguments" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } , { name : "borrower" ; type : "address" ; internalType : "address" ; } ] ; } , { name : "amount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "tokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalReceiver" ; type : "address" ; internalType : "address" ; } , { name : "callbackData" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "borrowerOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "executeFlashAction" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "_target" ; type : "address" ; internalType : "address" ; } , { name : "_data" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "getCollectionManager" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getCurrencyManager" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getDelegateRegistry" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getFlashActionContract" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getLiquidationAuctionDuration" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint48" ; internalType : "uint48" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getLiquidator" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getLoanHash" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getLoanManagerRegistry" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "contract ILoanManagerRegistry" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getMaxTranches" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getMinImprovementApr" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getMinLockPeriod" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getPendingProtocolFee" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getPendingProtocolFeeSetTime" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getProtocolFee" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getTotalLoansIssued" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getUsedCapacity" ; inputs : readonly [ { name : "_lender" ; type : "address" ; internalType : "address" ; } , { name : "_offerId" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "isOfferCancelled" ; inputs : readonly [ { name : "user" ; type : "address" ; internalType : "address" ; } , { name : "offerId" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ { name : "notActive" ; type : "bool" ; internalType : "bool" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "isRenegotiationOfferCancelled" ; inputs : readonly [ { name : "user" ; type : "address" ; internalType : "address" ; } , { name : "renegotiationIf" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ { name : "notActive" ; type : "bool" ; internalType : "bool" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "isWhitelistedCallbackContract" ; inputs : readonly [ { name : "_contract" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ { name : "" ; type : "bool" ; internalType : "bool" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "liquidateLoan" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } ] ; outputs : readonly [ { name : "" ; type : "bytes" ; internalType : "bytes" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "multicall" ; inputs : readonly [ { name : "data" ; type : "bytes[]" ; internalType : "bytes[]" ; } ] ; outputs : readonly [ { name : "results" ; type : "bytes[]" ; internalType : "bytes[]" ; } ] ; stateMutability : "payable" ; } , { type : "function" ; name : "name" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "string" ; internalType : "string" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "onERC721Received" ; inputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } , { name : "" ; type : "address" ; internalType : "address" ; } , { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "bytes4" ; internalType : "bytes4" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "owner" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "pendingOwner" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "pendingOwnerTime" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "refinanceFromLoanExecutionData" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "_loanExecutionData" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.LoanExecutionData" ; components : readonly [ { name : "executionData" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.ExecutionData" ; components : readonly [ { name : "offerExecution" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.OfferExecution[]" ; components : readonly [ { name : "offer" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.LoanOffer" ; components : readonly [ { name : "offerId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "capacity" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "maxSeniorRepayment" ; type : "uint256" ; internalType : "uint256" ; } , { name : "validators" ; type : "tuple[]" ; internalType : "struct IBaseLoan.OfferValidator[]" ; components : readonly [ { name : "validator" ; type : "address" ; internalType : "address" ; } , { name : "arguments" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } , { name : "borrower" ; type : "address" ; internalType : "address" ; } ] ; } , { name : "amount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "tokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalReceiver" ; type : "address" ; internalType : "address" ; } , { name : "callbackData" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "borrowerOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "refinanceFull" ; inputs : readonly [ { name : "_renegotiationOffer" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.RenegotiationOffer" ; components : readonly [ { name : "renegotiationId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "trancheIndex" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "_renegotiationOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "refinancePartial" ; inputs : readonly [ { name : "_renegotiationOffer" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.RenegotiationOffer" ; components : readonly [ { name : "renegotiationId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "trancheIndex" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "removeWhitelistedCallbackContract" ; inputs : readonly [ { name : "_contract" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "repayLoan" ; inputs : readonly [ { name : "_repaymentData" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.LoanRepaymentData" ; components : readonly [ { name : "data" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.SignableRepaymentData" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "callbackData" ; type : "bytes" ; internalType : "bytes" ; } , { name : "shouldDelegate" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "borrowerSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "requestTransferOwner" ; inputs : readonly [ { name : "_newOwner" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "revokeDelegate" ; inputs : readonly [ { name : "_delegate" ; type : "address" ; internalType : "address" ; } , { name : "_collection" ; type : "address" ; internalType : "address" ; } , { name : "_tokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_rights" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "setFlashActionContract" ; inputs : readonly [ { name : "_newFlashActionContract" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "setMinLockPeriod" ; inputs : readonly [ { name : "__minLockPeriod" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "setProtocolFee" ; inputs : readonly [ ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "transferOwnership" ; inputs : readonly [ ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "updateLiquidationAuctionDuration" ; inputs : readonly [ { name : "_newDuration" ; type : "uint48" ; internalType : "uint48" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "updateLiquidationContract" ; inputs : readonly [ { name : "__loanLiquidator" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "updateMinImprovementApr" ; inputs : readonly [ { name : "_newMinimum" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "updateProtocolFee" ; inputs : readonly [ { name : "_newProtocolFee" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "event" ; name : "Delegated" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "delegate" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "_rights" ; type : "bytes32" ; indexed : false ; internalType : "bytes32" ; } , { name : "value" ; type : "bool" ; indexed : false ; internalType : "bool" ; } ] ; anonymous : false ; } , { type : "event" ; name : "FlashActionContractUpdated" ; inputs : readonly [ { name : "newFlashActionContract" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "FlashActionExecuted" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "target" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "data" ; type : "bytes" ; indexed : false ; internalType : "bytes" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LiquidationAuctionDurationUpdated" ; inputs : readonly [ { name : "newDuration" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LiquidationContractUpdated" ; inputs : readonly [ { name : "liquidator" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanEmitted" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "offerId" ; type : "uint256[]" ; indexed : false ; internalType : "uint256[]" ; } , { name : "loan" ; type : "tuple" ; indexed : false ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "fee" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanForeclosed" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanLiquidated" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "foreclosed" ; type : "bool" ; indexed : false ; internalType : "bool" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanRefinanced" ; inputs : readonly [ { name : "renegotiationId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "oldLoanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "newLoanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "loan" ; type : "tuple" ; indexed : false ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "fee" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanRefinancedFromNewOffers" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "newLoanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "loan" ; type : "tuple" ; indexed : false ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "offerIds" ; type : "uint256[]" ; indexed : false ; internalType : "uint256[]" ; } , { name : "totalFee" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanRepaid" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "totalRepayment" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "fee" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanSentToLiquidator" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "liquidator" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "MinAprImprovementUpdated" ; inputs : readonly [ { name : "_minimum" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "MinBidLiquidationUpdated" ; inputs : readonly [ { name : "newMinBid" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "MinLockPeriodUpdated" ; inputs : readonly [ { name : "minLockPeriod" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "OfferCancelled" ; inputs : readonly [ { name : "lender" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "offerId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "OwnershipTransferred" ; inputs : readonly [ { name : "user" ; type : "address" ; indexed : true ; internalType : "address" ; } , { name : "newOwner" ; type : "address" ; indexed : true ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "ProtocolFeePendingUpdate" ; inputs : readonly [ { name : "fee" ; type : "tuple" ; indexed : false ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; anonymous : false ; } , { type : "event" ; name : "ProtocolFeeUpdated" ; inputs : readonly [ { name : "fee" ; type : "tuple" ; indexed : false ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; anonymous : false ; } , { type : "event" ; name : "RenegotiationOfferCancelled" ; inputs : readonly [ { name : "lender" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "renegotiationId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "RevokeDelegate" ; inputs : readonly [ { name : "delegate" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "collection" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "tokenId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "_rights" ; type : "bytes32" ; indexed : false ; internalType : "bytes32" ; } ] ; anonymous : false ; } , { type : "event" ; name : "TransferOwnerRequested" ; inputs : readonly [ { name : "newOwner" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "WhitelistedCallbackContractAdded" ; inputs : readonly [ { name : "contractAdded" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "WhitelistedCallbackContractRemoved" ; inputs : readonly [ { name : "contractRemoved" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "error" ; name : "AddressZeroError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "CancelledOrExecutedOfferError" ; inputs : readonly [ { name : "_lender" ; type : "address" ; internalType : "address" ; } , { name : "_offerId" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "CollectionNotWhitelistedError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "CurrencyNotWhitelistedError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "ECDSAInvalidSignature" ; inputs : readonly [ ] ; } , { type : "error" ; name : "ECDSAInvalidSignatureLength" ; inputs : readonly [ { name : "length" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "ECDSAInvalidSignatureS" ; inputs : readonly [ { name : "s" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; } , { type : "error" ; name : "ExpiredOfferError" ; inputs : readonly [ { name : "_expirationTime" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "InvalidAddressesError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidAmountError" ; inputs : readonly [ { name : "_amount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_principalAmount" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "InvalidBorrowerError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidCallbackError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidCallerError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidCollateralError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidCollateralIdError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidDurationError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidInputError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidLoanError" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "InvalidLockPeriodError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidMethodError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidRenegotiationOfferError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidSignatureError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidTrancheError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "LenderRefinanceDisabledError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "LoanExpiredError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "LoanLockedError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "LoanNotDueError" ; inputs : readonly [ { name : "_expirationTime" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "MaxCapacityExceededError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "MulticallFailed" ; inputs : readonly [ { name : "i" ; type : "uint256" ; internalType : "uint256" ; } , { name : "returndata" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { type : "error" ; name : "NFTNotReturnedError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "NotStrictlyImprovedError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "TooEarlyError" ; inputs : readonly [ { name : "_pendingProtocolFeeSetTime" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "TooManyTranchesError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "TooSoonError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "TrancheCannotBeRefinancedError" ; inputs : readonly [ { name : "minTimestamp" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "ZeroInterestError" ; inputs : readonly [ ] ; } ] , {} | {} >
safe Contract Write
safe Contract Write : { transferOwnership : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > ) ; liquidateLoan : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > ) ; onERC721Received : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > ) ; cancelAllOffers : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > ) ; cancelOffer : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > ) ; cancelRenegotiationOffer : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > ) ; setProtocolFee : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > ) ; updateLiquidationAuctionDuration : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > ) ; updateLiquidationContract : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > ) ; updateProtocolFee : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > ) ; multicall : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > ) ; delegate : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > ) ; revokeDelegate : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > ) ; emitLoan : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > ) ; executeFlashAction : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > ) ; loanLiquidated : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > ) ; refinanceFull : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > ) ; refinancePartial : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > ) ; repayLoan : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > ) ; setFlashActionContract : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > ) ; setMinLockPeriod : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > ) ; addWhitelistedCallbackContract : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > ) ; removeWhitelistedCallbackContract : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > ) ; requestTransferOwner : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > ) ; updateMinImprovementApr : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > ) ; addNewTranche : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > ) ; refinanceFromLoanExecutionData : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > ) ; }
Type declaration
transfer Ownership : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > )
( args , options ? ) : Promise < ` 0x ${ string } ` >
Parameters
args : undefined | readonly [ ] | readonly [ ` 0x ${ string } ` ]
Returns Promise < ` 0x ${ string } ` >
liquidate Loan : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > )
( args , options ? ) : Promise < ` 0x ${ string } ` >
Parameters
args : readonly [ bigint , { borrower : ` 0x ${ string } ` ; nftCollateralTokenId : bigint ; nftCollateralAddress : ` 0x ${ string } ` ; principalAddress : ` 0x ${ string } ` ; principalAmount : bigint ; startTime : bigint ; duration : bigint ; tranche : readonly ( { loanId: bigint; floor: bigint; principalAmount: bigint; lender: `0x${string}`; accruedInterest: bigint; startTime: bigint; aprBps: bigint; }) [] ; protocolFee : bigint ; } ] | readonly [ bigint , { borrower : ` 0x ${ string } ` ; nftCollateralTokenId : bigint ; nftCollateralAddress : ` 0x ${ string } ` ; principalAddress : ` 0x ${ string } ` ; principalAmount : bigint ; startTime : bigint ; duration : bigint ; tranche : readonly ( { loanId: bigint; floor: bigint; principalAmount: bigint; lender: `0x${string}`; accruedInterest: bigint; startTime: bigint; aprBps: bigint; }) [] ; protocolFee : bigint ; } ] | readonly [ bigint , { borrower : ` 0x ${ string } ` ; nftCollateralTokenId : bigint ; nftCollateralAddress : ` 0x ${ string } ` ; principalAddress : ` 0x ${ string } ` ; principalAmount : bigint ; startTime : bigint ; duration : bigint ; tranche : readonly ( { loanId: bigint; floor: bigint; principalAmount: bigint; lender: `0x${string}`; accruedInterest: bigint; startTime: bigint; aprBps: bigint; }) [] ; protocolFee : bigint ; lenderRefinanceDisabled : boolean ; } ]
Returns Promise < ` 0x ${ string } ` >
onERC721 Received : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > )
( args , options ? ) : Promise < ` 0x ${ string } ` >
Parameters
args : readonly [ ` 0x ${ string } ` , ` 0x ${ string } ` , bigint , ` 0x ${ string } ` ]
Returns Promise < ` 0x ${ string } ` >
cancel All Offers : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > )
( args , options ? ) : Promise < ` 0x ${ string } ` >
Returns Promise < ` 0x ${ string } ` >
cancel Offer : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > )
( args , options ? ) : Promise < ` 0x ${ string } ` >
Returns Promise < ` 0x ${ string } ` >
cancel Renegotiation Offer : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > )
( args , options ? ) : Promise < ` 0x ${ string } ` >
Returns Promise < ` 0x ${ string } ` >
set Protocol Fee : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > )
( args , options ? ) : Promise < ` 0x ${ string } ` >
Parameters
args : undefined | readonly [ ]
Returns Promise < ` 0x ${ string } ` >
update Liquidation Auction Duration : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > )
( args , options ? ) : Promise < ` 0x ${ string } ` >
Returns Promise < ` 0x ${ string } ` >
update Liquidation Contract : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > )
( args , options ? ) : Promise < ` 0x ${ string } ` >
Parameters
args : readonly [ ` 0x ${ string } ` ]
Returns Promise < ` 0x ${ string } ` >
update Protocol Fee : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > )
( args , options ? ) : Promise < ` 0x ${ string } ` >
Parameters
args : readonly [ { recipient : ` 0x ${ string } ` ; fraction : bigint ; } ] | readonly [ { recipient : ` 0x ${ string } ` ; fraction : bigint ; } ] | readonly [ { recipient : ` 0x ${ string } ` ; fraction : bigint ; } ]
Returns Promise < ` 0x ${ string } ` >
multicall : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > )
( args , options ? ) : Promise < ` 0x ${ string } ` >
Parameters
args : readonly [ readonly ` 0x ${ string } ` [] ] | readonly [ readonly ` 0x ${ string } ` [] ] | readonly [ readonly ` 0x ${ string } ` [] ]
Returns Promise < ` 0x ${ string } ` >
delegate : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > )
( args , options ? ) : Promise < ` 0x ${ string } ` >
Parameters
args : readonly [ bigint , { borrower : ` 0x ${ string } ` ; nftCollateralTokenId : bigint ; nftCollateralAddress : ` 0x ${ string } ` ; principalAddress : ` 0x ${ string } ` ; principalAmount : bigint ; startTime : bigint ; duration : bigint ; tranche : readonly ( { loanId: bigint; floor: bigint; principalAmount: bigint; lender: `0x${string}`; accruedInterest: bigint; startTime: bigint; aprBps: bigint; }) [] ; protocolFee : bigint ; } , ` 0x ${ string } ` , ` 0x ${ string } ` , boolean ] | readonly [ bigint , { borrower : ` 0x ${ string } ` ; nftCollateralTokenId : bigint ; nftCollateralAddress : ` 0x ${ string } ` ; principalAddress : ` 0x ${ string } ` ; principalAmount : bigint ; startTime : bigint ; duration : bigint ; tranche : readonly ( { loanId: bigint; floor: bigint; principalAmount: bigint; lender: `0x${string}`; accruedInterest: bigint; startTime: bigint; aprBps: bigint; }) [] ; protocolFee : bigint ; } , ` 0x ${ string } ` , ` 0x ${ string } ` , boolean ] | readonly [ bigint , { borrower : ` 0x ${ string } ` ; nftCollateralTokenId : bigint ; nftCollateralAddress : ` 0x ${ string } ` ; principalAddress : ` 0x ${ string } ` ; principalAmount : bigint ; startTime : bigint ; duration : bigint ; tranche : readonly ( { loanId: bigint; floor: bigint; principalAmount: bigint; lender: `0x${string}`; accruedInterest: bigint; startTime: bigint; aprBps: bigint; }) [] ; protocolFee : bigint ; lenderRefinanceDisabled : boolean ; } , ` 0x ${ string } ` , ` 0x ${ string } ` , boolean ]
Returns Promise < ` 0x ${ string } ` >
revoke Delegate : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > )
( args , options ? ) : Promise < ` 0x ${ string } ` >
Parameters
args : readonly [ ` 0x ${ string } ` , ` 0x ${ string } ` , bigint , ` 0x ${ string } ` ]
Returns Promise < ` 0x ${ string } ` >
emit Loan : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > )
( args , options ? ) : Promise < ` 0x ${ string } ` >
Parameters
args : readonly [ { executionData : { offerExecution: readonly { offer: { offerId: bigint; lender: `0x${string}`; fee: bigint; capacity: bigint; nftCollateralAddress: `0x${string}`; nftCollateralTokenId: bigint; principalAddress: `0x${string}`; principalAmount: bigint; aprBps: bigint; expirationTime: bigint; duration: bigint; maxSeniorRepayment: bigint; validators: readonly { validator: `0x${string}`; arguments: `0x${string}`; }[]; }; amount: bigint; lenderOfferSignature: `0x${string}`; }[]; tokenId: bigint; duration: bigint; expirationTime: bigint; principalReceiver: `0x${string}`; callbackData: `0x${string}`; }; borrower : ` 0x ${ string } ` ; borrowerOfferSignature : ` 0x ${ string } ` ; } ] | readonly [ { executionData : { offerExecution: readonly { offer: { offerId: bigint; lender: `0x${string}`; fee: bigint; capacity: bigint; nftCollateralAddress: `0x${string}`; nftCollateralTokenId: bigint; principalAddress: `0x${string}`; principalAmount: bigint; aprBps: bigint; expirationTime: bigint; duration: bigint; maxSeniorRepayment: bigint; validators: readonly { validator: `0x${string}`; arguments: `0x${string}`; }[]; }; amount: bigint; lenderOfferSignature: `0x${string}`; }[]; loanId: bigint; nftCollateralAddress: `0x${string}`; tokenId: bigint; duration: bigint; expirationTime: bigint; principalReceiver: `0x${string}`; callbackData: `0x${string}`; }; borrower : ` 0x ${ string } ` ; borrowerOfferSignature : ` 0x ${ string } ` ; } ] | readonly [ { executionData : { offerExecution: readonly { offer: { offerId: bigint; lender: `0x${string}`; fee: bigint; capacity: bigint; nftCollateralAddress: `0x${string}`; nftCollateralTokenId: bigint; principalAddress: `0x${string}`; principalAmount: bigint; aprBps: bigint; expirationTime: bigint; duration: bigint; maxSeniorRepayment: bigint; validators: readonly { validator: `0x${string}`; arguments: `0x${string}`; }[]; lenderRefinanceDisabled: boolean; borrower: `0x${string}`; }; amount: bigint; lenderOfferSignature: `0x${string}`; }[]; loanId: bigint; nftCollateralAddress: `0x${string}`; tokenId: bigint; duration: bigint; expirationTime: bigint; principalReceiver: `0x${string}`; callbackData: `0x${string}`; }; borrower : ` 0x ${ string } ` ; borrowerOfferSignature : ` 0x ${ string } ` ; } ]
Returns Promise < ` 0x ${ string } ` >
execute Flash Action : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > )
( args , options ? ) : Promise < ` 0x ${ string } ` >
Parameters
args : readonly [ bigint , { borrower : ` 0x ${ string } ` ; nftCollateralTokenId : bigint ; nftCollateralAddress : ` 0x ${ string } ` ; principalAddress : ` 0x ${ string } ` ; principalAmount : bigint ; startTime : bigint ; duration : bigint ; tranche : readonly ( { loanId: bigint; floor: bigint; principalAmount: bigint; lender: `0x${string}`; accruedInterest: bigint; startTime: bigint; aprBps: bigint; }) [] ; protocolFee : bigint ; } , ` 0x ${ string } ` , ` 0x ${ string } ` ] | readonly [ bigint , { borrower : ` 0x ${ string } ` ; nftCollateralTokenId : bigint ; nftCollateralAddress : ` 0x ${ string } ` ; principalAddress : ` 0x ${ string } ` ; principalAmount : bigint ; startTime : bigint ; duration : bigint ; tranche : readonly ( { loanId: bigint; floor: bigint; principalAmount: bigint; lender: `0x${string}`; accruedInterest: bigint; startTime: bigint; aprBps: bigint; }) [] ; protocolFee : bigint ; } , ` 0x ${ string } ` , ` 0x ${ string } ` ] | readonly [ bigint , { borrower : ` 0x ${ string } ` ; nftCollateralTokenId : bigint ; nftCollateralAddress : ` 0x ${ string } ` ; principalAddress : ` 0x ${ string } ` ; principalAmount : bigint ; startTime : bigint ; duration : bigint ; tranche : readonly ( { loanId: bigint; floor: bigint; principalAmount: bigint; lender: `0x${string}`; accruedInterest: bigint; startTime: bigint; aprBps: bigint; }) [] ; protocolFee : bigint ; lenderRefinanceDisabled : boolean ; } , ` 0x ${ string } ` , ` 0x ${ string } ` ]
Returns Promise < ` 0x ${ string } ` >
loan Liquidated : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > )
( args , options ? ) : Promise < ` 0x ${ string } ` >
Parameters
args : readonly [ bigint , { borrower : ` 0x ${ string } ` ; nftCollateralTokenId : bigint ; nftCollateralAddress : ` 0x ${ string } ` ; principalAddress : ` 0x ${ string } ` ; principalAmount : bigint ; startTime : bigint ; duration : bigint ; tranche : readonly ( { loanId: bigint; floor: bigint; principalAmount: bigint; lender: `0x${string}`; accruedInterest: bigint; startTime: bigint; aprBps: bigint; }) [] ; protocolFee : bigint ; } ] | readonly [ bigint , { borrower : ` 0x ${ string } ` ; nftCollateralTokenId : bigint ; nftCollateralAddress : ` 0x ${ string } ` ; principalAddress : ` 0x ${ string } ` ; principalAmount : bigint ; startTime : bigint ; duration : bigint ; tranche : readonly ( { loanId: bigint; floor: bigint; principalAmount: bigint; lender: `0x${string}`; accruedInterest: bigint; startTime: bigint; aprBps: bigint; }) [] ; protocolFee : bigint ; } ]
Returns Promise < ` 0x ${ string } ` >
refinance Full : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > )
( args , options ? ) : Promise < ` 0x ${ string } ` >
Parameters
args : readonly [ { renegotiationId : bigint ; loanId : bigint ; lender : ` 0x ${ string } ` ; fee : bigint ; trancheIndex : readonly bigint [] ; principalAmount : bigint ; aprBps : bigint ; expirationTime : bigint ; duration : bigint ; } , { borrower : ` 0x ${ string } ` ; nftCollateralTokenId : bigint ; nftCollateralAddress : ` 0x ${ string } ` ; principalAddress : ` 0x ${ string } ` ; principalAmount : bigint ; startTime : bigint ; duration : bigint ; tranche : readonly ( { loanId: bigint; floor: bigint; principalAmount: bigint; lender: `0x${string}`; accruedInterest: bigint; startTime: bigint; aprBps: bigint; }) [] ; protocolFee : bigint ; } , ` 0x ${ string } ` ] | readonly [ { renegotiationId : bigint ; loanId : bigint ; lender : ` 0x ${ string } ` ; fee : bigint ; trancheIndex : readonly bigint [] ; principalAmount : bigint ; aprBps : bigint ; expirationTime : bigint ; duration : bigint ; } , { borrower : ` 0x ${ string } ` ; nftCollateralTokenId : bigint ; nftCollateralAddress : ` 0x ${ string } ` ; principalAddress : ` 0x ${ string } ` ; principalAmount : bigint ; startTime : bigint ; duration : bigint ; tranche : readonly ( { loanId: bigint; floor: bigint; principalAmount: bigint; lender: `0x${string}`; accruedInterest: bigint; startTime: bigint; aprBps: bigint; }) [] ; protocolFee : bigint ; } , ` 0x ${ string } ` ] | readonly [ { renegotiationId : bigint ; loanId : bigint ; lender : ` 0x ${ string } ` ; fee : bigint ; trancheIndex : readonly bigint [] ; principalAmount : bigint ; aprBps : bigint ; expirationTime : bigint ; duration : bigint ; } , { borrower : ` 0x ${ string } ` ; nftCollateralTokenId : bigint ; nftCollateralAddress : ` 0x ${ string } ` ; principalAddress : ` 0x ${ string } ` ; principalAmount : bigint ; startTime : bigint ; duration : bigint ; tranche : readonly ( { loanId: bigint; floor: bigint; principalAmount: bigint; lender: `0x${string}`; accruedInterest: bigint; startTime: bigint; aprBps: bigint; }) [] ; protocolFee : bigint ; lenderRefinanceDisabled : boolean ; } , ` 0x ${ string } ` ]
Returns Promise < ` 0x ${ string } ` >
refinance Partial : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > )
( args , options ? ) : Promise < ` 0x ${ string } ` >
Parameters
args : readonly [ { renegotiationId : bigint ; loanId : bigint ; lender : ` 0x ${ string } ` ; fee : bigint ; trancheIndex : readonly bigint [] ; principalAmount : bigint ; aprBps : bigint ; expirationTime : bigint ; duration : bigint ; } , { borrower : ` 0x ${ string } ` ; nftCollateralTokenId : bigint ; nftCollateralAddress : ` 0x ${ string } ` ; principalAddress : ` 0x ${ string } ` ; principalAmount : bigint ; startTime : bigint ; duration : bigint ; tranche : readonly ( { loanId: bigint; floor: bigint; principalAmount: bigint; lender: `0x${string}`; accruedInterest: bigint; startTime: bigint; aprBps: bigint; }) [] ; protocolFee : bigint ; } ] | readonly [ { renegotiationId : bigint ; loanId : bigint ; lender : ` 0x ${ string } ` ; fee : bigint ; trancheIndex : readonly bigint [] ; principalAmount : bigint ; aprBps : bigint ; expirationTime : bigint ; duration : bigint ; } , { borrower : ` 0x ${ string } ` ; nftCollateralTokenId : bigint ; nftCollateralAddress : ` 0x ${ string } ` ; principalAddress : ` 0x ${ string } ` ; principalAmount : bigint ; startTime : bigint ; duration : bigint ; tranche : readonly ( { loanId: bigint; floor: bigint; principalAmount: bigint; lender: `0x${string}`; accruedInterest: bigint; startTime: bigint; aprBps: bigint; }) [] ; protocolFee : bigint ; } ] | readonly [ { renegotiationId : bigint ; loanId : bigint ; lender : ` 0x ${ string } ` ; fee : bigint ; trancheIndex : readonly bigint [] ; principalAmount : bigint ; aprBps : bigint ; expirationTime : bigint ; duration : bigint ; } , { borrower : ` 0x ${ string } ` ; nftCollateralTokenId : bigint ; nftCollateralAddress : ` 0x ${ string } ` ; principalAddress : ` 0x ${ string } ` ; principalAmount : bigint ; startTime : bigint ; duration : bigint ; tranche : readonly ( { loanId: bigint; floor: bigint; principalAmount: bigint; lender: `0x${string}`; accruedInterest: bigint; startTime: bigint; aprBps: bigint; }) [] ; protocolFee : bigint ; lenderRefinanceDisabled : boolean ; } ]
Returns Promise < ` 0x ${ string } ` >
repay Loan : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > )
( args , options ? ) : Promise < ` 0x ${ string } ` >
Parameters
args : readonly [ { data : { loanId: bigint; callbackData: `0x${string}`; shouldDelegate: boolean; }; loan : { borrower: `0x${string}`; nftCollateralTokenId: bigint; nftCollateralAddress: `0x${string}`; principalAddress: `0x${string}`; principalAmount: bigint; startTime: bigint; duration: bigint; tranche: readonly { loanId: bigint; floor: bigint; principalAmount: bigint; lender: `0x${string}`; accruedInterest: bigint; startTime: bigint; aprBps: bigint; }[]; protocolFee: bigint; }; borrowerSignature : ` 0x ${ string } ` ; } ] | readonly [ { data : { loanId: bigint; callbackData: `0x${string}`; shouldDelegate: boolean; }; loan : { borrower: `0x${string}`; nftCollateralTokenId: bigint; nftCollateralAddress: `0x${string}`; principalAddress: `0x${string}`; principalAmount: bigint; startTime: bigint; duration: bigint; tranche: readonly { loanId: bigint; floor: bigint; principalAmount: bigint; lender: `0x${string}`; accruedInterest: bigint; startTime: bigint; aprBps: bigint; }[]; protocolFee: bigint; }; borrowerSignature : ` 0x ${ string } ` ; } ] | readonly [ { data : { loanId: bigint; callbackData: `0x${string}`; shouldDelegate: boolean; }; loan : { borrower: `0x${string}`; nftCollateralTokenId: bigint; nftCollateralAddress: `0x${string}`; principalAddress: `0x${string}`; principalAmount: bigint; startTime: bigint; duration: bigint; tranche: readonly { loanId: bigint; floor: bigint; principalAmount: bigint; lender: `0x${string}`; accruedInterest: bigint; startTime: bigint; aprBps: bigint; }[]; protocolFee: bigint; lenderRefinanceDisabled: boolean; }; borrowerSignature : ` 0x ${ string } ` ; } ]
Returns Promise < ` 0x ${ string } ` >
set Flash Action Contract : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > )
( args , options ? ) : Promise < ` 0x ${ string } ` >
Parameters
args : readonly [ ` 0x ${ string } ` ]
Returns Promise < ` 0x ${ string } ` >
set Min Lock Period : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > )
( args , options ? ) : Promise < ` 0x ${ string } ` >
Returns Promise < ` 0x ${ string } ` >
add Whitelisted Callback Contract : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > )
( args , options ? ) : Promise < ` 0x ${ string } ` >
Parameters
args : readonly [ ` 0x ${ string } ` ]
Returns Promise < ` 0x ${ string } ` >
remove Whitelisted Callback Contract : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > )
( args , options ? ) : Promise < ` 0x ${ string } ` >
Parameters
args : readonly [ ` 0x ${ string } ` ]
Returns Promise < ` 0x ${ string } ` >
request Transfer Owner : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > )
( args , options ? ) : Promise < ` 0x ${ string } ` >
Parameters
args : readonly [ ` 0x ${ string } ` ]
Returns Promise < ` 0x ${ string } ` >
update Min Improvement Apr : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > )
( args , options ? ) : Promise < ` 0x ${ string } ` >
Returns Promise < ` 0x ${ string } ` >
add New Tranche : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > )
( args , options ? ) : Promise < ` 0x ${ string } ` >
Parameters
args : readonly [ { renegotiationId : bigint ; loanId : bigint ; lender : ` 0x ${ string } ` ; fee : bigint ; trancheIndex : readonly bigint [] ; principalAmount : bigint ; aprBps : bigint ; expirationTime : bigint ; duration : bigint ; } , { borrower : ` 0x ${ string } ` ; nftCollateralTokenId : bigint ; nftCollateralAddress : ` 0x ${ string } ` ; principalAddress : ` 0x ${ string } ` ; principalAmount : bigint ; startTime : bigint ; duration : bigint ; tranche : readonly ( { loanId: bigint; floor: bigint; principalAmount: bigint; lender: `0x${string}`; accruedInterest: bigint; startTime: bigint; aprBps: bigint; }) [] ; protocolFee : bigint ; } , ` 0x ${ string } ` ] | readonly [ { renegotiationId : bigint ; loanId : bigint ; lender : ` 0x ${ string } ` ; fee : bigint ; trancheIndex : readonly bigint [] ; principalAmount : bigint ; aprBps : bigint ; expirationTime : bigint ; duration : bigint ; } , { borrower : ` 0x ${ string } ` ; nftCollateralTokenId : bigint ; nftCollateralAddress : ` 0x ${ string } ` ; principalAddress : ` 0x ${ string } ` ; principalAmount : bigint ; startTime : bigint ; duration : bigint ; tranche : readonly ( { loanId: bigint; floor: bigint; principalAmount: bigint; lender: `0x${string}`; accruedInterest: bigint; startTime: bigint; aprBps: bigint; }) [] ; protocolFee : bigint ; } , ` 0x ${ string } ` ] | readonly [ { renegotiationId : bigint ; loanId : bigint ; lender : ` 0x ${ string } ` ; fee : bigint ; trancheIndex : readonly bigint [] ; principalAmount : bigint ; aprBps : bigint ; expirationTime : bigint ; duration : bigint ; } , { borrower : ` 0x ${ string } ` ; nftCollateralTokenId : bigint ; nftCollateralAddress : ` 0x ${ string } ` ; principalAddress : ` 0x ${ string } ` ; principalAmount : bigint ; startTime : bigint ; duration : bigint ; tranche : readonly ( { loanId: bigint; floor: bigint; principalAmount: bigint; lender: `0x${string}`; accruedInterest: bigint; startTime: bigint; aprBps: bigint; }) [] ; protocolFee : bigint ; lenderRefinanceDisabled : boolean ; } , ` 0x ${ string } ` ]
Returns Promise < ` 0x ${ string } ` >
refinance From Loan Execution Data : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > )
( args , options ? ) : Promise < ` 0x ${ string } ` >
Parameters
args : readonly [ bigint , { borrower : ` 0x ${ string } ` ; nftCollateralTokenId : bigint ; nftCollateralAddress : ` 0x ${ string } ` ; principalAddress : ` 0x ${ string } ` ; principalAmount : bigint ; startTime : bigint ; duration : bigint ; tranche : readonly ( { loanId: bigint; floor: bigint; principalAmount: bigint; lender: `0x${string}`; accruedInterest: bigint; startTime: bigint; aprBps: bigint; }) [] ; protocolFee : bigint ; } , { executionData : { offerExecution: readonly { offer: { offerId: bigint; lender: `0x${string}`; fee: bigint; capacity: bigint; nftCollateralAddress: `0x${string}`; nftCollateralTokenId: bigint; principalAddress: `0x${string}`; principalAmount: bigint; aprBps: bigint; expirationTime: bigint; duration: bigint; maxSeniorRepayment: bigint; validators: readonly { validator: `0x${string}`; arguments: `0x${string}`; }[]; }; amount: bigint; lenderOfferSignature: `0x${string}`; }[]; tokenId: bigint; duration: bigint; expirationTime: bigint; principalReceiver: `0x${string}`; callbackData: `0x${string}`; }; borrower : ` 0x ${ string } ` ; borrowerOfferSignature : ` 0x ${ string } ` ; } ] | readonly [ bigint , { borrower : ` 0x ${ string } ` ; nftCollateralTokenId : bigint ; nftCollateralAddress : ` 0x ${ string } ` ; principalAddress : ` 0x ${ string } ` ; principalAmount : bigint ; startTime : bigint ; duration : bigint ; tranche : readonly ( { loanId: bigint; floor: bigint; principalAmount: bigint; lender: `0x${string}`; accruedInterest: bigint; startTime: bigint; aprBps: bigint; }) [] ; protocolFee : bigint ; } , { executionData : { offerExecution: readonly { offer: { offerId: bigint; lender: `0x${string}`; fee: bigint; capacity: bigint; nftCollateralAddress: `0x${string}`; nftCollateralTokenId: bigint; principalAddress: `0x${string}`; principalAmount: bigint; aprBps: bigint; expirationTime: bigint; duration: bigint; maxSeniorRepayment: bigint; validators: readonly { validator: `0x${string}`; arguments: `0x${string}`; }[]; }; amount: bigint; lenderOfferSignature: `0x${string}`; }[]; loanId: bigint; nftCollateralAddress: `0x${string}`; tokenId: bigint; duration: bigint; expirationTime: bigint; principalReceiver: `0x${string}`; callbackData: `0x${string}`; }; borrower : ` 0x ${ string } ` ; borrowerOfferSignature : ` 0x ${ string } ` ; } ] | readonly [ bigint , { borrower : ` 0x ${ string } ` ; nftCollateralTokenId : bigint ; nftCollateralAddress : ` 0x ${ string } ` ; principalAddress : ` 0x ${ string } ` ; principalAmount : bigint ; startTime : bigint ; duration : bigint ; tranche : readonly ( { loanId: bigint; floor: bigint; principalAmount: bigint; lender: `0x${string}`; accruedInterest: bigint; startTime: bigint; aprBps: bigint; }) [] ; protocolFee : bigint ; lenderRefinanceDisabled : boolean ; } , { executionData : { offerExecution: readonly { offer: { offerId: bigint; lender: `0x${string}`; fee: bigint; capacity: bigint; nftCollateralAddress: `0x${string}`; nftCollateralTokenId: bigint; principalAddress: `0x${string}`; principalAmount: bigint; aprBps: bigint; expirationTime: bigint; duration: bigint; maxSeniorRepayment: bigint; validators: readonly { validator: `0x${string}`; arguments: `0x${string}`; }[]; lenderRefinanceDisabled: boolean; borrower: `0x${string}`; }; amount: bigint; lenderOfferSignature: `0x${string}`; }[]; loanId: bigint; nftCollateralAddress: `0x${string}`; tokenId: bigint; duration: bigint; expirationTime: bigint; principalReceiver: `0x${string}`; callbackData: `0x${string}`; }; borrower : ` 0x ${ string } ` ; borrowerOfferSignature : ` 0x ${ string } ` ; } ]
Returns Promise < ` 0x ${ string } ` >
parse Event Logs
parse Event Logs : ( < TFunctionName > ( eventName , logs ) => ParseEventLogsReturnType < readonly [ { inputs : readonly [ { internalType : "address" ; name : "loanLiquidator" ; type : "address" ; } , { components : readonly [ { internalType : "address" ; name : "recipient" ; type : "address" ; } , { internalType : "uint256" ; name : "fraction" ; type : "uint256" ; } ] ; internalType : "struct WithProtocolFee.ProtocolFee" ; name : "protocolFee" ; type : "tuple" ; } , { internalType : "address" ; name : "currencyManager" ; type : "address" ; } , { internalType : "address" ; name : "collectionManager" ; type : "address" ; } , { internalType : "uint256" ; name : "maxTranches" ; type : "uint256" ; } , { internalType : "uint256" ; name : "minLockPeriod" ; type : "uint256" ; } , { internalType : "address" ; name : "delegateRegistry" ; type : "address" ; } , { internalType : "address" ; name : "loanManagerRegistry" ; type : "address" ; } , { internalType : "address" ; name : "flashActionContract" ; type : "address" ; } , { internalType : "uint256" ; name : "minWaitTime" ; type : "uint256" ; } ] ; stateMutability : "nonpayable" ; type : "constructor" ; } , { inputs : readonly [ ] ; name : "DOMAIN_SEPARATOR" ; outputs : readonly [ { internalType : "bytes32" ; name : "" ; type : "bytes32" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "FEE_UPDATE_NOTICE" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "INITIAL_DOMAIN_SEPARATOR" ; outputs : readonly [ { internalType : "bytes32" ; name : "" ; type : "bytes32" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "MAX_AUCTION_DURATION" ; outputs : readonly [ { internalType : "uint48" ; name : "" ; type : "uint48" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "MIN_AUCTION_DURATION" ; outputs : readonly [ { internalType : "uint48" ; name : "" ; type : "uint48" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "MIN_BID_LIQUIDATION" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "MIN_WAIT_TIME" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "VERSION" ; outputs : readonly [ { internalType : "bytes" ; name : "" ; type : "bytes" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ { components : readonly [ { internalType : "uint256" ; name : "renegotiationId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "fee" ; type : "uint256" ; } , { internalType : "uint256[]" ; name : "trancheIndex" ; type : "uint256[]" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } , { internalType : "uint256" ; name : "expirationTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.RenegotiationOffer" ; name : "_renegotiationOffer" ; type : "tuple" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "_loan" ; type : "tuple" ; } , { internalType : "bytes" ; name : "_renegotiationOfferSignature" ; type : "bytes" ; } ] ; name : "addNewTranche" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "" ; type : "tuple" ; } ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "_contract" ; type : "address" ; } ] ; name : "addWhitelistedCallbackContract" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_minOfferId" ; type : "uint256" ; } ] ; name : "cancelAllOffers" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_offerId" ; type : "uint256" ; } ] ; name : "cancelOffer" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_renegotiationId" ; type : "uint256" ; } ] ; name : "cancelRenegotiationOffer" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_loanId" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "loan" ; type : "tuple" ; } , { internalType : "address" ; name : "_delegate" ; type : "address" ; } , { internalType : "bytes32" ; name : "_rights" ; type : "bytes32" ; } , { internalType : "bool" ; name : "_value" ; type : "bool" ; } ] ; name : "delegate" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { components : readonly [ { components : readonly [ { components : readonly [ { components : readonly [ { internalType : "uint256" ; name : "offerId" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "fee" ; type : "uint256" ; } , { internalType : "uint256" ; name : "capacity" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } , { internalType : "uint256" ; name : "expirationTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { internalType : "uint256" ; name : "maxSeniorRepayment" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "validator" ; type : "address" ; } , { internalType : "bytes" ; name : "arguments" ; type : "bytes" ; } ] ; internalType : "struct IBaseLoan.OfferValidator[]" ; name : "validators" ; type : "tuple[]" ; } ] ; internalType : "struct IMultiSourceLoan.LoanOffer" ; name : "offer" ; type : "tuple" ; } , { internalType : "uint256" ; name : "amount" ; type : "uint256" ; } , { internalType : "bytes" ; name : "lenderOfferSignature" ; type : "bytes" ; } ] ; internalType : "struct IMultiSourceLoan.OfferExecution[]" ; name : "offerExecution" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "tokenId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { internalType : "uint256" ; name : "expirationTime" ; type : "uint256" ; } , { internalType : "address" ; name : "principalReceiver" ; type : "address" ; } , { internalType : "bytes" ; name : "callbackData" ; type : "bytes" ; } ] ; internalType : "struct IMultiSourceLoan.ExecutionData" ; name : "executionData" ; type : "tuple" ; } , { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "bytes" ; name : "borrowerOfferSignature" ; type : "bytes" ; } ] ; internalType : "struct IMultiSourceLoan.LoanExecutionData" ; name : "_loanExecutionData" ; type : "tuple" ; } ] ; name : "emitLoan" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "" ; type : "tuple" ; } ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_loanId" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "_loan" ; type : "tuple" ; } , { internalType : "address" ; name : "_target" ; type : "address" ; } , { internalType : "bytes" ; name : "_data" ; type : "bytes" ; } ] ; name : "executeFlashAction" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getCollectionManager" ; outputs : readonly [ { internalType : "address" ; name : "" ; type : "address" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getCurrencyManager" ; outputs : readonly [ { internalType : "address" ; name : "" ; type : "address" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getDelegateRegistry" ; outputs : readonly [ { internalType : "address" ; name : "" ; type : "address" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getFlashActionContract" ; outputs : readonly [ { internalType : "address" ; name : "" ; type : "address" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getLiquidationAuctionDuration" ; outputs : readonly [ { internalType : "uint48" ; name : "" ; type : "uint48" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getLiquidator" ; outputs : readonly [ { internalType : "address" ; name : "" ; type : "address" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_loanId" ; type : "uint256" ; } ] ; name : "getLoanHash" ; outputs : readonly [ { internalType : "bytes32" ; name : "" ; type : "bytes32" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getLoanManagerRegistry" ; outputs : readonly [ { internalType : "contract ILoanManagerRegistry" ; name : "" ; type : "address" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getMaxTranches" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getMinImprovementApr" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getMinLockPeriod" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getPendingProtocolFee" ; outputs : readonly [ { components : readonly [ { internalType : "address" ; name : "recipient" ; type : "address" ; } , { internalType : "uint256" ; name : "fraction" ; type : "uint256" ; } ] ; internalType : "struct WithProtocolFee.ProtocolFee" ; name : "" ; type : "tuple" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getPendingProtocolFeeSetTime" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getProtocolFee" ; outputs : readonly [ { components : readonly [ { internalType : "address" ; name : "recipient" ; type : "address" ; } , { internalType : "uint256" ; name : "fraction" ; type : "uint256" ; } ] ; internalType : "struct WithProtocolFee.ProtocolFee" ; name : "" ; type : "tuple" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getTotalLoansIssued" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "_lender" ; type : "address" ; } , { internalType : "uint256" ; name : "_offerId" ; type : "uint256" ; } ] ; name : "getUsedCapacity" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "user" ; type : "address" ; } , { internalType : "uint256" ; name : "offerId" ; type : "uint256" ; } ] ; name : "isOfferCancelled" ; outputs : readonly [ { internalType : "bool" ; name : "notActive" ; type : "bool" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "user" ; type : "address" ; } , { internalType : "uint256" ; name : "renegotiationIf" ; type : "uint256" ; } ] ; name : "isRenegotiationOfferCancelled" ; outputs : readonly [ { internalType : "bool" ; name : "notActive" ; type : "bool" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "_contract" ; type : "address" ; } ] ; name : "isWhitelistedCallbackContract" ; outputs : readonly [ { internalType : "bool" ; name : "" ; type : "bool" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_loanId" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "_loan" ; type : "tuple" ; } ] ; name : "liquidateLoan" ; outputs : readonly [ { internalType : "bytes" ; name : "" ; type : "bytes" ; } ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_loanId" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "_loan" ; type : "tuple" ; } ] ; name : "loanLiquidated" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "user" ; type : "address" ; } ] ; name : "minOfferId" ; outputs : readonly [ { internalType : "uint256" ; name : "minOfferId" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ { internalType : "bytes[]" ; name : "data" ; type : "bytes[]" ; } ] ; name : "multicall" ; outputs : readonly [ { internalType : "bytes[]" ; name : "results" ; type : "bytes[]" ; } ] ; stateMutability : "payable" ; type : "function" ; } , { inputs : readonly [ ] ; name : "name" ; outputs : readonly [ { internalType : "string" ; name : "" ; type : "string" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "" ; type : "address" ; } , { internalType : "address" ; name : "" ; type : "address" ; } , { internalType : "uint256" ; name : "" ; type : "uint256" ; } , { internalType : "bytes" ; name : "" ; type : "bytes" ; } ] ; name : "onERC721Received" ; outputs : readonly [ { internalType : "bytes4" ; name : "" ; type : "bytes4" ; } ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ ] ; name : "owner" ; outputs : readonly [ { internalType : "address" ; name : "" ; type : "address" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "pendingOwner" ; outputs : readonly [ { internalType : "address" ; name : "" ; type : "address" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "pendingOwnerTime" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_loanId" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "_loan" ; type : "tuple" ; } , { components : readonly [ { components : readonly [ { components : readonly [ { components : readonly [ { internalType : "uint256" ; name : "offerId" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "fee" ; type : "uint256" ; } , { internalType : "uint256" ; name : "capacity" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } , { internalType : "uint256" ; name : "expirationTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { internalType : "uint256" ; name : "maxSeniorRepayment" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "validator" ; type : "address" ; } , { internalType : "bytes" ; name : "arguments" ; type : "bytes" ; } ] ; internalType : "struct IBaseLoan.OfferValidator[]" ; name : "validators" ; type : "tuple[]" ; } ] ; internalType : "struct IMultiSourceLoan.LoanOffer" ; name : "offer" ; type : "tuple" ; } , { internalType : "uint256" ; name : "amount" ; type : "uint256" ; } , { internalType : "bytes" ; name : "lenderOfferSignature" ; type : "bytes" ; } ] ; internalType : "struct IMultiSourceLoan.OfferExecution[]" ; name : "offerExecution" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "tokenId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { internalType : "uint256" ; name : "expirationTime" ; type : "uint256" ; } , { internalType : "address" ; name : "principalReceiver" ; type : "address" ; } , { internalType : "bytes" ; name : "callbackData" ; type : "bytes" ; } ] ; internalType : "struct IMultiSourceLoan.ExecutionData" ; name : "executionData" ; type : "tuple" ; } , { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "bytes" ; name : "borrowerOfferSignature" ; type : "bytes" ; } ] ; internalType : "struct IMultiSourceLoan.LoanExecutionData" ; name : "_loanExecutionData" ; type : "tuple" ; } ] ; name : "refinanceFromLoanExecutionData" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "" ; type : "tuple" ; } ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { components : readonly [ { internalType : "uint256" ; name : "renegotiationId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "fee" ; type : "uint256" ; } , { internalType : "uint256[]" ; name : "trancheIndex" ; type : "uint256[]" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } , { internalType : "uint256" ; name : "expirationTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.RenegotiationOffer" ; name : "_renegotiationOffer" ; type : "tuple" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "_loan" ; type : "tuple" ; } , { internalType : "bytes" ; name : "_renegotiationOfferSignature" ; type : "bytes" ; } ] ; name : "refinanceFull" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "" ; type : "tuple" ; } ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { components : readonly [ { internalType : "uint256" ; name : "renegotiationId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "fee" ; type : "uint256" ; } , { internalType : "uint256[]" ; name : "trancheIndex" ; type : "uint256[]" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } , { internalType : "uint256" ; name : "expirationTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.RenegotiationOffer" ; name : "_renegotiationOffer" ; type : "tuple" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "_loan" ; type : "tuple" ; } ] ; name : "refinancePartial" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "" ; type : "tuple" ; } ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "_contract" ; type : "address" ; } ] ; name : "removeWhitelistedCallbackContract" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { components : readonly [ { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "bytes" ; name : "callbackData" ; type : "bytes" ; } , { internalType : "bool" ; name : "shouldDelegate" ; type : "bool" ; } ] ; internalType : "struct IMultiSourceLoan.SignableRepaymentData" ; name : "data" ; type : "tuple" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "loan" ; type : "tuple" ; } , { internalType : "bytes" ; name : "borrowerSignature" ; type : "bytes" ; } ] ; internalType : "struct IMultiSourceLoan.LoanRepaymentData" ; name : "_repaymentData" ; type : "tuple" ; } ] ; name : "repayLoan" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "_newOwner" ; type : "address" ; } ] ; name : "requestTransferOwner" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "_delegate" ; type : "address" ; } , { internalType : "address" ; name : "_collection" ; type : "address" ; } , { internalType : "uint256" ; name : "_tokenId" ; type : "uint256" ; } , { internalType : "bytes32" ; name : "_rights" ; type : "bytes32" ; } ] ; name : "revokeDelegate" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "_newFlashActionContract" ; type : "address" ; } ] ; name : "setFlashActionContract" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "__minLockPeriod" ; type : "uint256" ; } ] ; name : "setMinLockPeriod" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ ] ; name : "setProtocolFee" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ ] ; name : "transferOwnership" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "newOwner" ; type : "address" ; } ] ; name : "transferOwnership" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint48" ; name : "_newDuration" ; type : "uint48" ; } ] ; name : "updateLiquidationAuctionDuration" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "__loanLiquidator" ; type : "address" ; } ] ; name : "updateLiquidationContract" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_newMinimum" ; type : "uint256" ; } ] ; name : "updateMinImprovementApr" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { components : readonly [ { internalType : "address" ; name : "recipient" ; type : "address" ; } , { internalType : "uint256" ; name : "fraction" ; type : "uint256" ; } ] ; internalType : "struct WithProtocolFee.ProtocolFee" ; name : "_newProtocolFee" ; type : "tuple" ; } ] ; name : "updateProtocolFee" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "address" ; name : "lender" ; type : "address" ; } , { indexed : false ; internalType : "uint256" ; name : "minOfferId" ; type : "uint256" ; } ] ; name : "AllOffersCancelled" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { indexed : false ; internalType : "address" ; name : "delegate" ; type : "address" ; } , { indexed : false ; internalType : "bytes32" ; name : "_rights" ; type : "bytes32" ; } , { indexed : false ; internalType : "bool" ; name : "value" ; type : "bool" ; } ] ; name : "Delegated" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "address" ; name : "newFlashActionContract" ; type : "address" ; } ] ; name : "FlashActionContractUpdated" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { indexed : false ; internalType : "address" ; name : "target" ; type : "address" ; } , { indexed : false ; internalType : "bytes" ; name : "data" ; type : "bytes" ; } ] ; name : "FlashActionExecuted" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "newDuration" ; type : "uint256" ; } ] ; name : "LiquidationAuctionDurationUpdated" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "address" ; name : "liquidator" ; type : "address" ; } ] ; name : "LiquidationContractUpdated" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { indexed : false ; internalType : "uint256[]" ; name : "offerId" ; type : "uint256[]" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; indexed : false ; internalType : "struct IMultiSourceLoan.Loan" ; name : "loan" ; type : "tuple" ; } , { indexed : false ; internalType : "uint256" ; name : "fee" ; type : "uint256" ; } ] ; name : "LoanEmitted" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } ] ; name : "LoanForeclosed" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } ] ; name : "LoanLiquidated" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "renegotiationId" ; type : "uint256" ; } , { indexed : false ; internalType : "uint256" ; name : "oldLoanId" ; type : "uint256" ; } , { indexed : false ; internalType : "uint256" ; name : "newLoanId" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; indexed : false ; internalType : "struct IMultiSourceLoan.Loan" ; name : "loan" ; type : "tuple" ; } , { indexed : false ; internalType : "uint256" ; name : "fee" ; type : "uint256" ; } ] ; name : "LoanRefinanced" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { indexed : false ; internalType : "uint256" ; name : "newLoanId" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; indexed : false ; internalType : "struct IMultiSourceLoan.Loan" ; name : "loan" ; type : "tuple" ; } , { indexed : false ; internalType : "uint256[]" ; name : "offerIds" ; type : "uint256[]" ; } , { indexed : false ; internalType : "uint256" ; name : "totalFee" ; type : "uint256" ; } ] ; name : "LoanRefinancedFromNewOffers" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { indexed : false ; internalType : "uint256" ; name : "totalRepayment" ; type : "uint256" ; } , { indexed : false ; internalType : "uint256" ; name : "fee" ; type : "uint256" ; } ] ; name : "LoanRepaid" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { indexed : false ; internalType : "address" ; name : "liquidator" ; type : "address" ; } ] ; name : "LoanSentToLiquidator" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "_minimum" ; type : "uint256" ; } ] ; name : "MinAprImprovementUpdated" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "newMinBid" ; type : "uint256" ; } ] ; name : "MinBidLiquidationUpdated" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "minLockPeriod" ; type : "uint256" ; } ] ; name : "MinLockPeriodUpdated" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "address" ; name : "lender" ; type : "address" ; } , { indexed : false ; internalType : "uint256" ; name : "offerId" ; type : "uint256" ; } ] ; name : "OfferCancelled" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : true ; internalType : "address" ; name : "user" ; type : "address" ; } , { indexed : true ; internalType : "address" ; name : "newOwner" ; type : "address" ; } ] ; name : "OwnershipTransferred" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { components : readonly [ { internalType : "address" ; name : "recipient" ; type : "address" ; } , { internalType : "uint256" ; name : "fraction" ; type : "uint256" ; } ] ; indexed : false ; internalType : "struct WithProtocolFee.ProtocolFee" ; name : "fee" ; type : "tuple" ; } ] ; name : "ProtocolFeePendingUpdate" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { components : readonly [ { internalType : "address" ; name : "recipient" ; type : "address" ; } , { internalType : "uint256" ; name : "fraction" ; type : "uint256" ; } ] ; indexed : false ; internalType : "struct WithProtocolFee.ProtocolFee" ; name : "fee" ; type : "tuple" ; } ] ; name : "ProtocolFeeUpdated" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "address" ; name : "lender" ; type : "address" ; } , { indexed : false ; internalType : "uint256" ; name : "renegotiationId" ; type : "uint256" ; } ] ; name : "RenegotiationOfferCancelled" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "address" ; name : "delegate" ; type : "address" ; } , { indexed : false ; internalType : "address" ; name : "collection" ; type : "address" ; } , { indexed : false ; internalType : "uint256" ; name : "tokenId" ; type : "uint256" ; } , { indexed : false ; internalType : "bytes32" ; name : "_rights" ; type : "bytes32" ; } ] ; name : "RevokeDelegate" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "address" ; name : "newOwner" ; type : "address" ; } ] ; name : "TransferOwnerRequested" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "address" ; name : "contractAdded" ; type : "address" ; } ] ; name : "WhitelistedCallbackContractAdded" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "address" ; name : "contractRemoved" ; type : "address" ; } ] ; name : "WhitelistedCallbackContractRemoved" ; type : "event" ; } , { inputs : readonly [ ] ; name : "AddressZeroError" ; type : "error" ; } , { inputs : readonly [ { internalType : "address" ; name : "_lender" ; type : "address" ; } , { internalType : "uint256" ; name : "_offerId" ; type : "uint256" ; } ] ; name : "CancelledOrExecutedOfferError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "CollectionNotWhitelistedError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "CurrencyNotWhitelistedError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "ECDSAInvalidSignature" ; type : "error" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "length" ; type : "uint256" ; } ] ; name : "ECDSAInvalidSignatureLength" ; type : "error" ; } , { inputs : readonly [ { internalType : "bytes32" ; name : "s" ; type : "bytes32" ; } ] ; name : "ECDSAInvalidSignatureS" ; type : "error" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_expirationTime" ; type : "uint256" ; } ] ; name : "ExpiredOfferError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidAddressesError" ; type : "error" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_amount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "_principalAmount" ; type : "uint256" ; } ] ; name : "InvalidAmountError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidCallbackError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidCallerError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidCollateralIdError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidDurationError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidInputError" ; type : "error" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_loanId" ; type : "uint256" ; } ] ; name : "InvalidLoanError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidMethodError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidParametersError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidRenegotiationOfferError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidSignatureError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidTrancheError" ; type : "error" ; } , { inputs : readonly [ { internalType : "address" ; name : "_liquidator" ; type : "address" ; } ] ; name : "LiquidatorOnlyError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "LoanExpiredError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "LoanLockedError" ; type : "error" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_expirationTime" ; type : "uint256" ; } ] ; name : "LoanNotDueError" ; type : "error" ; } , { inputs : readonly [ { internalType : "address" ; name : "_lender" ; type : "address" ; } , { internalType : "uint256" ; name : "_newMinOfferId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "_minOfferId" ; type : "uint256" ; } ] ; name : "LowOfferIdError" ; type : "error" ; } , { inputs : readonly [ { internalType : "address" ; name : "_lender" ; type : "address" ; } , { internalType : "uint256" ; name : "_newMinRenegotiationOfferId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "_minOfferId" ; type : "uint256" ; } ] ; name : "LowRenegotiationOfferIdError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "MaxCapacityExceededError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "MismatchError" ; type : "error" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "i" ; type : "uint256" ; } , { internalType : "bytes" ; name : "returndata" ; type : "bytes" ; } ] ; name : "MulticallFailed" ; type : "error" ; } , { inputs : readonly [ ] ; name : "NFTNotReturnedError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "NotStrictlyImprovedError" ; type : "error" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_pendingProtocolFeeSetTime" ; type : "uint256" ; } ] ; name : "TooEarlyError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "TooManyTranchesError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "TooSoonError" ; type : "error" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "minTimestamp" ; type : "uint256" ; } ] ; name : "TrancheCannotBeRefinancedError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "ZeroInterestError" ; type : "error" ; } ] | readonly [ { type : "constructor" ; inputs : readonly [ { name : "loanLiquidator" ; type : "address" ; internalType : "address" ; } , { name : "protocolFee" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "currencyManager" ; type : "address" ; internalType : "address" ; } , { name : "collectionManager" ; type : "address" ; internalType : "address" ; } , { name : "maxTranches" ; type : "uint256" ; internalType : "uint256" ; } , { name : "minLockPeriod" ; type : "uint256" ; internalType : "uint256" ; } , { name : "delegateRegistry" ; type : "address" ; internalType : "address" ; } , { name : "loanManagerRegistry" ; type : "address" ; internalType : "address" ; } , { name : "flashActionContract" ; type : "address" ; internalType : "address" ; } , { name : "minWaitTime" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "DOMAIN_SEPARATOR" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "FEE_UPDATE_NOTICE" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "INITIAL_DOMAIN_SEPARATOR" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "MAX_AUCTION_DURATION" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint48" ; internalType : "uint48" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "MIN_AUCTION_DURATION" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint48" ; internalType : "uint48" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "MIN_BID_LIQUIDATION" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "MIN_WAIT_TIME" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "VERSION" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes" ; internalType : "bytes" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "addNewTranche" ; inputs : readonly [ { name : "_renegotiationOffer" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.RenegotiationOffer" ; components : readonly [ { name : "renegotiationId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "trancheIndex" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_renegotiationOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "addWhitelistedCallbackContract" ; inputs : readonly [ { name : "_contract" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "cancelOffer" ; inputs : readonly [ { name : "_offerId" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "cancelRenegotiationOffer" ; inputs : readonly [ { name : "_renegotiationId" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "delegate" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_delegate" ; type : "address" ; internalType : "address" ; } , { name : "_rights" ; type : "bytes32" ; internalType : "bytes32" ; } , { name : "_value" ; type : "bool" ; internalType : "bool" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "emitLoan" ; inputs : readonly [ { name : "_loanExecutionData" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.LoanExecutionData" ; components : readonly [ { name : "executionData" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.ExecutionData" ; components : readonly [ { name : "offerExecution" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.OfferExecution[]" ; components : readonly [ { name : "offer" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.LoanOffer" ; components : readonly [ { name : "offerId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "capacity" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "maxSeniorRepayment" ; type : "uint256" ; internalType : "uint256" ; } , { name : "validators" ; type : "tuple[]" ; internalType : "struct IBaseLoan.OfferValidator[]" ; components : readonly [ { name : "validator" ; type : "address" ; internalType : "address" ; } , { name : "arguments" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; } , { name : "amount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "tokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalReceiver" ; type : "address" ; internalType : "address" ; } , { name : "callbackData" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "borrowerOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "executeFlashAction" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_target" ; type : "address" ; internalType : "address" ; } , { name : "_data" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "getCollectionManager" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getCurrencyManager" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getDelegateRegistry" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getFlashActionContract" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getLiquidationAuctionDuration" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint48" ; internalType : "uint48" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getLiquidator" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getLoanHash" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getLoanManagerRegistry" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "contract ILoanManagerRegistry" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getMaxTranches" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getMinImprovementApr" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getMinLockPeriod" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getPendingProtocolFee" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getPendingProtocolFeeSetTime" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getProtocolFee" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getTotalLoansIssued" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getUsedCapacity" ; inputs : readonly [ { name : "_lender" ; type : "address" ; internalType : "address" ; } , { name : "_offerId" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "isOfferCancelled" ; inputs : readonly [ { name : "user" ; type : "address" ; internalType : "address" ; } , { name : "offerId" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ { name : "notActive" ; type : "bool" ; internalType : "bool" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "isRenegotiationOfferCancelled" ; inputs : readonly [ { name : "user" ; type : "address" ; internalType : "address" ; } , { name : "renegotiationIf" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ { name : "notActive" ; type : "bool" ; internalType : "bool" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "isWhitelistedCallbackContract" ; inputs : readonly [ { name : "_contract" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ { name : "" ; type : "bool" ; internalType : "bool" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "liquidateLoan" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; outputs : readonly [ { name : "" ; type : "bytes" ; internalType : "bytes" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "loanLiquidated" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "multicall" ; inputs : readonly [ { name : "data" ; type : "bytes[]" ; internalType : "bytes[]" ; } ] ; outputs : readonly [ { name : "results" ; type : "bytes[]" ; internalType : "bytes[]" ; } ] ; stateMutability : "payable" ; } , { type : "function" ; name : "name" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "string" ; internalType : "string" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "onERC721Received" ; inputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } , { name : "" ; type : "address" ; internalType : "address" ; } , { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "bytes4" ; internalType : "bytes4" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "owner" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "pendingOwner" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "pendingOwnerTime" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "refinanceFromLoanExecutionData" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_loanExecutionData" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.LoanExecutionData" ; components : readonly [ { name : "executionData" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.ExecutionData" ; components : readonly [ { name : "offerExecution" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.OfferExecution[]" ; components : readonly [ { name : "offer" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.LoanOffer" ; components : readonly [ { name : "offerId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "capacity" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "maxSeniorRepayment" ; type : "uint256" ; internalType : "uint256" ; } , { name : "validators" ; type : "tuple[]" ; internalType : "struct IBaseLoan.OfferValidator[]" ; components : readonly [ { name : "validator" ; type : "address" ; internalType : "address" ; } , { name : "arguments" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; } , { name : "amount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "tokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalReceiver" ; type : "address" ; internalType : "address" ; } , { name : "callbackData" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "borrowerOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "refinanceFull" ; inputs : readonly [ { name : "_renegotiationOffer" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.RenegotiationOffer" ; components : readonly [ { name : "renegotiationId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "trancheIndex" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_renegotiationOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "refinancePartial" ; inputs : readonly [ { name : "_renegotiationOffer" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.RenegotiationOffer" ; components : readonly [ { name : "renegotiationId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "trancheIndex" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "removeWhitelistedCallbackContract" ; inputs : readonly [ { name : "_contract" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "repayLoan" ; inputs : readonly [ { name : "_repaymentData" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.LoanRepaymentData" ; components : readonly [ { name : "data" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.SignableRepaymentData" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "callbackData" ; type : "bytes" ; internalType : "bytes" ; } , { name : "shouldDelegate" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "borrowerSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "requestTransferOwner" ; inputs : readonly [ { name : "_newOwner" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "revokeDelegate" ; inputs : readonly [ { name : "_delegate" ; type : "address" ; internalType : "address" ; } , { name : "_collection" ; type : "address" ; internalType : "address" ; } , { name : "_tokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_rights" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "setFlashActionContract" ; inputs : readonly [ { name : "_newFlashActionContract" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "setMinLockPeriod" ; inputs : readonly [ { name : "__minLockPeriod" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "setProtocolFee" ; inputs : readonly [ ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "transferOwnership" ; inputs : readonly [ ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "transferOwnership" ; inputs : readonly [ { name : "newOwner" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "updateLiquidationAuctionDuration" ; inputs : readonly [ { name : "_newDuration" ; type : "uint48" ; internalType : "uint48" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "updateLiquidationContract" ; inputs : readonly [ { name : "__loanLiquidator" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "updateMinImprovementApr" ; inputs : readonly [ { name : "_newMinimum" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "updateProtocolFee" ; inputs : readonly [ { name : "_newProtocolFee" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "event" ; name : "Delegated" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "delegate" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "_rights" ; type : "bytes32" ; indexed : false ; internalType : "bytes32" ; } , { name : "value" ; type : "bool" ; indexed : false ; internalType : "bool" ; } ] ; anonymous : false ; } , { type : "event" ; name : "FlashActionContractUpdated" ; inputs : readonly [ { name : "newFlashActionContract" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "FlashActionExecuted" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "target" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "data" ; type : "bytes" ; indexed : false ; internalType : "bytes" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LiquidationAuctionDurationUpdated" ; inputs : readonly [ { name : "newDuration" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LiquidationContractUpdated" ; inputs : readonly [ { name : "liquidator" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanEmitted" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "offerId" ; type : "uint256[]" ; indexed : false ; internalType : "uint256[]" ; } , { name : "loan" ; type : "tuple" ; indexed : false ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "fee" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanForeclosed" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanLiquidated" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanRefinanced" ; inputs : readonly [ { name : "renegotiationId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "oldLoanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "newLoanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "loan" ; type : "tuple" ; indexed : false ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "fee" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanRefinancedFromNewOffers" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "newLoanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "loan" ; type : "tuple" ; indexed : false ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "offerIds" ; type : "uint256[]" ; indexed : false ; internalType : "uint256[]" ; } , { name : "totalFee" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanRepaid" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "totalRepayment" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "fee" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanSentToLiquidator" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "liquidator" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "MinAprImprovementUpdated" ; inputs : readonly [ { name : "_minimum" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "MinBidLiquidationUpdated" ; inputs : readonly [ { name : "newMinBid" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "MinLockPeriodUpdated" ; inputs : readonly [ { name : "minLockPeriod" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "OfferCancelled" ; inputs : readonly [ { name : "lender" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "offerId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "OwnershipTransferred" ; inputs : readonly [ { name : "user" ; type : "address" ; indexed : true ; internalType : "address" ; } , { name : "newOwner" ; type : "address" ; indexed : true ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "ProtocolFeePendingUpdate" ; inputs : readonly [ { name : "fee" ; type : "tuple" ; indexed : false ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; anonymous : false ; } , { type : "event" ; name : "ProtocolFeeUpdated" ; inputs : readonly [ { name : "fee" ; type : "tuple" ; indexed : false ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; anonymous : false ; } , { type : "event" ; name : "RenegotiationOfferCancelled" ; inputs : readonly [ { name : "lender" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "renegotiationId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "RevokeDelegate" ; inputs : readonly [ { name : "delegate" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "collection" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "tokenId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "_rights" ; type : "bytes32" ; indexed : false ; internalType : "bytes32" ; } ] ; anonymous : false ; } , { type : "event" ; name : "TransferOwnerRequested" ; inputs : readonly [ { name : "newOwner" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "WhitelistedCallbackContractAdded" ; inputs : readonly [ { name : "contractAdded" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "WhitelistedCallbackContractRemoved" ; inputs : readonly [ { name : "contractRemoved" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "error" ; name : "AddressZeroError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "CancelledOrExecutedOfferError" ; inputs : readonly [ { name : "_lender" ; type : "address" ; internalType : "address" ; } , { name : "_offerId" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "CollectionNotWhitelistedError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "CurrencyNotWhitelistedError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "ECDSAInvalidSignature" ; inputs : readonly [ ] ; } , { type : "error" ; name : "ECDSAInvalidSignatureLength" ; inputs : readonly [ { name : "length" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "ECDSAInvalidSignatureS" ; inputs : readonly [ { name : "s" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; } , { type : "error" ; name : "ExpiredOfferError" ; inputs : readonly [ { name : "_expirationTime" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "InvalidAddressesError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidAmountError" ; inputs : readonly [ { name : "_amount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_principalAmount" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "InvalidCallbackError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidCallerError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidCollateralError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidCollateralIdError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidDurationError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidInputError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidLoanError" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "InvalidMethodError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidParametersError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidRenegotiationOfferError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidSignatureError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidTrancheError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "LiquidatorOnlyError" ; inputs : readonly [ { name : "_liquidator" ; type : "address" ; internalType : "address" ; } ] ; } , { type : "error" ; name : "LoanExpiredError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "LoanLockedError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "LoanNotDueError" ; inputs : readonly [ { name : "_expirationTime" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "MaxCapacityExceededError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "MismatchError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "MulticallFailed" ; inputs : readonly [ { name : "i" ; type : "uint256" ; internalType : "uint256" ; } , { name : "returndata" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { type : "error" ; name : "NFTNotReturnedError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "NotStrictlyImprovedError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "TooEarlyError" ; inputs : readonly [ { name : "_pendingProtocolFeeSetTime" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "TooManyTranchesError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "TooSoonError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "TrancheCannotBeRefinancedError" ; inputs : readonly [ { name : "minTimestamp" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "ZeroInterestError" ; inputs : readonly [ ] ; } ] | readonly [ { type : "constructor" ; inputs : readonly [ { name : "loanLiquidator" ; type : "address" ; internalType : "address" ; } , { name : "protocolFee" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "currencyManager" ; type : "address" ; internalType : "address" ; } , { name : "collectionManager" ; type : "address" ; internalType : "address" ; } , { name : "maxTranches" ; type : "uint256" ; internalType : "uint256" ; } , { name : "minLockPeriod" ; type : "uint256" ; internalType : "uint256" ; } , { name : "delegateRegistry" ; type : "address" ; internalType : "address" ; } , { name : "loanManagerRegistry" ; type : "address" ; internalType : "address" ; } , { name : "flashActionContract" ; type : "address" ; internalType : "address" ; } , { name : "minWaitTime" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "DOMAIN_SEPARATOR" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "FEE_UPDATE_NOTICE" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "INITIAL_DOMAIN_SEPARATOR" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "MAX_AUCTION_DURATION" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint48" ; internalType : "uint48" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "MIN_AUCTION_DURATION" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint48" ; internalType : "uint48" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "MIN_BID_LIQUIDATION" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "MIN_WAIT_TIME" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "VERSION" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes" ; internalType : "bytes" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "addNewTranche" ; inputs : readonly [ { name : "_renegotiationOffer" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.RenegotiationOffer" ; components : readonly [ { name : "renegotiationId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "trancheIndex" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "_renegotiationOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "addWhitelistedCallbackContract" ; inputs : readonly [ { name : "_contract" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "cancelOffer" ; inputs : readonly [ { name : "_offerId" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "cancelRenegotiationOffer" ; inputs : readonly [ { name : "_renegotiationId" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "delegate" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "_delegate" ; type : "address" ; internalType : "address" ; } , { name : "_rights" ; type : "bytes32" ; internalType : "bytes32" ; } , { name : "_value" ; type : "bool" ; internalType : "bool" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "emitLoan" ; inputs : readonly [ { name : "_loanExecutionData" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.LoanExecutionData" ; components : readonly [ { name : "executionData" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.ExecutionData" ; components : readonly [ { name : "offerExecution" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.OfferExecution[]" ; components : readonly [ { name : "offer" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.LoanOffer" ; components : readonly [ { name : "offerId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "capacity" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "maxSeniorRepayment" ; type : "uint256" ; internalType : "uint256" ; } , { name : "validators" ; type : "tuple[]" ; internalType : "struct IBaseLoan.OfferValidator[]" ; components : readonly [ { name : "validator" ; type : "address" ; internalType : "address" ; } , { name : "arguments" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } , { name : "borrower" ; type : "address" ; internalType : "address" ; } ] ; } , { name : "amount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "tokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalReceiver" ; type : "address" ; internalType : "address" ; } , { name : "callbackData" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "borrowerOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "executeFlashAction" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "_target" ; type : "address" ; internalType : "address" ; } , { name : "_data" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "getCollectionManager" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getCurrencyManager" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getDelegateRegistry" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getFlashActionContract" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getLiquidationAuctionDuration" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint48" ; internalType : "uint48" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getLiquidator" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getLoanHash" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getLoanManagerRegistry" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "contract ILoanManagerRegistry" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getMaxTranches" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getMinImprovementApr" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getMinLockPeriod" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getPendingProtocolFee" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getPendingProtocolFeeSetTime" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getProtocolFee" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getTotalLoansIssued" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getUsedCapacity" ; inputs : readonly [ { name : "_lender" ; type : "address" ; internalType : "address" ; } , { name : "_offerId" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "isOfferCancelled" ; inputs : readonly [ { name : "user" ; type : "address" ; internalType : "address" ; } , { name : "offerId" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ { name : "notActive" ; type : "bool" ; internalType : "bool" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "isRenegotiationOfferCancelled" ; inputs : readonly [ { name : "user" ; type : "address" ; internalType : "address" ; } , { name : "renegotiationIf" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ { name : "notActive" ; type : "bool" ; internalType : "bool" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "isWhitelistedCallbackContract" ; inputs : readonly [ { name : "_contract" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ { name : "" ; type : "bool" ; internalType : "bool" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "liquidateLoan" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } ] ; outputs : readonly [ { name : "" ; type : "bytes" ; internalType : "bytes" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "multicall" ; inputs : readonly [ { name : "data" ; type : "bytes[]" ; internalType : "bytes[]" ; } ] ; outputs : readonly [ { name : "results" ; type : "bytes[]" ; internalType : "bytes[]" ; } ] ; stateMutability : "payable" ; } , { type : "function" ; name : "name" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "string" ; internalType : "string" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "onERC721Received" ; inputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } , { name : "" ; type : "address" ; internalType : "address" ; } , { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "bytes4" ; internalType : "bytes4" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "owner" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "pendingOwner" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "pendingOwnerTime" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "refinanceFromLoanExecutionData" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "_loanExecutionData" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.LoanExecutionData" ; components : readonly [ { name : "executionData" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.ExecutionData" ; components : readonly [ { name : "offerExecution" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.OfferExecution[]" ; components : readonly [ { name : "offer" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.LoanOffer" ; components : readonly [ { name : "offerId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "capacity" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "maxSeniorRepayment" ; type : "uint256" ; internalType : "uint256" ; } , { name : "validators" ; type : "tuple[]" ; internalType : "struct IBaseLoan.OfferValidator[]" ; components : readonly [ { name : "validator" ; type : "address" ; internalType : "address" ; } , { name : "arguments" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } , { name : "borrower" ; type : "address" ; internalType : "address" ; } ] ; } , { name : "amount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "tokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalReceiver" ; type : "address" ; internalType : "address" ; } , { name : "callbackData" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "borrowerOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "refinanceFull" ; inputs : readonly [ { name : "_renegotiationOffer" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.RenegotiationOffer" ; components : readonly [ { name : "renegotiationId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "trancheIndex" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "_renegotiationOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "refinancePartial" ; inputs : readonly [ { name : "_renegotiationOffer" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.RenegotiationOffer" ; components : readonly [ { name : "renegotiationId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "trancheIndex" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "removeWhitelistedCallbackContract" ; inputs : readonly [ { name : "_contract" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "repayLoan" ; inputs : readonly [ { name : "_repaymentData" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.LoanRepaymentData" ; components : readonly [ { name : "data" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.SignableRepaymentData" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "callbackData" ; type : "bytes" ; internalType : "bytes" ; } , { name : "shouldDelegate" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "borrowerSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "requestTransferOwner" ; inputs : readonly [ { name : "_newOwner" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "revokeDelegate" ; inputs : readonly [ { name : "_delegate" ; type : "address" ; internalType : "address" ; } , { name : "_collection" ; type : "address" ; internalType : "address" ; } , { name : "_tokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_rights" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "setFlashActionContract" ; inputs : readonly [ { name : "_newFlashActionContract" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "setMinLockPeriod" ; inputs : readonly [ { name : "__minLockPeriod" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "setProtocolFee" ; inputs : readonly [ ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "transferOwnership" ; inputs : readonly [ ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "updateLiquidationAuctionDuration" ; inputs : readonly [ { name : "_newDuration" ; type : "uint48" ; internalType : "uint48" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "updateLiquidationContract" ; inputs : readonly [ { name : "__loanLiquidator" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "updateMinImprovementApr" ; inputs : readonly [ { name : "_newMinimum" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "updateProtocolFee" ; inputs : readonly [ { name : "_newProtocolFee" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "event" ; name : "Delegated" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "delegate" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "_rights" ; type : "bytes32" ; indexed : false ; internalType : "bytes32" ; } , { name : "value" ; type : "bool" ; indexed : false ; internalType : "bool" ; } ] ; anonymous : false ; } , { type : "event" ; name : "FlashActionContractUpdated" ; inputs : readonly [ { name : "newFlashActionContract" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "FlashActionExecuted" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "target" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "data" ; type : "bytes" ; indexed : false ; internalType : "bytes" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LiquidationAuctionDurationUpdated" ; inputs : readonly [ { name : "newDuration" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LiquidationContractUpdated" ; inputs : readonly [ { name : "liquidator" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanEmitted" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "offerId" ; type : "uint256[]" ; indexed : false ; internalType : "uint256[]" ; } , { name : "loan" ; type : "tuple" ; indexed : false ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "fee" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanForeclosed" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanLiquidated" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "foreclosed" ; type : "bool" ; indexed : false ; internalType : "bool" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanRefinanced" ; inputs : readonly [ { name : "renegotiationId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "oldLoanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "newLoanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "loan" ; type : "tuple" ; indexed : false ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "fee" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanRefinancedFromNewOffers" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "newLoanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "loan" ; type : "tuple" ; indexed : false ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "offerIds" ; type : "uint256[]" ; indexed : false ; internalType : "uint256[]" ; } , { name : "totalFee" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanRepaid" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "totalRepayment" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "fee" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanSentToLiquidator" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "liquidator" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "MinAprImprovementUpdated" ; inputs : readonly [ { name : "_minimum" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "MinBidLiquidationUpdated" ; inputs : readonly [ { name : "newMinBid" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "MinLockPeriodUpdated" ; inputs : readonly [ { name : "minLockPeriod" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "OfferCancelled" ; inputs : readonly [ { name : "lender" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "offerId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "OwnershipTransferred" ; inputs : readonly [ { name : "user" ; type : "address" ; indexed : true ; internalType : "address" ; } , { name : "newOwner" ; type : "address" ; indexed : true ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "ProtocolFeePendingUpdate" ; inputs : readonly [ { name : "fee" ; type : "tuple" ; indexed : false ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; anonymous : false ; } , { type : "event" ; name : "ProtocolFeeUpdated" ; inputs : readonly [ { name : "fee" ; type : "tuple" ; indexed : false ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; anonymous : false ; } , { type : "event" ; name : "RenegotiationOfferCancelled" ; inputs : readonly [ { name : "lender" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "renegotiationId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "RevokeDelegate" ; inputs : readonly [ { name : "delegate" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "collection" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "tokenId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "_rights" ; type : "bytes32" ; indexed : false ; internalType : "bytes32" ; } ] ; anonymous : false ; } , { type : "event" ; name : "TransferOwnerRequested" ; inputs : readonly [ { name : "newOwner" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "WhitelistedCallbackContractAdded" ; inputs : readonly [ { name : "contractAdded" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "WhitelistedCallbackContractRemoved" ; inputs : readonly [ { name : "contractRemoved" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "error" ; name : "AddressZeroError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "CancelledOrExecutedOfferError" ; inputs : readonly [ { name : "_lender" ; type : "address" ; internalType : "address" ; } , { name : "_offerId" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "CollectionNotWhitelistedError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "CurrencyNotWhitelistedError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "ECDSAInvalidSignature" ; inputs : readonly [ ] ; } , { type : "error" ; name : "ECDSAInvalidSignatureLength" ; inputs : readonly [ { name : "length" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "ECDSAInvalidSignatureS" ; inputs : readonly [ { name : "s" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; } , { type : "error" ; name : "ExpiredOfferError" ; inputs : readonly [ { name : "_expirationTime" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "InvalidAddressesError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidAmountError" ; inputs : readonly [ { name : "_amount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_principalAmount" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "InvalidBorrowerError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidCallbackError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidCallerError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidCollateralError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidCollateralIdError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidDurationError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidInputError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidLoanError" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "InvalidLockPeriodError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidMethodError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidRenegotiationOfferError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidSignatureError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidTrancheError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "LenderRefinanceDisabledError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "LoanExpiredError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "LoanLockedError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "LoanNotDueError" ; inputs : readonly [ { name : "_expirationTime" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "MaxCapacityExceededError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "MulticallFailed" ; inputs : readonly [ { name : "i" ; type : "uint256" ; internalType : "uint256" ; } , { name : "returndata" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { type : "error" ; name : "NFTNotReturnedError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "NotStrictlyImprovedError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "TooEarlyError" ; inputs : readonly [ { name : "_pendingProtocolFeeSetTime" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "TooManyTranchesError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "TooSoonError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "TrancheCannotBeRefinancedError" ; inputs : readonly [ { name : "minTimestamp" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "ZeroInterestError" ; inputs : readonly [ ] ; } ] , TFunctionName , true , TFunctionName extends ( "OwnershipTransferred" | "AllOffersCancelled" | "LiquidationAuctionDurationUpdated" | "LiquidationContractUpdated" | "LoanForeclosed" | "LoanLiquidated" | "LoanSentToLiquidator" | "OfferCancelled" | "ProtocolFeePendingUpdate" | "ProtocolFeeUpdated" | "RenegotiationOfferCancelled" | "RevokeDelegate" | "Delegated" | "FlashActionContractUpdated" | "FlashActionExecuted" | "LoanEmitted" | "LoanRefinanced" | "LoanRepaid" | "MinLockPeriodUpdated" | "WhitelistedCallbackContractAdded" | "WhitelistedCallbackContractRemoved" | "MinAprImprovementUpdated" | "MinBidLiquidationUpdated" | "TransferOwnerRequested" | "LoanRefinancedFromNewOffers" ) [] ? TFunctionName [ number ] : TFunctionName > )
Type declaration
< TFunctionName > ( eventName , logs ) : ParseEventLogsReturnType < readonly [ { inputs : readonly [ { internalType : "address" ; name : "loanLiquidator" ; type : "address" ; } , { components : readonly [ { internalType : "address" ; name : "recipient" ; type : "address" ; } , { internalType : "uint256" ; name : "fraction" ; type : "uint256" ; } ] ; internalType : "struct WithProtocolFee.ProtocolFee" ; name : "protocolFee" ; type : "tuple" ; } , { internalType : "address" ; name : "currencyManager" ; type : "address" ; } , { internalType : "address" ; name : "collectionManager" ; type : "address" ; } , { internalType : "uint256" ; name : "maxTranches" ; type : "uint256" ; } , { internalType : "uint256" ; name : "minLockPeriod" ; type : "uint256" ; } , { internalType : "address" ; name : "delegateRegistry" ; type : "address" ; } , { internalType : "address" ; name : "loanManagerRegistry" ; type : "address" ; } , { internalType : "address" ; name : "flashActionContract" ; type : "address" ; } , { internalType : "uint256" ; name : "minWaitTime" ; type : "uint256" ; } ] ; stateMutability : "nonpayable" ; type : "constructor" ; } , { inputs : readonly [ ] ; name : "DOMAIN_SEPARATOR" ; outputs : readonly [ { internalType : "bytes32" ; name : "" ; type : "bytes32" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "FEE_UPDATE_NOTICE" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "INITIAL_DOMAIN_SEPARATOR" ; outputs : readonly [ { internalType : "bytes32" ; name : "" ; type : "bytes32" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "MAX_AUCTION_DURATION" ; outputs : readonly [ { internalType : "uint48" ; name : "" ; type : "uint48" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "MIN_AUCTION_DURATION" ; outputs : readonly [ { internalType : "uint48" ; name : "" ; type : "uint48" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "MIN_BID_LIQUIDATION" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "MIN_WAIT_TIME" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "VERSION" ; outputs : readonly [ { internalType : "bytes" ; name : "" ; type : "bytes" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ { components : readonly [ { internalType : "uint256" ; name : "renegotiationId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "fee" ; type : "uint256" ; } , { internalType : "uint256[]" ; name : "trancheIndex" ; type : "uint256[]" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } , { internalType : "uint256" ; name : "expirationTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.RenegotiationOffer" ; name : "_renegotiationOffer" ; type : "tuple" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "_loan" ; type : "tuple" ; } , { internalType : "bytes" ; name : "_renegotiationOfferSignature" ; type : "bytes" ; } ] ; name : "addNewTranche" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "" ; type : "tuple" ; } ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "_contract" ; type : "address" ; } ] ; name : "addWhitelistedCallbackContract" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_minOfferId" ; type : "uint256" ; } ] ; name : "cancelAllOffers" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_offerId" ; type : "uint256" ; } ] ; name : "cancelOffer" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_renegotiationId" ; type : "uint256" ; } ] ; name : "cancelRenegotiationOffer" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_loanId" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "loan" ; type : "tuple" ; } , { internalType : "address" ; name : "_delegate" ; type : "address" ; } , { internalType : "bytes32" ; name : "_rights" ; type : "bytes32" ; } , { internalType : "bool" ; name : "_value" ; type : "bool" ; } ] ; name : "delegate" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { components : readonly [ { components : readonly [ { components : readonly [ { components : readonly [ { internalType : "uint256" ; name : "offerId" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "fee" ; type : "uint256" ; } , { internalType : "uint256" ; name : "capacity" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } , { internalType : "uint256" ; name : "expirationTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { internalType : "uint256" ; name : "maxSeniorRepayment" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "validator" ; type : "address" ; } , { internalType : "bytes" ; name : "arguments" ; type : "bytes" ; } ] ; internalType : "struct IBaseLoan.OfferValidator[]" ; name : "validators" ; type : "tuple[]" ; } ] ; internalType : "struct IMultiSourceLoan.LoanOffer" ; name : "offer" ; type : "tuple" ; } , { internalType : "uint256" ; name : "amount" ; type : "uint256" ; } , { internalType : "bytes" ; name : "lenderOfferSignature" ; type : "bytes" ; } ] ; internalType : "struct IMultiSourceLoan.OfferExecution[]" ; name : "offerExecution" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "tokenId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { internalType : "uint256" ; name : "expirationTime" ; type : "uint256" ; } , { internalType : "address" ; name : "principalReceiver" ; type : "address" ; } , { internalType : "bytes" ; name : "callbackData" ; type : "bytes" ; } ] ; internalType : "struct IMultiSourceLoan.ExecutionData" ; name : "executionData" ; type : "tuple" ; } , { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "bytes" ; name : "borrowerOfferSignature" ; type : "bytes" ; } ] ; internalType : "struct IMultiSourceLoan.LoanExecutionData" ; name : "_loanExecutionData" ; type : "tuple" ; } ] ; name : "emitLoan" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "" ; type : "tuple" ; } ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_loanId" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "_loan" ; type : "tuple" ; } , { internalType : "address" ; name : "_target" ; type : "address" ; } , { internalType : "bytes" ; name : "_data" ; type : "bytes" ; } ] ; name : "executeFlashAction" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getCollectionManager" ; outputs : readonly [ { internalType : "address" ; name : "" ; type : "address" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getCurrencyManager" ; outputs : readonly [ { internalType : "address" ; name : "" ; type : "address" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getDelegateRegistry" ; outputs : readonly [ { internalType : "address" ; name : "" ; type : "address" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getFlashActionContract" ; outputs : readonly [ { internalType : "address" ; name : "" ; type : "address" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getLiquidationAuctionDuration" ; outputs : readonly [ { internalType : "uint48" ; name : "" ; type : "uint48" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getLiquidator" ; outputs : readonly [ { internalType : "address" ; name : "" ; type : "address" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_loanId" ; type : "uint256" ; } ] ; name : "getLoanHash" ; outputs : readonly [ { internalType : "bytes32" ; name : "" ; type : "bytes32" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getLoanManagerRegistry" ; outputs : readonly [ { internalType : "contract ILoanManagerRegistry" ; name : "" ; type : "address" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getMaxTranches" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getMinImprovementApr" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getMinLockPeriod" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getPendingProtocolFee" ; outputs : readonly [ { components : readonly [ { internalType : "address" ; name : "recipient" ; type : "address" ; } , { internalType : "uint256" ; name : "fraction" ; type : "uint256" ; } ] ; internalType : "struct WithProtocolFee.ProtocolFee" ; name : "" ; type : "tuple" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getPendingProtocolFeeSetTime" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getProtocolFee" ; outputs : readonly [ { components : readonly [ { internalType : "address" ; name : "recipient" ; type : "address" ; } , { internalType : "uint256" ; name : "fraction" ; type : "uint256" ; } ] ; internalType : "struct WithProtocolFee.ProtocolFee" ; name : "" ; type : "tuple" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getTotalLoansIssued" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "_lender" ; type : "address" ; } , { internalType : "uint256" ; name : "_offerId" ; type : "uint256" ; } ] ; name : "getUsedCapacity" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "user" ; type : "address" ; } , { internalType : "uint256" ; name : "offerId" ; type : "uint256" ; } ] ; name : "isOfferCancelled" ; outputs : readonly [ { internalType : "bool" ; name : "notActive" ; type : "bool" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "user" ; type : "address" ; } , { internalType : "uint256" ; name : "renegotiationIf" ; type : "uint256" ; } ] ; name : "isRenegotiationOfferCancelled" ; outputs : readonly [ { internalType : "bool" ; name : "notActive" ; type : "bool" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "_contract" ; type : "address" ; } ] ; name : "isWhitelistedCallbackContract" ; outputs : readonly [ { internalType : "bool" ; name : "" ; type : "bool" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_loanId" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "_loan" ; type : "tuple" ; } ] ; name : "liquidateLoan" ; outputs : readonly [ { internalType : "bytes" ; name : "" ; type : "bytes" ; } ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_loanId" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "_loan" ; type : "tuple" ; } ] ; name : "loanLiquidated" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "user" ; type : "address" ; } ] ; name : "minOfferId" ; outputs : readonly [ { internalType : "uint256" ; name : "minOfferId" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ { internalType : "bytes[]" ; name : "data" ; type : "bytes[]" ; } ] ; name : "multicall" ; outputs : readonly [ { internalType : "bytes[]" ; name : "results" ; type : "bytes[]" ; } ] ; stateMutability : "payable" ; type : "function" ; } , { inputs : readonly [ ] ; name : "name" ; outputs : readonly [ { internalType : "string" ; name : "" ; type : "string" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "" ; type : "address" ; } , { internalType : "address" ; name : "" ; type : "address" ; } , { internalType : "uint256" ; name : "" ; type : "uint256" ; } , { internalType : "bytes" ; name : "" ; type : "bytes" ; } ] ; name : "onERC721Received" ; outputs : readonly [ { internalType : "bytes4" ; name : "" ; type : "bytes4" ; } ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ ] ; name : "owner" ; outputs : readonly [ { internalType : "address" ; name : "" ; type : "address" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "pendingOwner" ; outputs : readonly [ { internalType : "address" ; name : "" ; type : "address" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "pendingOwnerTime" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_loanId" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "_loan" ; type : "tuple" ; } , { components : readonly [ { components : readonly [ { components : readonly [ { components : readonly [ { internalType : "uint256" ; name : "offerId" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "fee" ; type : "uint256" ; } , { internalType : "uint256" ; name : "capacity" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } , { internalType : "uint256" ; name : "expirationTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { internalType : "uint256" ; name : "maxSeniorRepayment" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "validator" ; type : "address" ; } , { internalType : "bytes" ; name : "arguments" ; type : "bytes" ; } ] ; internalType : "struct IBaseLoan.OfferValidator[]" ; name : "validators" ; type : "tuple[]" ; } ] ; internalType : "struct IMultiSourceLoan.LoanOffer" ; name : "offer" ; type : "tuple" ; } , { internalType : "uint256" ; name : "amount" ; type : "uint256" ; } , { internalType : "bytes" ; name : "lenderOfferSignature" ; type : "bytes" ; } ] ; internalType : "struct IMultiSourceLoan.OfferExecution[]" ; name : "offerExecution" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "tokenId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { internalType : "uint256" ; name : "expirationTime" ; type : "uint256" ; } , { internalType : "address" ; name : "principalReceiver" ; type : "address" ; } , { internalType : "bytes" ; name : "callbackData" ; type : "bytes" ; } ] ; internalType : "struct IMultiSourceLoan.ExecutionData" ; name : "executionData" ; type : "tuple" ; } , { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "bytes" ; name : "borrowerOfferSignature" ; type : "bytes" ; } ] ; internalType : "struct IMultiSourceLoan.LoanExecutionData" ; name : "_loanExecutionData" ; type : "tuple" ; } ] ; name : "refinanceFromLoanExecutionData" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "" ; type : "tuple" ; } ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { components : readonly [ { internalType : "uint256" ; name : "renegotiationId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "fee" ; type : "uint256" ; } , { internalType : "uint256[]" ; name : "trancheIndex" ; type : "uint256[]" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } , { internalType : "uint256" ; name : "expirationTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.RenegotiationOffer" ; name : "_renegotiationOffer" ; type : "tuple" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "_loan" ; type : "tuple" ; } , { internalType : "bytes" ; name : "_renegotiationOfferSignature" ; type : "bytes" ; } ] ; name : "refinanceFull" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "" ; type : "tuple" ; } ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { components : readonly [ { internalType : "uint256" ; name : "renegotiationId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "fee" ; type : "uint256" ; } , { internalType : "uint256[]" ; name : "trancheIndex" ; type : "uint256[]" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } , { internalType : "uint256" ; name : "expirationTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.RenegotiationOffer" ; name : "_renegotiationOffer" ; type : "tuple" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "_loan" ; type : "tuple" ; } ] ; name : "refinancePartial" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "" ; type : "tuple" ; } ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "_contract" ; type : "address" ; } ] ; name : "removeWhitelistedCallbackContract" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { components : readonly [ { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "bytes" ; name : "callbackData" ; type : "bytes" ; } , { internalType : "bool" ; name : "shouldDelegate" ; type : "bool" ; } ] ; internalType : "struct IMultiSourceLoan.SignableRepaymentData" ; name : "data" ; type : "tuple" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "loan" ; type : "tuple" ; } , { internalType : "bytes" ; name : "borrowerSignature" ; type : "bytes" ; } ] ; internalType : "struct IMultiSourceLoan.LoanRepaymentData" ; name : "_repaymentData" ; type : "tuple" ; } ] ; name : "repayLoan" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "_newOwner" ; type : "address" ; } ] ; name : "requestTransferOwner" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "_delegate" ; type : "address" ; } , { internalType : "address" ; name : "_collection" ; type : "address" ; } , { internalType : "uint256" ; name : "_tokenId" ; type : "uint256" ; } , { internalType : "bytes32" ; name : "_rights" ; type : "bytes32" ; } ] ; name : "revokeDelegate" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "_newFlashActionContract" ; type : "address" ; } ] ; name : "setFlashActionContract" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "__minLockPeriod" ; type : "uint256" ; } ] ; name : "setMinLockPeriod" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ ] ; name : "setProtocolFee" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ ] ; name : "transferOwnership" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "newOwner" ; type : "address" ; } ] ; name : "transferOwnership" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint48" ; name : "_newDuration" ; type : "uint48" ; } ] ; name : "updateLiquidationAuctionDuration" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "__loanLiquidator" ; type : "address" ; } ] ; name : "updateLiquidationContract" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_newMinimum" ; type : "uint256" ; } ] ; name : "updateMinImprovementApr" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { components : readonly [ { internalType : "address" ; name : "recipient" ; type : "address" ; } , { internalType : "uint256" ; name : "fraction" ; type : "uint256" ; } ] ; internalType : "struct WithProtocolFee.ProtocolFee" ; name : "_newProtocolFee" ; type : "tuple" ; } ] ; name : "updateProtocolFee" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "address" ; name : "lender" ; type : "address" ; } , { indexed : false ; internalType : "uint256" ; name : "minOfferId" ; type : "uint256" ; } ] ; name : "AllOffersCancelled" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { indexed : false ; internalType : "address" ; name : "delegate" ; type : "address" ; } , { indexed : false ; internalType : "bytes32" ; name : "_rights" ; type : "bytes32" ; } , { indexed : false ; internalType : "bool" ; name : "value" ; type : "bool" ; } ] ; name : "Delegated" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "address" ; name : "newFlashActionContract" ; type : "address" ; } ] ; name : "FlashActionContractUpdated" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { indexed : false ; internalType : "address" ; name : "target" ; type : "address" ; } , { indexed : false ; internalType : "bytes" ; name : "data" ; type : "bytes" ; } ] ; name : "FlashActionExecuted" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "newDuration" ; type : "uint256" ; } ] ; name : "LiquidationAuctionDurationUpdated" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "address" ; name : "liquidator" ; type : "address" ; } ] ; name : "LiquidationContractUpdated" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { indexed : false ; internalType : "uint256[]" ; name : "offerId" ; type : "uint256[]" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; indexed : false ; internalType : "struct IMultiSourceLoan.Loan" ; name : "loan" ; type : "tuple" ; } , { indexed : false ; internalType : "uint256" ; name : "fee" ; type : "uint256" ; } ] ; name : "LoanEmitted" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } ] ; name : "LoanForeclosed" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } ] ; name : "LoanLiquidated" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "renegotiationId" ; type : "uint256" ; } , { indexed : false ; internalType : "uint256" ; name : "oldLoanId" ; type : "uint256" ; } , { indexed : false ; internalType : "uint256" ; name : "newLoanId" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; indexed : false ; internalType : "struct IMultiSourceLoan.Loan" ; name : "loan" ; type : "tuple" ; } , { indexed : false ; internalType : "uint256" ; name : "fee" ; type : "uint256" ; } ] ; name : "LoanRefinanced" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { indexed : false ; internalType : "uint256" ; name : "newLoanId" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; indexed : false ; internalType : "struct IMultiSourceLoan.Loan" ; name : "loan" ; type : "tuple" ; } , { indexed : false ; internalType : "uint256[]" ; name : "offerIds" ; type : "uint256[]" ; } , { indexed : false ; internalType : "uint256" ; name : "totalFee" ; type : "uint256" ; } ] ; name : "LoanRefinancedFromNewOffers" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { indexed : false ; internalType : "uint256" ; name : "totalRepayment" ; type : "uint256" ; } , { indexed : false ; internalType : "uint256" ; name : "fee" ; type : "uint256" ; } ] ; name : "LoanRepaid" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { indexed : false ; internalType : "address" ; name : "liquidator" ; type : "address" ; } ] ; name : "LoanSentToLiquidator" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "_minimum" ; type : "uint256" ; } ] ; name : "MinAprImprovementUpdated" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "newMinBid" ; type : "uint256" ; } ] ; name : "MinBidLiquidationUpdated" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "minLockPeriod" ; type : "uint256" ; } ] ; name : "MinLockPeriodUpdated" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "address" ; name : "lender" ; type : "address" ; } , { indexed : false ; internalType : "uint256" ; name : "offerId" ; type : "uint256" ; } ] ; name : "OfferCancelled" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : true ; internalType : "address" ; name : "user" ; type : "address" ; } , { indexed : true ; internalType : "address" ; name : "newOwner" ; type : "address" ; } ] ; name : "OwnershipTransferred" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { components : readonly [ { internalType : "address" ; name : "recipient" ; type : "address" ; } , { internalType : "uint256" ; name : "fraction" ; type : "uint256" ; } ] ; indexed : false ; internalType : "struct WithProtocolFee.ProtocolFee" ; name : "fee" ; type : "tuple" ; } ] ; name : "ProtocolFeePendingUpdate" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { components : readonly [ { internalType : "address" ; name : "recipient" ; type : "address" ; } , { internalType : "uint256" ; name : "fraction" ; type : "uint256" ; } ] ; indexed : false ; internalType : "struct WithProtocolFee.ProtocolFee" ; name : "fee" ; type : "tuple" ; } ] ; name : "ProtocolFeeUpdated" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "address" ; name : "lender" ; type : "address" ; } , { indexed : false ; internalType : "uint256" ; name : "renegotiationId" ; type : "uint256" ; } ] ; name : "RenegotiationOfferCancelled" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "address" ; name : "delegate" ; type : "address" ; } , { indexed : false ; internalType : "address" ; name : "collection" ; type : "address" ; } , { indexed : false ; internalType : "uint256" ; name : "tokenId" ; type : "uint256" ; } , { indexed : false ; internalType : "bytes32" ; name : "_rights" ; type : "bytes32" ; } ] ; name : "RevokeDelegate" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "address" ; name : "newOwner" ; type : "address" ; } ] ; name : "TransferOwnerRequested" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "address" ; name : "contractAdded" ; type : "address" ; } ] ; name : "WhitelistedCallbackContractAdded" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "address" ; name : "contractRemoved" ; type : "address" ; } ] ; name : "WhitelistedCallbackContractRemoved" ; type : "event" ; } , { inputs : readonly [ ] ; name : "AddressZeroError" ; type : "error" ; } , { inputs : readonly [ { internalType : "address" ; name : "_lender" ; type : "address" ; } , { internalType : "uint256" ; name : "_offerId" ; type : "uint256" ; } ] ; name : "CancelledOrExecutedOfferError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "CollectionNotWhitelistedError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "CurrencyNotWhitelistedError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "ECDSAInvalidSignature" ; type : "error" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "length" ; type : "uint256" ; } ] ; name : "ECDSAInvalidSignatureLength" ; type : "error" ; } , { inputs : readonly [ { internalType : "bytes32" ; name : "s" ; type : "bytes32" ; } ] ; name : "ECDSAInvalidSignatureS" ; type : "error" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_expirationTime" ; type : "uint256" ; } ] ; name : "ExpiredOfferError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidAddressesError" ; type : "error" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_amount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "_principalAmount" ; type : "uint256" ; } ] ; name : "InvalidAmountError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidCallbackError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidCallerError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidCollateralIdError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidDurationError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidInputError" ; type : "error" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_loanId" ; type : "uint256" ; } ] ; name : "InvalidLoanError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidMethodError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidParametersError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidRenegotiationOfferError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidSignatureError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidTrancheError" ; type : "error" ; } , { inputs : readonly [ { internalType : "address" ; name : "_liquidator" ; type : "address" ; } ] ; name : "LiquidatorOnlyError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "LoanExpiredError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "LoanLockedError" ; type : "error" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_expirationTime" ; type : "uint256" ; } ] ; name : "LoanNotDueError" ; type : "error" ; } , { inputs : readonly [ { internalType : "address" ; name : "_lender" ; type : "address" ; } , { internalType : "uint256" ; name : "_newMinOfferId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "_minOfferId" ; type : "uint256" ; } ] ; name : "LowOfferIdError" ; type : "error" ; } , { inputs : readonly [ { internalType : "address" ; name : "_lender" ; type : "address" ; } , { internalType : "uint256" ; name : "_newMinRenegotiationOfferId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "_minOfferId" ; type : "uint256" ; } ] ; name : "LowRenegotiationOfferIdError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "MaxCapacityExceededError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "MismatchError" ; type : "error" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "i" ; type : "uint256" ; } , { internalType : "bytes" ; name : "returndata" ; type : "bytes" ; } ] ; name : "MulticallFailed" ; type : "error" ; } , { inputs : readonly [ ] ; name : "NFTNotReturnedError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "NotStrictlyImprovedError" ; type : "error" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_pendingProtocolFeeSetTime" ; type : "uint256" ; } ] ; name : "TooEarlyError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "TooManyTranchesError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "TooSoonError" ; type : "error" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "minTimestamp" ; type : "uint256" ; } ] ; name : "TrancheCannotBeRefinancedError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "ZeroInterestError" ; type : "error" ; } ] | readonly [ { type : "constructor" ; inputs : readonly [ { name : "loanLiquidator" ; type : "address" ; internalType : "address" ; } , { name : "protocolFee" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "currencyManager" ; type : "address" ; internalType : "address" ; } , { name : "collectionManager" ; type : "address" ; internalType : "address" ; } , { name : "maxTranches" ; type : "uint256" ; internalType : "uint256" ; } , { name : "minLockPeriod" ; type : "uint256" ; internalType : "uint256" ; } , { name : "delegateRegistry" ; type : "address" ; internalType : "address" ; } , { name : "loanManagerRegistry" ; type : "address" ; internalType : "address" ; } , { name : "flashActionContract" ; type : "address" ; internalType : "address" ; } , { name : "minWaitTime" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "DOMAIN_SEPARATOR" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "FEE_UPDATE_NOTICE" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "INITIAL_DOMAIN_SEPARATOR" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "MAX_AUCTION_DURATION" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint48" ; internalType : "uint48" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "MIN_AUCTION_DURATION" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint48" ; internalType : "uint48" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "MIN_BID_LIQUIDATION" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "MIN_WAIT_TIME" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "VERSION" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes" ; internalType : "bytes" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "addNewTranche" ; inputs : readonly [ { name : "_renegotiationOffer" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.RenegotiationOffer" ; components : readonly [ { name : "renegotiationId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "trancheIndex" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_renegotiationOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "addWhitelistedCallbackContract" ; inputs : readonly [ { name : "_contract" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "cancelOffer" ; inputs : readonly [ { name : "_offerId" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "cancelRenegotiationOffer" ; inputs : readonly [ { name : "_renegotiationId" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "delegate" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_delegate" ; type : "address" ; internalType : "address" ; } , { name : "_rights" ; type : "bytes32" ; internalType : "bytes32" ; } , { name : "_value" ; type : "bool" ; internalType : "bool" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "emitLoan" ; inputs : readonly [ { name : "_loanExecutionData" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.LoanExecutionData" ; components : readonly [ { name : "executionData" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.ExecutionData" ; components : readonly [ { name : "offerExecution" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.OfferExecution[]" ; components : readonly [ { name : "offer" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.LoanOffer" ; components : readonly [ { name : "offerId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "capacity" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "maxSeniorRepayment" ; type : "uint256" ; internalType : "uint256" ; } , { name : "validators" ; type : "tuple[]" ; internalType : "struct IBaseLoan.OfferValidator[]" ; components : readonly [ { name : "validator" ; type : "address" ; internalType : "address" ; } , { name : "arguments" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; } , { name : "amount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "tokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalReceiver" ; type : "address" ; internalType : "address" ; } , { name : "callbackData" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "borrowerOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "executeFlashAction" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_target" ; type : "address" ; internalType : "address" ; } , { name : "_data" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "getCollectionManager" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getCurrencyManager" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getDelegateRegistry" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getFlashActionContract" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getLiquidationAuctionDuration" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint48" ; internalType : "uint48" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getLiquidator" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getLoanHash" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getLoanManagerRegistry" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "contract ILoanManagerRegistry" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getMaxTranches" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getMinImprovementApr" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getMinLockPeriod" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getPendingProtocolFee" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getPendingProtocolFeeSetTime" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getProtocolFee" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getTotalLoansIssued" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getUsedCapacity" ; inputs : readonly [ { name : "_lender" ; type : "address" ; internalType : "address" ; } , { name : "_offerId" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "isOfferCancelled" ; inputs : readonly [ { name : "user" ; type : "address" ; internalType : "address" ; } , { name : "offerId" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ { name : "notActive" ; type : "bool" ; internalType : "bool" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "isRenegotiationOfferCancelled" ; inputs : readonly [ { name : "user" ; type : "address" ; internalType : "address" ; } , { name : "renegotiationIf" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ { name : "notActive" ; type : "bool" ; internalType : "bool" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "isWhitelistedCallbackContract" ; inputs : readonly [ { name : "_contract" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ { name : "" ; type : "bool" ; internalType : "bool" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "liquidateLoan" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; outputs : readonly [ { name : "" ; type : "bytes" ; internalType : "bytes" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "loanLiquidated" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "multicall" ; inputs : readonly [ { name : "data" ; type : "bytes[]" ; internalType : "bytes[]" ; } ] ; outputs : readonly [ { name : "results" ; type : "bytes[]" ; internalType : "bytes[]" ; } ] ; stateMutability : "payable" ; } , { type : "function" ; name : "name" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "string" ; internalType : "string" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "onERC721Received" ; inputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } , { name : "" ; type : "address" ; internalType : "address" ; } , { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "bytes4" ; internalType : "bytes4" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "owner" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "pendingOwner" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "pendingOwnerTime" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "refinanceFromLoanExecutionData" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_loanExecutionData" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.LoanExecutionData" ; components : readonly [ { name : "executionData" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.ExecutionData" ; components : readonly [ { name : "offerExecution" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.OfferExecution[]" ; components : readonly [ { name : "offer" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.LoanOffer" ; components : readonly [ { name : "offerId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "capacity" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "maxSeniorRepayment" ; type : "uint256" ; internalType : "uint256" ; } , { name : "validators" ; type : "tuple[]" ; internalType : "struct IBaseLoan.OfferValidator[]" ; components : readonly [ { name : "validator" ; type : "address" ; internalType : "address" ; } , { name : "arguments" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; } , { name : "amount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "tokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalReceiver" ; type : "address" ; internalType : "address" ; } , { name : "callbackData" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "borrowerOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "refinanceFull" ; inputs : readonly [ { name : "_renegotiationOffer" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.RenegotiationOffer" ; components : readonly [ { name : "renegotiationId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "trancheIndex" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_renegotiationOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "refinancePartial" ; inputs : readonly [ { name : "_renegotiationOffer" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.RenegotiationOffer" ; components : readonly [ { name : "renegotiationId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "trancheIndex" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "removeWhitelistedCallbackContract" ; inputs : readonly [ { name : "_contract" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "repayLoan" ; inputs : readonly [ { name : "_repaymentData" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.LoanRepaymentData" ; components : readonly [ { name : "data" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.SignableRepaymentData" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "callbackData" ; type : "bytes" ; internalType : "bytes" ; } , { name : "shouldDelegate" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "borrowerSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "requestTransferOwner" ; inputs : readonly [ { name : "_newOwner" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "revokeDelegate" ; inputs : readonly [ { name : "_delegate" ; type : "address" ; internalType : "address" ; } , { name : "_collection" ; type : "address" ; internalType : "address" ; } , { name : "_tokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_rights" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "setFlashActionContract" ; inputs : readonly [ { name : "_newFlashActionContract" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "setMinLockPeriod" ; inputs : readonly [ { name : "__minLockPeriod" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "setProtocolFee" ; inputs : readonly [ ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "transferOwnership" ; inputs : readonly [ ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "transferOwnership" ; inputs : readonly [ { name : "newOwner" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "updateLiquidationAuctionDuration" ; inputs : readonly [ { name : "_newDuration" ; type : "uint48" ; internalType : "uint48" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "updateLiquidationContract" ; inputs : readonly [ { name : "__loanLiquidator" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "updateMinImprovementApr" ; inputs : readonly [ { name : "_newMinimum" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "updateProtocolFee" ; inputs : readonly [ { name : "_newProtocolFee" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "event" ; name : "Delegated" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "delegate" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "_rights" ; type : "bytes32" ; indexed : false ; internalType : "bytes32" ; } , { name : "value" ; type : "bool" ; indexed : false ; internalType : "bool" ; } ] ; anonymous : false ; } , { type : "event" ; name : "FlashActionContractUpdated" ; inputs : readonly [ { name : "newFlashActionContract" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "FlashActionExecuted" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "target" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "data" ; type : "bytes" ; indexed : false ; internalType : "bytes" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LiquidationAuctionDurationUpdated" ; inputs : readonly [ { name : "newDuration" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LiquidationContractUpdated" ; inputs : readonly [ { name : "liquidator" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanEmitted" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "offerId" ; type : "uint256[]" ; indexed : false ; internalType : "uint256[]" ; } , { name : "loan" ; type : "tuple" ; indexed : false ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "fee" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanForeclosed" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanLiquidated" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanRefinanced" ; inputs : readonly [ { name : "renegotiationId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "oldLoanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "newLoanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "loan" ; type : "tuple" ; indexed : false ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "fee" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanRefinancedFromNewOffers" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "newLoanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "loan" ; type : "tuple" ; indexed : false ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "offerIds" ; type : "uint256[]" ; indexed : false ; internalType : "uint256[]" ; } , { name : "totalFee" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanRepaid" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "totalRepayment" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "fee" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanSentToLiquidator" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "liquidator" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "MinAprImprovementUpdated" ; inputs : readonly [ { name : "_minimum" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "MinBidLiquidationUpdated" ; inputs : readonly [ { name : "newMinBid" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "MinLockPeriodUpdated" ; inputs : readonly [ { name : "minLockPeriod" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "OfferCancelled" ; inputs : readonly [ { name : "lender" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "offerId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "OwnershipTransferred" ; inputs : readonly [ { name : "user" ; type : "address" ; indexed : true ; internalType : "address" ; } , { name : "newOwner" ; type : "address" ; indexed : true ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "ProtocolFeePendingUpdate" ; inputs : readonly [ { name : "fee" ; type : "tuple" ; indexed : false ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; anonymous : false ; } , { type : "event" ; name : "ProtocolFeeUpdated" ; inputs : readonly [ { name : "fee" ; type : "tuple" ; indexed : false ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; anonymous : false ; } , { type : "event" ; name : "RenegotiationOfferCancelled" ; inputs : readonly [ { name : "lender" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "renegotiationId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "RevokeDelegate" ; inputs : readonly [ { name : "delegate" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "collection" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "tokenId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "_rights" ; type : "bytes32" ; indexed : false ; internalType : "bytes32" ; } ] ; anonymous : false ; } , { type : "event" ; name : "TransferOwnerRequested" ; inputs : readonly [ { name : "newOwner" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "WhitelistedCallbackContractAdded" ; inputs : readonly [ { name : "contractAdded" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "WhitelistedCallbackContractRemoved" ; inputs : readonly [ { name : "contractRemoved" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "error" ; name : "AddressZeroError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "CancelledOrExecutedOfferError" ; inputs : readonly [ { name : "_lender" ; type : "address" ; internalType : "address" ; } , { name : "_offerId" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "CollectionNotWhitelistedError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "CurrencyNotWhitelistedError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "ECDSAInvalidSignature" ; inputs : readonly [ ] ; } , { type : "error" ; name : "ECDSAInvalidSignatureLength" ; inputs : readonly [ { name : "length" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "ECDSAInvalidSignatureS" ; inputs : readonly [ { name : "s" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; } , { type : "error" ; name : "ExpiredOfferError" ; inputs : readonly [ { name : "_expirationTime" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "InvalidAddressesError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidAmountError" ; inputs : readonly [ { name : "_amount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_principalAmount" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "InvalidCallbackError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidCallerError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidCollateralError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidCollateralIdError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidDurationError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidInputError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidLoanError" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "InvalidMethodError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidParametersError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidRenegotiationOfferError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidSignatureError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidTrancheError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "LiquidatorOnlyError" ; inputs : readonly [ { name : "_liquidator" ; type : "address" ; internalType : "address" ; } ] ; } , { type : "error" ; name : "LoanExpiredError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "LoanLockedError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "LoanNotDueError" ; inputs : readonly [ { name : "_expirationTime" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "MaxCapacityExceededError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "MismatchError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "MulticallFailed" ; inputs : readonly [ { name : "i" ; type : "uint256" ; internalType : "uint256" ; } , { name : "returndata" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { type : "error" ; name : "NFTNotReturnedError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "NotStrictlyImprovedError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "TooEarlyError" ; inputs : readonly [ { name : "_pendingProtocolFeeSetTime" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "TooManyTranchesError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "TooSoonError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "TrancheCannotBeRefinancedError" ; inputs : readonly [ { name : "minTimestamp" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "ZeroInterestError" ; inputs : readonly [ ] ; } ] | readonly [ { type : "constructor" ; inputs : readonly [ { name : "loanLiquidator" ; type : "address" ; internalType : "address" ; } , { name : "protocolFee" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "currencyManager" ; type : "address" ; internalType : "address" ; } , { name : "collectionManager" ; type : "address" ; internalType : "address" ; } , { name : "maxTranches" ; type : "uint256" ; internalType : "uint256" ; } , { name : "minLockPeriod" ; type : "uint256" ; internalType : "uint256" ; } , { name : "delegateRegistry" ; type : "address" ; internalType : "address" ; } , { name : "loanManagerRegistry" ; type : "address" ; internalType : "address" ; } , { name : "flashActionContract" ; type : "address" ; internalType : "address" ; } , { name : "minWaitTime" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "DOMAIN_SEPARATOR" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "FEE_UPDATE_NOTICE" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "INITIAL_DOMAIN_SEPARATOR" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "MAX_AUCTION_DURATION" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint48" ; internalType : "uint48" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "MIN_AUCTION_DURATION" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint48" ; internalType : "uint48" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "MIN_BID_LIQUIDATION" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "MIN_WAIT_TIME" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "VERSION" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes" ; internalType : "bytes" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "addNewTranche" ; inputs : readonly [ { name : "_renegotiationOffer" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.RenegotiationOffer" ; components : readonly [ { name : "renegotiationId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "trancheIndex" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "_renegotiationOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "addWhitelistedCallbackContract" ; inputs : readonly [ { name : "_contract" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "cancelOffer" ; inputs : readonly [ { name : "_offerId" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "cancelRenegotiationOffer" ; inputs : readonly [ { name : "_renegotiationId" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "delegate" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "_delegate" ; type : "address" ; internalType : "address" ; } , { name : "_rights" ; type : "bytes32" ; internalType : "bytes32" ; } , { name : "_value" ; type : "bool" ; internalType : "bool" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "emitLoan" ; inputs : readonly [ { name : "_loanExecutionData" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.LoanExecutionData" ; components : readonly [ { name : "executionData" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.ExecutionData" ; components : readonly [ { name : "offerExecution" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.OfferExecution[]" ; components : readonly [ { name : "offer" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.LoanOffer" ; components : readonly [ { name : "offerId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "capacity" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "maxSeniorRepayment" ; type : "uint256" ; internalType : "uint256" ; } , { name : "validators" ; type : "tuple[]" ; internalType : "struct IBaseLoan.OfferValidator[]" ; components : readonly [ { name : "validator" ; type : "address" ; internalType : "address" ; } , { name : "arguments" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } , { name : "borrower" ; type : "address" ; internalType : "address" ; } ] ; } , { name : "amount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "tokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalReceiver" ; type : "address" ; internalType : "address" ; } , { name : "callbackData" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "borrowerOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "executeFlashAction" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "_target" ; type : "address" ; internalType : "address" ; } , { name : "_data" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "getCollectionManager" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getCurrencyManager" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getDelegateRegistry" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getFlashActionContract" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getLiquidationAuctionDuration" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint48" ; internalType : "uint48" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getLiquidator" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getLoanHash" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getLoanManagerRegistry" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "contract ILoanManagerRegistry" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getMaxTranches" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getMinImprovementApr" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getMinLockPeriod" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getPendingProtocolFee" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getPendingProtocolFeeSetTime" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getProtocolFee" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getTotalLoansIssued" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getUsedCapacity" ; inputs : readonly [ { name : "_lender" ; type : "address" ; internalType : "address" ; } , { name : "_offerId" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "isOfferCancelled" ; inputs : readonly [ { name : "user" ; type : "address" ; internalType : "address" ; } , { name : "offerId" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ { name : "notActive" ; type : "bool" ; internalType : "bool" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "isRenegotiationOfferCancelled" ; inputs : readonly [ { name : "user" ; type : "address" ; internalType : "address" ; } , { name : "renegotiationIf" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ { name : "notActive" ; type : "bool" ; internalType : "bool" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "isWhitelistedCallbackContract" ; inputs : readonly [ { name : "_contract" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ { name : "" ; type : "bool" ; internalType : "bool" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "liquidateLoan" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } ] ; outputs : readonly [ { name : "" ; type : "bytes" ; internalType : "bytes" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "multicall" ; inputs : readonly [ { name : "data" ; type : "bytes[]" ; internalType : "bytes[]" ; } ] ; outputs : readonly [ { name : "results" ; type : "bytes[]" ; internalType : "bytes[]" ; } ] ; stateMutability : "payable" ; } , { type : "function" ; name : "name" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "string" ; internalType : "string" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "onERC721Received" ; inputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } , { name : "" ; type : "address" ; internalType : "address" ; } , { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "bytes4" ; internalType : "bytes4" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "owner" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "pendingOwner" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "pendingOwnerTime" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "refinanceFromLoanExecutionData" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "_loanExecutionData" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.LoanExecutionData" ; components : readonly [ { name : "executionData" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.ExecutionData" ; components : readonly [ { name : "offerExecution" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.OfferExecution[]" ; components : readonly [ { name : "offer" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.LoanOffer" ; components : readonly [ { name : "offerId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "capacity" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "maxSeniorRepayment" ; type : "uint256" ; internalType : "uint256" ; } , { name : "validators" ; type : "tuple[]" ; internalType : "struct IBaseLoan.OfferValidator[]" ; components : readonly [ { name : "validator" ; type : "address" ; internalType : "address" ; } , { name : "arguments" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } , { name : "borrower" ; type : "address" ; internalType : "address" ; } ] ; } , { name : "amount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "tokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalReceiver" ; type : "address" ; internalType : "address" ; } , { name : "callbackData" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "borrowerOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "refinanceFull" ; inputs : readonly [ { name : "_renegotiationOffer" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.RenegotiationOffer" ; components : readonly [ { name : "renegotiationId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "trancheIndex" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "_renegotiationOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "refinancePartial" ; inputs : readonly [ { name : "_renegotiationOffer" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.RenegotiationOffer" ; components : readonly [ { name : "renegotiationId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "trancheIndex" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "removeWhitelistedCallbackContract" ; inputs : readonly [ { name : "_contract" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "repayLoan" ; inputs : readonly [ { name : "_repaymentData" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.LoanRepaymentData" ; components : readonly [ { name : "data" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.SignableRepaymentData" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "callbackData" ; type : "bytes" ; internalType : "bytes" ; } , { name : "shouldDelegate" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "borrowerSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "requestTransferOwner" ; inputs : readonly [ { name : "_newOwner" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "revokeDelegate" ; inputs : readonly [ { name : "_delegate" ; type : "address" ; internalType : "address" ; } , { name : "_collection" ; type : "address" ; internalType : "address" ; } , { name : "_tokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_rights" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "setFlashActionContract" ; inputs : readonly [ { name : "_newFlashActionContract" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "setMinLockPeriod" ; inputs : readonly [ { name : "__minLockPeriod" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "setProtocolFee" ; inputs : readonly [ ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "transferOwnership" ; inputs : readonly [ ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "updateLiquidationAuctionDuration" ; inputs : readonly [ { name : "_newDuration" ; type : "uint48" ; internalType : "uint48" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "updateLiquidationContract" ; inputs : readonly [ { name : "__loanLiquidator" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "updateMinImprovementApr" ; inputs : readonly [ { name : "_newMinimum" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "updateProtocolFee" ; inputs : readonly [ { name : "_newProtocolFee" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "event" ; name : "Delegated" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "delegate" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "_rights" ; type : "bytes32" ; indexed : false ; internalType : "bytes32" ; } , { name : "value" ; type : "bool" ; indexed : false ; internalType : "bool" ; } ] ; anonymous : false ; } , { type : "event" ; name : "FlashActionContractUpdated" ; inputs : readonly [ { name : "newFlashActionContract" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "FlashActionExecuted" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "target" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "data" ; type : "bytes" ; indexed : false ; internalType : "bytes" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LiquidationAuctionDurationUpdated" ; inputs : readonly [ { name : "newDuration" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LiquidationContractUpdated" ; inputs : readonly [ { name : "liquidator" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanEmitted" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "offerId" ; type : "uint256[]" ; indexed : false ; internalType : "uint256[]" ; } , { name : "loan" ; type : "tuple" ; indexed : false ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "fee" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanForeclosed" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanLiquidated" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "foreclosed" ; type : "bool" ; indexed : false ; internalType : "bool" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanRefinanced" ; inputs : readonly [ { name : "renegotiationId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "oldLoanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "newLoanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "loan" ; type : "tuple" ; indexed : false ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "fee" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanRefinancedFromNewOffers" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "newLoanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "loan" ; type : "tuple" ; indexed : false ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "offerIds" ; type : "uint256[]" ; indexed : false ; internalType : "uint256[]" ; } , { name : "totalFee" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanRepaid" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "totalRepayment" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "fee" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanSentToLiquidator" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "liquidator" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "MinAprImprovementUpdated" ; inputs : readonly [ { name : "_minimum" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "MinBidLiquidationUpdated" ; inputs : readonly [ { name : "newMinBid" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "MinLockPeriodUpdated" ; inputs : readonly [ { name : "minLockPeriod" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "OfferCancelled" ; inputs : readonly [ { name : "lender" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "offerId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "OwnershipTransferred" ; inputs : readonly [ { name : "user" ; type : "address" ; indexed : true ; internalType : "address" ; } , { name : "newOwner" ; type : "address" ; indexed : true ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "ProtocolFeePendingUpdate" ; inputs : readonly [ { name : "fee" ; type : "tuple" ; indexed : false ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; anonymous : false ; } , { type : "event" ; name : "ProtocolFeeUpdated" ; inputs : readonly [ { name : "fee" ; type : "tuple" ; indexed : false ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; anonymous : false ; } , { type : "event" ; name : "RenegotiationOfferCancelled" ; inputs : readonly [ { name : "lender" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "renegotiationId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "RevokeDelegate" ; inputs : readonly [ { name : "delegate" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "collection" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "tokenId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "_rights" ; type : "bytes32" ; indexed : false ; internalType : "bytes32" ; } ] ; anonymous : false ; } , { type : "event" ; name : "TransferOwnerRequested" ; inputs : readonly [ { name : "newOwner" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "WhitelistedCallbackContractAdded" ; inputs : readonly [ { name : "contractAdded" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "WhitelistedCallbackContractRemoved" ; inputs : readonly [ { name : "contractRemoved" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "error" ; name : "AddressZeroError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "CancelledOrExecutedOfferError" ; inputs : readonly [ { name : "_lender" ; type : "address" ; internalType : "address" ; } , { name : "_offerId" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "CollectionNotWhitelistedError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "CurrencyNotWhitelistedError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "ECDSAInvalidSignature" ; inputs : readonly [ ] ; } , { type : "error" ; name : "ECDSAInvalidSignatureLength" ; inputs : readonly [ { name : "length" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "ECDSAInvalidSignatureS" ; inputs : readonly [ { name : "s" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; } , { type : "error" ; name : "ExpiredOfferError" ; inputs : readonly [ { name : "_expirationTime" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "InvalidAddressesError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidAmountError" ; inputs : readonly [ { name : "_amount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_principalAmount" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "InvalidBorrowerError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidCallbackError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidCallerError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidCollateralError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidCollateralIdError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidDurationError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidInputError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidLoanError" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "InvalidLockPeriodError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidMethodError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidRenegotiationOfferError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidSignatureError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidTrancheError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "LenderRefinanceDisabledError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "LoanExpiredError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "LoanLockedError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "LoanNotDueError" ; inputs : readonly [ { name : "_expirationTime" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "MaxCapacityExceededError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "MulticallFailed" ; inputs : readonly [ { name : "i" ; type : "uint256" ; internalType : "uint256" ; } , { name : "returndata" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { type : "error" ; name : "NFTNotReturnedError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "NotStrictlyImprovedError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "TooEarlyError" ; inputs : readonly [ { name : "_pendingProtocolFeeSetTime" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "TooManyTranchesError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "TooSoonError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "TrancheCannotBeRefinancedError" ; inputs : readonly [ { name : "minTimestamp" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "ZeroInterestError" ; inputs : readonly [ ] ; } ] , TFunctionName , true , TFunctionName extends ( "OwnershipTransferred" | "AllOffersCancelled" | "LiquidationAuctionDurationUpdated" | "LiquidationContractUpdated" | "LoanForeclosed" | "LoanLiquidated" | "LoanSentToLiquidator" | "OfferCancelled" | "ProtocolFeePendingUpdate" | "ProtocolFeeUpdated" | "RenegotiationOfferCancelled" | "RevokeDelegate" | "Delegated" | "FlashActionContractUpdated" | "FlashActionExecuted" | "LoanEmitted" | "LoanRefinanced" | "LoanRepaid" | "MinLockPeriodUpdated" | "WhitelistedCallbackContractAdded" | "WhitelistedCallbackContractRemoved" | "MinAprImprovementUpdated" | "MinBidLiquidationUpdated" | "TransferOwnerRequested" | "LoanRefinancedFromNewOffers" ) [] ? TFunctionName [ number ] : TFunctionName >
Type Parameters
TFunctionName extends "OwnershipTransferred" | "AllOffersCancelled" | "LiquidationAuctionDurationUpdated" | "LiquidationContractUpdated" | "LoanForeclosed" | "LoanLiquidated" | "LoanSentToLiquidator" | "OfferCancelled" | "ProtocolFeePendingUpdate" | "ProtocolFeeUpdated" | "RenegotiationOfferCancelled" | "RevokeDelegate" | "Delegated" | "FlashActionContractUpdated" | "FlashActionExecuted" | "LoanEmitted" | "LoanRefinanced" | "LoanRepaid" | "MinLockPeriodUpdated" | "WhitelistedCallbackContractAdded" | "WhitelistedCallbackContractRemoved" | "MinAprImprovementUpdated" | "MinBidLiquidationUpdated" | "TransferOwnerRequested" | "LoanRefinancedFromNewOffers"
Parameters
eventName : TFunctionName
logs : Log < bigint , number , false > []
Returns ParseEventLogsReturnType < readonly [ { inputs : readonly [ { internalType : "address" ; name : "loanLiquidator" ; type : "address" ; } , { components : readonly [ { internalType : "address" ; name : "recipient" ; type : "address" ; } , { internalType : "uint256" ; name : "fraction" ; type : "uint256" ; } ] ; internalType : "struct WithProtocolFee.ProtocolFee" ; name : "protocolFee" ; type : "tuple" ; } , { internalType : "address" ; name : "currencyManager" ; type : "address" ; } , { internalType : "address" ; name : "collectionManager" ; type : "address" ; } , { internalType : "uint256" ; name : "maxTranches" ; type : "uint256" ; } , { internalType : "uint256" ; name : "minLockPeriod" ; type : "uint256" ; } , { internalType : "address" ; name : "delegateRegistry" ; type : "address" ; } , { internalType : "address" ; name : "loanManagerRegistry" ; type : "address" ; } , { internalType : "address" ; name : "flashActionContract" ; type : "address" ; } , { internalType : "uint256" ; name : "minWaitTime" ; type : "uint256" ; } ] ; stateMutability : "nonpayable" ; type : "constructor" ; } , { inputs : readonly [ ] ; name : "DOMAIN_SEPARATOR" ; outputs : readonly [ { internalType : "bytes32" ; name : "" ; type : "bytes32" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "FEE_UPDATE_NOTICE" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "INITIAL_DOMAIN_SEPARATOR" ; outputs : readonly [ { internalType : "bytes32" ; name : "" ; type : "bytes32" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "MAX_AUCTION_DURATION" ; outputs : readonly [ { internalType : "uint48" ; name : "" ; type : "uint48" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "MIN_AUCTION_DURATION" ; outputs : readonly [ { internalType : "uint48" ; name : "" ; type : "uint48" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "MIN_BID_LIQUIDATION" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "MIN_WAIT_TIME" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "VERSION" ; outputs : readonly [ { internalType : "bytes" ; name : "" ; type : "bytes" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ { components : readonly [ { internalType : "uint256" ; name : "renegotiationId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "fee" ; type : "uint256" ; } , { internalType : "uint256[]" ; name : "trancheIndex" ; type : "uint256[]" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } , { internalType : "uint256" ; name : "expirationTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.RenegotiationOffer" ; name : "_renegotiationOffer" ; type : "tuple" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "_loan" ; type : "tuple" ; } , { internalType : "bytes" ; name : "_renegotiationOfferSignature" ; type : "bytes" ; } ] ; name : "addNewTranche" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "" ; type : "tuple" ; } ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "_contract" ; type : "address" ; } ] ; name : "addWhitelistedCallbackContract" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_minOfferId" ; type : "uint256" ; } ] ; name : "cancelAllOffers" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_offerId" ; type : "uint256" ; } ] ; name : "cancelOffer" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_renegotiationId" ; type : "uint256" ; } ] ; name : "cancelRenegotiationOffer" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_loanId" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "loan" ; type : "tuple" ; } , { internalType : "address" ; name : "_delegate" ; type : "address" ; } , { internalType : "bytes32" ; name : "_rights" ; type : "bytes32" ; } , { internalType : "bool" ; name : "_value" ; type : "bool" ; } ] ; name : "delegate" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { components : readonly [ { components : readonly [ { components : readonly [ { components : readonly [ { internalType : "uint256" ; name : "offerId" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "fee" ; type : "uint256" ; } , { internalType : "uint256" ; name : "capacity" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } , { internalType : "uint256" ; name : "expirationTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { internalType : "uint256" ; name : "maxSeniorRepayment" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "validator" ; type : "address" ; } , { internalType : "bytes" ; name : "arguments" ; type : "bytes" ; } ] ; internalType : "struct IBaseLoan.OfferValidator[]" ; name : "validators" ; type : "tuple[]" ; } ] ; internalType : "struct IMultiSourceLoan.LoanOffer" ; name : "offer" ; type : "tuple" ; } , { internalType : "uint256" ; name : "amount" ; type : "uint256" ; } , { internalType : "bytes" ; name : "lenderOfferSignature" ; type : "bytes" ; } ] ; internalType : "struct IMultiSourceLoan.OfferExecution[]" ; name : "offerExecution" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "tokenId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { internalType : "uint256" ; name : "expirationTime" ; type : "uint256" ; } , { internalType : "address" ; name : "principalReceiver" ; type : "address" ; } , { internalType : "bytes" ; name : "callbackData" ; type : "bytes" ; } ] ; internalType : "struct IMultiSourceLoan.ExecutionData" ; name : "executionData" ; type : "tuple" ; } , { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "bytes" ; name : "borrowerOfferSignature" ; type : "bytes" ; } ] ; internalType : "struct IMultiSourceLoan.LoanExecutionData" ; name : "_loanExecutionData" ; type : "tuple" ; } ] ; name : "emitLoan" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "" ; type : "tuple" ; } ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_loanId" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "_loan" ; type : "tuple" ; } , { internalType : "address" ; name : "_target" ; type : "address" ; } , { internalType : "bytes" ; name : "_data" ; type : "bytes" ; } ] ; name : "executeFlashAction" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getCollectionManager" ; outputs : readonly [ { internalType : "address" ; name : "" ; type : "address" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getCurrencyManager" ; outputs : readonly [ { internalType : "address" ; name : "" ; type : "address" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getDelegateRegistry" ; outputs : readonly [ { internalType : "address" ; name : "" ; type : "address" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getFlashActionContract" ; outputs : readonly [ { internalType : "address" ; name : "" ; type : "address" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getLiquidationAuctionDuration" ; outputs : readonly [ { internalType : "uint48" ; name : "" ; type : "uint48" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getLiquidator" ; outputs : readonly [ { internalType : "address" ; name : "" ; type : "address" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_loanId" ; type : "uint256" ; } ] ; name : "getLoanHash" ; outputs : readonly [ { internalType : "bytes32" ; name : "" ; type : "bytes32" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getLoanManagerRegistry" ; outputs : readonly [ { internalType : "contract ILoanManagerRegistry" ; name : "" ; type : "address" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getMaxTranches" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getMinImprovementApr" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getMinLockPeriod" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getPendingProtocolFee" ; outputs : readonly [ { components : readonly [ { internalType : "address" ; name : "recipient" ; type : "address" ; } , { internalType : "uint256" ; name : "fraction" ; type : "uint256" ; } ] ; internalType : "struct WithProtocolFee.ProtocolFee" ; name : "" ; type : "tuple" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getPendingProtocolFeeSetTime" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getProtocolFee" ; outputs : readonly [ { components : readonly [ { internalType : "address" ; name : "recipient" ; type : "address" ; } , { internalType : "uint256" ; name : "fraction" ; type : "uint256" ; } ] ; internalType : "struct WithProtocolFee.ProtocolFee" ; name : "" ; type : "tuple" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "getTotalLoansIssued" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "_lender" ; type : "address" ; } , { internalType : "uint256" ; name : "_offerId" ; type : "uint256" ; } ] ; name : "getUsedCapacity" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "user" ; type : "address" ; } , { internalType : "uint256" ; name : "offerId" ; type : "uint256" ; } ] ; name : "isOfferCancelled" ; outputs : readonly [ { internalType : "bool" ; name : "notActive" ; type : "bool" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "user" ; type : "address" ; } , { internalType : "uint256" ; name : "renegotiationIf" ; type : "uint256" ; } ] ; name : "isRenegotiationOfferCancelled" ; outputs : readonly [ { internalType : "bool" ; name : "notActive" ; type : "bool" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "_contract" ; type : "address" ; } ] ; name : "isWhitelistedCallbackContract" ; outputs : readonly [ { internalType : "bool" ; name : "" ; type : "bool" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_loanId" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "_loan" ; type : "tuple" ; } ] ; name : "liquidateLoan" ; outputs : readonly [ { internalType : "bytes" ; name : "" ; type : "bytes" ; } ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_loanId" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "_loan" ; type : "tuple" ; } ] ; name : "loanLiquidated" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "user" ; type : "address" ; } ] ; name : "minOfferId" ; outputs : readonly [ { internalType : "uint256" ; name : "minOfferId" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ { internalType : "bytes[]" ; name : "data" ; type : "bytes[]" ; } ] ; name : "multicall" ; outputs : readonly [ { internalType : "bytes[]" ; name : "results" ; type : "bytes[]" ; } ] ; stateMutability : "payable" ; type : "function" ; } , { inputs : readonly [ ] ; name : "name" ; outputs : readonly [ { internalType : "string" ; name : "" ; type : "string" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "" ; type : "address" ; } , { internalType : "address" ; name : "" ; type : "address" ; } , { internalType : "uint256" ; name : "" ; type : "uint256" ; } , { internalType : "bytes" ; name : "" ; type : "bytes" ; } ] ; name : "onERC721Received" ; outputs : readonly [ { internalType : "bytes4" ; name : "" ; type : "bytes4" ; } ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ ] ; name : "owner" ; outputs : readonly [ { internalType : "address" ; name : "" ; type : "address" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "pendingOwner" ; outputs : readonly [ { internalType : "address" ; name : "" ; type : "address" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ ] ; name : "pendingOwnerTime" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } ] ; stateMutability : "view" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_loanId" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "_loan" ; type : "tuple" ; } , { components : readonly [ { components : readonly [ { components : readonly [ { components : readonly [ { internalType : "uint256" ; name : "offerId" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "fee" ; type : "uint256" ; } , { internalType : "uint256" ; name : "capacity" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } , { internalType : "uint256" ; name : "expirationTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { internalType : "uint256" ; name : "maxSeniorRepayment" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "validator" ; type : "address" ; } , { internalType : "bytes" ; name : "arguments" ; type : "bytes" ; } ] ; internalType : "struct IBaseLoan.OfferValidator[]" ; name : "validators" ; type : "tuple[]" ; } ] ; internalType : "struct IMultiSourceLoan.LoanOffer" ; name : "offer" ; type : "tuple" ; } , { internalType : "uint256" ; name : "amount" ; type : "uint256" ; } , { internalType : "bytes" ; name : "lenderOfferSignature" ; type : "bytes" ; } ] ; internalType : "struct IMultiSourceLoan.OfferExecution[]" ; name : "offerExecution" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "tokenId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { internalType : "uint256" ; name : "expirationTime" ; type : "uint256" ; } , { internalType : "address" ; name : "principalReceiver" ; type : "address" ; } , { internalType : "bytes" ; name : "callbackData" ; type : "bytes" ; } ] ; internalType : "struct IMultiSourceLoan.ExecutionData" ; name : "executionData" ; type : "tuple" ; } , { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "bytes" ; name : "borrowerOfferSignature" ; type : "bytes" ; } ] ; internalType : "struct IMultiSourceLoan.LoanExecutionData" ; name : "_loanExecutionData" ; type : "tuple" ; } ] ; name : "refinanceFromLoanExecutionData" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "" ; type : "tuple" ; } ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { components : readonly [ { internalType : "uint256" ; name : "renegotiationId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "fee" ; type : "uint256" ; } , { internalType : "uint256[]" ; name : "trancheIndex" ; type : "uint256[]" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } , { internalType : "uint256" ; name : "expirationTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.RenegotiationOffer" ; name : "_renegotiationOffer" ; type : "tuple" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "_loan" ; type : "tuple" ; } , { internalType : "bytes" ; name : "_renegotiationOfferSignature" ; type : "bytes" ; } ] ; name : "refinanceFull" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "" ; type : "tuple" ; } ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { components : readonly [ { internalType : "uint256" ; name : "renegotiationId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "fee" ; type : "uint256" ; } , { internalType : "uint256[]" ; name : "trancheIndex" ; type : "uint256[]" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } , { internalType : "uint256" ; name : "expirationTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.RenegotiationOffer" ; name : "_renegotiationOffer" ; type : "tuple" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "_loan" ; type : "tuple" ; } ] ; name : "refinancePartial" ; outputs : readonly [ { internalType : "uint256" ; name : "" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "" ; type : "tuple" ; } ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "_contract" ; type : "address" ; } ] ; name : "removeWhitelistedCallbackContract" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { components : readonly [ { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "bytes" ; name : "callbackData" ; type : "bytes" ; } , { internalType : "bool" ; name : "shouldDelegate" ; type : "bool" ; } ] ; internalType : "struct IMultiSourceLoan.SignableRepaymentData" ; name : "data" ; type : "tuple" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Loan" ; name : "loan" ; type : "tuple" ; } , { internalType : "bytes" ; name : "borrowerSignature" ; type : "bytes" ; } ] ; internalType : "struct IMultiSourceLoan.LoanRepaymentData" ; name : "_repaymentData" ; type : "tuple" ; } ] ; name : "repayLoan" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "_newOwner" ; type : "address" ; } ] ; name : "requestTransferOwner" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "_delegate" ; type : "address" ; } , { internalType : "address" ; name : "_collection" ; type : "address" ; } , { internalType : "uint256" ; name : "_tokenId" ; type : "uint256" ; } , { internalType : "bytes32" ; name : "_rights" ; type : "bytes32" ; } ] ; name : "revokeDelegate" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "_newFlashActionContract" ; type : "address" ; } ] ; name : "setFlashActionContract" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "__minLockPeriod" ; type : "uint256" ; } ] ; name : "setMinLockPeriod" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ ] ; name : "setProtocolFee" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ ] ; name : "transferOwnership" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "newOwner" ; type : "address" ; } ] ; name : "transferOwnership" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint48" ; name : "_newDuration" ; type : "uint48" ; } ] ; name : "updateLiquidationAuctionDuration" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "address" ; name : "__loanLiquidator" ; type : "address" ; } ] ; name : "updateLiquidationContract" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_newMinimum" ; type : "uint256" ; } ] ; name : "updateMinImprovementApr" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { inputs : readonly [ { components : readonly [ { internalType : "address" ; name : "recipient" ; type : "address" ; } , { internalType : "uint256" ; name : "fraction" ; type : "uint256" ; } ] ; internalType : "struct WithProtocolFee.ProtocolFee" ; name : "_newProtocolFee" ; type : "tuple" ; } ] ; name : "updateProtocolFee" ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; type : "function" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "address" ; name : "lender" ; type : "address" ; } , { indexed : false ; internalType : "uint256" ; name : "minOfferId" ; type : "uint256" ; } ] ; name : "AllOffersCancelled" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { indexed : false ; internalType : "address" ; name : "delegate" ; type : "address" ; } , { indexed : false ; internalType : "bytes32" ; name : "_rights" ; type : "bytes32" ; } , { indexed : false ; internalType : "bool" ; name : "value" ; type : "bool" ; } ] ; name : "Delegated" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "address" ; name : "newFlashActionContract" ; type : "address" ; } ] ; name : "FlashActionContractUpdated" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { indexed : false ; internalType : "address" ; name : "target" ; type : "address" ; } , { indexed : false ; internalType : "bytes" ; name : "data" ; type : "bytes" ; } ] ; name : "FlashActionExecuted" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "newDuration" ; type : "uint256" ; } ] ; name : "LiquidationAuctionDurationUpdated" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "address" ; name : "liquidator" ; type : "address" ; } ] ; name : "LiquidationContractUpdated" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { indexed : false ; internalType : "uint256[]" ; name : "offerId" ; type : "uint256[]" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; indexed : false ; internalType : "struct IMultiSourceLoan.Loan" ; name : "loan" ; type : "tuple" ; } , { indexed : false ; internalType : "uint256" ; name : "fee" ; type : "uint256" ; } ] ; name : "LoanEmitted" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } ] ; name : "LoanForeclosed" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } ] ; name : "LoanLiquidated" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "renegotiationId" ; type : "uint256" ; } , { indexed : false ; internalType : "uint256" ; name : "oldLoanId" ; type : "uint256" ; } , { indexed : false ; internalType : "uint256" ; name : "newLoanId" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; indexed : false ; internalType : "struct IMultiSourceLoan.Loan" ; name : "loan" ; type : "tuple" ; } , { indexed : false ; internalType : "uint256" ; name : "fee" ; type : "uint256" ; } ] ; name : "LoanRefinanced" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { indexed : false ; internalType : "uint256" ; name : "newLoanId" ; type : "uint256" ; } , { components : readonly [ { internalType : "address" ; name : "borrower" ; type : "address" ; } , { internalType : "uint256" ; name : "nftCollateralTokenId" ; type : "uint256" ; } , { internalType : "address" ; name : "nftCollateralAddress" ; type : "address" ; } , { internalType : "address" ; name : "principalAddress" ; type : "address" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "duration" ; type : "uint256" ; } , { components : readonly [ { internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "floor" ; type : "uint256" ; } , { internalType : "uint256" ; name : "principalAmount" ; type : "uint256" ; } , { internalType : "address" ; name : "lender" ; type : "address" ; } , { internalType : "uint256" ; name : "accruedInterest" ; type : "uint256" ; } , { internalType : "uint256" ; name : "startTime" ; type : "uint256" ; } , { internalType : "uint256" ; name : "aprBps" ; type : "uint256" ; } ] ; internalType : "struct IMultiSourceLoan.Tranche[]" ; name : "tranche" ; type : "tuple[]" ; } , { internalType : "uint256" ; name : "protocolFee" ; type : "uint256" ; } ] ; indexed : false ; internalType : "struct IMultiSourceLoan.Loan" ; name : "loan" ; type : "tuple" ; } , { indexed : false ; internalType : "uint256[]" ; name : "offerIds" ; type : "uint256[]" ; } , { indexed : false ; internalType : "uint256" ; name : "totalFee" ; type : "uint256" ; } ] ; name : "LoanRefinancedFromNewOffers" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { indexed : false ; internalType : "uint256" ; name : "totalRepayment" ; type : "uint256" ; } , { indexed : false ; internalType : "uint256" ; name : "fee" ; type : "uint256" ; } ] ; name : "LoanRepaid" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "loanId" ; type : "uint256" ; } , { indexed : false ; internalType : "address" ; name : "liquidator" ; type : "address" ; } ] ; name : "LoanSentToLiquidator" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "_minimum" ; type : "uint256" ; } ] ; name : "MinAprImprovementUpdated" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "newMinBid" ; type : "uint256" ; } ] ; name : "MinBidLiquidationUpdated" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "uint256" ; name : "minLockPeriod" ; type : "uint256" ; } ] ; name : "MinLockPeriodUpdated" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "address" ; name : "lender" ; type : "address" ; } , { indexed : false ; internalType : "uint256" ; name : "offerId" ; type : "uint256" ; } ] ; name : "OfferCancelled" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : true ; internalType : "address" ; name : "user" ; type : "address" ; } , { indexed : true ; internalType : "address" ; name : "newOwner" ; type : "address" ; } ] ; name : "OwnershipTransferred" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { components : readonly [ { internalType : "address" ; name : "recipient" ; type : "address" ; } , { internalType : "uint256" ; name : "fraction" ; type : "uint256" ; } ] ; indexed : false ; internalType : "struct WithProtocolFee.ProtocolFee" ; name : "fee" ; type : "tuple" ; } ] ; name : "ProtocolFeePendingUpdate" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { components : readonly [ { internalType : "address" ; name : "recipient" ; type : "address" ; } , { internalType : "uint256" ; name : "fraction" ; type : "uint256" ; } ] ; indexed : false ; internalType : "struct WithProtocolFee.ProtocolFee" ; name : "fee" ; type : "tuple" ; } ] ; name : "ProtocolFeeUpdated" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "address" ; name : "lender" ; type : "address" ; } , { indexed : false ; internalType : "uint256" ; name : "renegotiationId" ; type : "uint256" ; } ] ; name : "RenegotiationOfferCancelled" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "address" ; name : "delegate" ; type : "address" ; } , { indexed : false ; internalType : "address" ; name : "collection" ; type : "address" ; } , { indexed : false ; internalType : "uint256" ; name : "tokenId" ; type : "uint256" ; } , { indexed : false ; internalType : "bytes32" ; name : "_rights" ; type : "bytes32" ; } ] ; name : "RevokeDelegate" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "address" ; name : "newOwner" ; type : "address" ; } ] ; name : "TransferOwnerRequested" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "address" ; name : "contractAdded" ; type : "address" ; } ] ; name : "WhitelistedCallbackContractAdded" ; type : "event" ; } , { anonymous : false ; inputs : readonly [ { indexed : false ; internalType : "address" ; name : "contractRemoved" ; type : "address" ; } ] ; name : "WhitelistedCallbackContractRemoved" ; type : "event" ; } , { inputs : readonly [ ] ; name : "AddressZeroError" ; type : "error" ; } , { inputs : readonly [ { internalType : "address" ; name : "_lender" ; type : "address" ; } , { internalType : "uint256" ; name : "_offerId" ; type : "uint256" ; } ] ; name : "CancelledOrExecutedOfferError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "CollectionNotWhitelistedError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "CurrencyNotWhitelistedError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "ECDSAInvalidSignature" ; type : "error" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "length" ; type : "uint256" ; } ] ; name : "ECDSAInvalidSignatureLength" ; type : "error" ; } , { inputs : readonly [ { internalType : "bytes32" ; name : "s" ; type : "bytes32" ; } ] ; name : "ECDSAInvalidSignatureS" ; type : "error" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_expirationTime" ; type : "uint256" ; } ] ; name : "ExpiredOfferError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidAddressesError" ; type : "error" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_amount" ; type : "uint256" ; } , { internalType : "uint256" ; name : "_principalAmount" ; type : "uint256" ; } ] ; name : "InvalidAmountError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidCallbackError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidCallerError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidCollateralIdError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidDurationError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidInputError" ; type : "error" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_loanId" ; type : "uint256" ; } ] ; name : "InvalidLoanError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidMethodError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidParametersError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidRenegotiationOfferError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidSignatureError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "InvalidTrancheError" ; type : "error" ; } , { inputs : readonly [ { internalType : "address" ; name : "_liquidator" ; type : "address" ; } ] ; name : "LiquidatorOnlyError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "LoanExpiredError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "LoanLockedError" ; type : "error" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_expirationTime" ; type : "uint256" ; } ] ; name : "LoanNotDueError" ; type : "error" ; } , { inputs : readonly [ { internalType : "address" ; name : "_lender" ; type : "address" ; } , { internalType : "uint256" ; name : "_newMinOfferId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "_minOfferId" ; type : "uint256" ; } ] ; name : "LowOfferIdError" ; type : "error" ; } , { inputs : readonly [ { internalType : "address" ; name : "_lender" ; type : "address" ; } , { internalType : "uint256" ; name : "_newMinRenegotiationOfferId" ; type : "uint256" ; } , { internalType : "uint256" ; name : "_minOfferId" ; type : "uint256" ; } ] ; name : "LowRenegotiationOfferIdError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "MaxCapacityExceededError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "MismatchError" ; type : "error" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "i" ; type : "uint256" ; } , { internalType : "bytes" ; name : "returndata" ; type : "bytes" ; } ] ; name : "MulticallFailed" ; type : "error" ; } , { inputs : readonly [ ] ; name : "NFTNotReturnedError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "NotStrictlyImprovedError" ; type : "error" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "_pendingProtocolFeeSetTime" ; type : "uint256" ; } ] ; name : "TooEarlyError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "TooManyTranchesError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "TooSoonError" ; type : "error" ; } , { inputs : readonly [ { internalType : "uint256" ; name : "minTimestamp" ; type : "uint256" ; } ] ; name : "TrancheCannotBeRefinancedError" ; type : "error" ; } , { inputs : readonly [ ] ; name : "ZeroInterestError" ; type : "error" ; } ] | readonly [ { type : "constructor" ; inputs : readonly [ { name : "loanLiquidator" ; type : "address" ; internalType : "address" ; } , { name : "protocolFee" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "currencyManager" ; type : "address" ; internalType : "address" ; } , { name : "collectionManager" ; type : "address" ; internalType : "address" ; } , { name : "maxTranches" ; type : "uint256" ; internalType : "uint256" ; } , { name : "minLockPeriod" ; type : "uint256" ; internalType : "uint256" ; } , { name : "delegateRegistry" ; type : "address" ; internalType : "address" ; } , { name : "loanManagerRegistry" ; type : "address" ; internalType : "address" ; } , { name : "flashActionContract" ; type : "address" ; internalType : "address" ; } , { name : "minWaitTime" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "DOMAIN_SEPARATOR" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "FEE_UPDATE_NOTICE" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "INITIAL_DOMAIN_SEPARATOR" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "MAX_AUCTION_DURATION" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint48" ; internalType : "uint48" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "MIN_AUCTION_DURATION" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint48" ; internalType : "uint48" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "MIN_BID_LIQUIDATION" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "MIN_WAIT_TIME" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "VERSION" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes" ; internalType : "bytes" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "addNewTranche" ; inputs : readonly [ { name : "_renegotiationOffer" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.RenegotiationOffer" ; components : readonly [ { name : "renegotiationId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "trancheIndex" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_renegotiationOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "addWhitelistedCallbackContract" ; inputs : readonly [ { name : "_contract" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "cancelOffer" ; inputs : readonly [ { name : "_offerId" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "cancelRenegotiationOffer" ; inputs : readonly [ { name : "_renegotiationId" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "delegate" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_delegate" ; type : "address" ; internalType : "address" ; } , { name : "_rights" ; type : "bytes32" ; internalType : "bytes32" ; } , { name : "_value" ; type : "bool" ; internalType : "bool" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "emitLoan" ; inputs : readonly [ { name : "_loanExecutionData" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.LoanExecutionData" ; components : readonly [ { name : "executionData" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.ExecutionData" ; components : readonly [ { name : "offerExecution" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.OfferExecution[]" ; components : readonly [ { name : "offer" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.LoanOffer" ; components : readonly [ { name : "offerId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "capacity" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "maxSeniorRepayment" ; type : "uint256" ; internalType : "uint256" ; } , { name : "validators" ; type : "tuple[]" ; internalType : "struct IBaseLoan.OfferValidator[]" ; components : readonly [ { name : "validator" ; type : "address" ; internalType : "address" ; } , { name : "arguments" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; } , { name : "amount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "tokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalReceiver" ; type : "address" ; internalType : "address" ; } , { name : "callbackData" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "borrowerOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "executeFlashAction" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_target" ; type : "address" ; internalType : "address" ; } , { name : "_data" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "getCollectionManager" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getCurrencyManager" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getDelegateRegistry" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getFlashActionContract" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getLiquidationAuctionDuration" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint48" ; internalType : "uint48" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getLiquidator" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getLoanHash" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getLoanManagerRegistry" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "contract ILoanManagerRegistry" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getMaxTranches" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getMinImprovementApr" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getMinLockPeriod" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getPendingProtocolFee" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getPendingProtocolFeeSetTime" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getProtocolFee" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getTotalLoansIssued" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getUsedCapacity" ; inputs : readonly [ { name : "_lender" ; type : "address" ; internalType : "address" ; } , { name : "_offerId" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "isOfferCancelled" ; inputs : readonly [ { name : "user" ; type : "address" ; internalType : "address" ; } , { name : "offerId" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ { name : "notActive" ; type : "bool" ; internalType : "bool" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "isRenegotiationOfferCancelled" ; inputs : readonly [ { name : "user" ; type : "address" ; internalType : "address" ; } , { name : "renegotiationIf" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ { name : "notActive" ; type : "bool" ; internalType : "bool" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "isWhitelistedCallbackContract" ; inputs : readonly [ { name : "_contract" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ { name : "" ; type : "bool" ; internalType : "bool" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "liquidateLoan" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; outputs : readonly [ { name : "" ; type : "bytes" ; internalType : "bytes" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "loanLiquidated" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "multicall" ; inputs : readonly [ { name : "data" ; type : "bytes[]" ; internalType : "bytes[]" ; } ] ; outputs : readonly [ { name : "results" ; type : "bytes[]" ; internalType : "bytes[]" ; } ] ; stateMutability : "payable" ; } , { type : "function" ; name : "name" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "string" ; internalType : "string" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "onERC721Received" ; inputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } , { name : "" ; type : "address" ; internalType : "address" ; } , { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "bytes4" ; internalType : "bytes4" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "owner" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "pendingOwner" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "pendingOwnerTime" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "refinanceFromLoanExecutionData" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_loanExecutionData" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.LoanExecutionData" ; components : readonly [ { name : "executionData" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.ExecutionData" ; components : readonly [ { name : "offerExecution" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.OfferExecution[]" ; components : readonly [ { name : "offer" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.LoanOffer" ; components : readonly [ { name : "offerId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "capacity" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "maxSeniorRepayment" ; type : "uint256" ; internalType : "uint256" ; } , { name : "validators" ; type : "tuple[]" ; internalType : "struct IBaseLoan.OfferValidator[]" ; components : readonly [ { name : "validator" ; type : "address" ; internalType : "address" ; } , { name : "arguments" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; } , { name : "amount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "tokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalReceiver" ; type : "address" ; internalType : "address" ; } , { name : "callbackData" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "borrowerOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "refinanceFull" ; inputs : readonly [ { name : "_renegotiationOffer" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.RenegotiationOffer" ; components : readonly [ { name : "renegotiationId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "trancheIndex" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_renegotiationOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "refinancePartial" ; inputs : readonly [ { name : "_renegotiationOffer" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.RenegotiationOffer" ; components : readonly [ { name : "renegotiationId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "trancheIndex" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "removeWhitelistedCallbackContract" ; inputs : readonly [ { name : "_contract" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "repayLoan" ; inputs : readonly [ { name : "_repaymentData" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.LoanRepaymentData" ; components : readonly [ { name : "data" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.SignableRepaymentData" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "callbackData" ; type : "bytes" ; internalType : "bytes" ; } , { name : "shouldDelegate" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "borrowerSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "requestTransferOwner" ; inputs : readonly [ { name : "_newOwner" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "revokeDelegate" ; inputs : readonly [ { name : "_delegate" ; type : "address" ; internalType : "address" ; } , { name : "_collection" ; type : "address" ; internalType : "address" ; } , { name : "_tokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_rights" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "setFlashActionContract" ; inputs : readonly [ { name : "_newFlashActionContract" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "setMinLockPeriod" ; inputs : readonly [ { name : "__minLockPeriod" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "setProtocolFee" ; inputs : readonly [ ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "transferOwnership" ; inputs : readonly [ ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "transferOwnership" ; inputs : readonly [ { name : "newOwner" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "updateLiquidationAuctionDuration" ; inputs : readonly [ { name : "_newDuration" ; type : "uint48" ; internalType : "uint48" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "updateLiquidationContract" ; inputs : readonly [ { name : "__loanLiquidator" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "updateMinImprovementApr" ; inputs : readonly [ { name : "_newMinimum" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "updateProtocolFee" ; inputs : readonly [ { name : "_newProtocolFee" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "event" ; name : "Delegated" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "delegate" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "_rights" ; type : "bytes32" ; indexed : false ; internalType : "bytes32" ; } , { name : "value" ; type : "bool" ; indexed : false ; internalType : "bool" ; } ] ; anonymous : false ; } , { type : "event" ; name : "FlashActionContractUpdated" ; inputs : readonly [ { name : "newFlashActionContract" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "FlashActionExecuted" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "target" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "data" ; type : "bytes" ; indexed : false ; internalType : "bytes" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LiquidationAuctionDurationUpdated" ; inputs : readonly [ { name : "newDuration" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LiquidationContractUpdated" ; inputs : readonly [ { name : "liquidator" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanEmitted" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "offerId" ; type : "uint256[]" ; indexed : false ; internalType : "uint256[]" ; } , { name : "loan" ; type : "tuple" ; indexed : false ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "fee" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanForeclosed" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanLiquidated" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanRefinanced" ; inputs : readonly [ { name : "renegotiationId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "oldLoanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "newLoanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "loan" ; type : "tuple" ; indexed : false ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "fee" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanRefinancedFromNewOffers" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "newLoanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "loan" ; type : "tuple" ; indexed : false ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "offerIds" ; type : "uint256[]" ; indexed : false ; internalType : "uint256[]" ; } , { name : "totalFee" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanRepaid" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "totalRepayment" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "fee" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanSentToLiquidator" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "liquidator" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "MinAprImprovementUpdated" ; inputs : readonly [ { name : "_minimum" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "MinBidLiquidationUpdated" ; inputs : readonly [ { name : "newMinBid" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "MinLockPeriodUpdated" ; inputs : readonly [ { name : "minLockPeriod" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "OfferCancelled" ; inputs : readonly [ { name : "lender" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "offerId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "OwnershipTransferred" ; inputs : readonly [ { name : "user" ; type : "address" ; indexed : true ; internalType : "address" ; } , { name : "newOwner" ; type : "address" ; indexed : true ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "ProtocolFeePendingUpdate" ; inputs : readonly [ { name : "fee" ; type : "tuple" ; indexed : false ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; anonymous : false ; } , { type : "event" ; name : "ProtocolFeeUpdated" ; inputs : readonly [ { name : "fee" ; type : "tuple" ; indexed : false ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; anonymous : false ; } , { type : "event" ; name : "RenegotiationOfferCancelled" ; inputs : readonly [ { name : "lender" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "renegotiationId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "RevokeDelegate" ; inputs : readonly [ { name : "delegate" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "collection" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "tokenId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "_rights" ; type : "bytes32" ; indexed : false ; internalType : "bytes32" ; } ] ; anonymous : false ; } , { type : "event" ; name : "TransferOwnerRequested" ; inputs : readonly [ { name : "newOwner" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "WhitelistedCallbackContractAdded" ; inputs : readonly [ { name : "contractAdded" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "WhitelistedCallbackContractRemoved" ; inputs : readonly [ { name : "contractRemoved" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "error" ; name : "AddressZeroError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "CancelledOrExecutedOfferError" ; inputs : readonly [ { name : "_lender" ; type : "address" ; internalType : "address" ; } , { name : "_offerId" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "CollectionNotWhitelistedError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "CurrencyNotWhitelistedError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "ECDSAInvalidSignature" ; inputs : readonly [ ] ; } , { type : "error" ; name : "ECDSAInvalidSignatureLength" ; inputs : readonly [ { name : "length" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "ECDSAInvalidSignatureS" ; inputs : readonly [ { name : "s" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; } , { type : "error" ; name : "ExpiredOfferError" ; inputs : readonly [ { name : "_expirationTime" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "InvalidAddressesError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidAmountError" ; inputs : readonly [ { name : "_amount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_principalAmount" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "InvalidCallbackError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidCallerError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidCollateralError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidCollateralIdError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidDurationError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidInputError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidLoanError" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "InvalidMethodError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidParametersError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidRenegotiationOfferError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidSignatureError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidTrancheError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "LiquidatorOnlyError" ; inputs : readonly [ { name : "_liquidator" ; type : "address" ; internalType : "address" ; } ] ; } , { type : "error" ; name : "LoanExpiredError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "LoanLockedError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "LoanNotDueError" ; inputs : readonly [ { name : "_expirationTime" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "MaxCapacityExceededError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "MismatchError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "MulticallFailed" ; inputs : readonly [ { name : "i" ; type : "uint256" ; internalType : "uint256" ; } , { name : "returndata" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { type : "error" ; name : "NFTNotReturnedError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "NotStrictlyImprovedError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "TooEarlyError" ; inputs : readonly [ { name : "_pendingProtocolFeeSetTime" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "TooManyTranchesError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "TooSoonError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "TrancheCannotBeRefinancedError" ; inputs : readonly [ { name : "minTimestamp" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "ZeroInterestError" ; inputs : readonly [ ] ; } ] | readonly [ { type : "constructor" ; inputs : readonly [ { name : "loanLiquidator" ; type : "address" ; internalType : "address" ; } , { name : "protocolFee" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "currencyManager" ; type : "address" ; internalType : "address" ; } , { name : "collectionManager" ; type : "address" ; internalType : "address" ; } , { name : "maxTranches" ; type : "uint256" ; internalType : "uint256" ; } , { name : "minLockPeriod" ; type : "uint256" ; internalType : "uint256" ; } , { name : "delegateRegistry" ; type : "address" ; internalType : "address" ; } , { name : "loanManagerRegistry" ; type : "address" ; internalType : "address" ; } , { name : "flashActionContract" ; type : "address" ; internalType : "address" ; } , { name : "minWaitTime" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "DOMAIN_SEPARATOR" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "FEE_UPDATE_NOTICE" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "INITIAL_DOMAIN_SEPARATOR" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "MAX_AUCTION_DURATION" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint48" ; internalType : "uint48" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "MIN_AUCTION_DURATION" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint48" ; internalType : "uint48" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "MIN_BID_LIQUIDATION" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "MIN_WAIT_TIME" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "VERSION" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes" ; internalType : "bytes" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "addNewTranche" ; inputs : readonly [ { name : "_renegotiationOffer" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.RenegotiationOffer" ; components : readonly [ { name : "renegotiationId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "trancheIndex" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "_renegotiationOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "addWhitelistedCallbackContract" ; inputs : readonly [ { name : "_contract" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "cancelOffer" ; inputs : readonly [ { name : "_offerId" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "cancelRenegotiationOffer" ; inputs : readonly [ { name : "_renegotiationId" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "delegate" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "_delegate" ; type : "address" ; internalType : "address" ; } , { name : "_rights" ; type : "bytes32" ; internalType : "bytes32" ; } , { name : "_value" ; type : "bool" ; internalType : "bool" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "emitLoan" ; inputs : readonly [ { name : "_loanExecutionData" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.LoanExecutionData" ; components : readonly [ { name : "executionData" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.ExecutionData" ; components : readonly [ { name : "offerExecution" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.OfferExecution[]" ; components : readonly [ { name : "offer" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.LoanOffer" ; components : readonly [ { name : "offerId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "capacity" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "maxSeniorRepayment" ; type : "uint256" ; internalType : "uint256" ; } , { name : "validators" ; type : "tuple[]" ; internalType : "struct IBaseLoan.OfferValidator[]" ; components : readonly [ { name : "validator" ; type : "address" ; internalType : "address" ; } , { name : "arguments" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } , { name : "borrower" ; type : "address" ; internalType : "address" ; } ] ; } , { name : "amount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "tokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalReceiver" ; type : "address" ; internalType : "address" ; } , { name : "callbackData" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "borrowerOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "executeFlashAction" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "_target" ; type : "address" ; internalType : "address" ; } , { name : "_data" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "getCollectionManager" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getCurrencyManager" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getDelegateRegistry" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getFlashActionContract" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getLiquidationAuctionDuration" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint48" ; internalType : "uint48" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getLiquidator" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getLoanHash" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getLoanManagerRegistry" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "contract ILoanManagerRegistry" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getMaxTranches" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getMinImprovementApr" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getMinLockPeriod" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getPendingProtocolFee" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getPendingProtocolFeeSetTime" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getProtocolFee" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getTotalLoansIssued" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getUsedCapacity" ; inputs : readonly [ { name : "_lender" ; type : "address" ; internalType : "address" ; } , { name : "_offerId" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "isOfferCancelled" ; inputs : readonly [ { name : "user" ; type : "address" ; internalType : "address" ; } , { name : "offerId" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ { name : "notActive" ; type : "bool" ; internalType : "bool" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "isRenegotiationOfferCancelled" ; inputs : readonly [ { name : "user" ; type : "address" ; internalType : "address" ; } , { name : "renegotiationIf" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ { name : "notActive" ; type : "bool" ; internalType : "bool" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "isWhitelistedCallbackContract" ; inputs : readonly [ { name : "_contract" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ { name : "" ; type : "bool" ; internalType : "bool" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "liquidateLoan" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } ] ; outputs : readonly [ { name : "" ; type : "bytes" ; internalType : "bytes" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "multicall" ; inputs : readonly [ { name : "data" ; type : "bytes[]" ; internalType : "bytes[]" ; } ] ; outputs : readonly [ { name : "results" ; type : "bytes[]" ; internalType : "bytes[]" ; } ] ; stateMutability : "payable" ; } , { type : "function" ; name : "name" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "string" ; internalType : "string" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "onERC721Received" ; inputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } , { name : "" ; type : "address" ; internalType : "address" ; } , { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "bytes4" ; internalType : "bytes4" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "owner" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "pendingOwner" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "pendingOwnerTime" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "refinanceFromLoanExecutionData" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "_loanExecutionData" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.LoanExecutionData" ; components : readonly [ { name : "executionData" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.ExecutionData" ; components : readonly [ { name : "offerExecution" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.OfferExecution[]" ; components : readonly [ { name : "offer" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.LoanOffer" ; components : readonly [ { name : "offerId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "capacity" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "maxSeniorRepayment" ; type : "uint256" ; internalType : "uint256" ; } , { name : "validators" ; type : "tuple[]" ; internalType : "struct IBaseLoan.OfferValidator[]" ; components : readonly [ { name : "validator" ; type : "address" ; internalType : "address" ; } , { name : "arguments" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } , { name : "borrower" ; type : "address" ; internalType : "address" ; } ] ; } , { name : "amount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "tokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalReceiver" ; type : "address" ; internalType : "address" ; } , { name : "callbackData" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "borrowerOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "refinanceFull" ; inputs : readonly [ { name : "_renegotiationOffer" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.RenegotiationOffer" ; components : readonly [ { name : "renegotiationId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "trancheIndex" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "_renegotiationOfferSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "refinancePartial" ; inputs : readonly [ { name : "_renegotiationOffer" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.RenegotiationOffer" ; components : readonly [ { name : "renegotiationId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "trancheIndex" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expirationTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "removeWhitelistedCallbackContract" ; inputs : readonly [ { name : "_contract" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "repayLoan" ; inputs : readonly [ { name : "_repaymentData" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.LoanRepaymentData" ; components : readonly [ { name : "data" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.SignableRepaymentData" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "callbackData" ; type : "bytes" ; internalType : "bytes" ; } , { name : "shouldDelegate" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "borrowerSignature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "requestTransferOwner" ; inputs : readonly [ { name : "_newOwner" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "revokeDelegate" ; inputs : readonly [ { name : "_delegate" ; type : "address" ; internalType : "address" ; } , { name : "_collection" ; type : "address" ; internalType : "address" ; } , { name : "_tokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_rights" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "setFlashActionContract" ; inputs : readonly [ { name : "_newFlashActionContract" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "setMinLockPeriod" ; inputs : readonly [ { name : "__minLockPeriod" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "setProtocolFee" ; inputs : readonly [ ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "transferOwnership" ; inputs : readonly [ ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "updateLiquidationAuctionDuration" ; inputs : readonly [ { name : "_newDuration" ; type : "uint48" ; internalType : "uint48" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "updateLiquidationContract" ; inputs : readonly [ { name : "__loanLiquidator" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "updateMinImprovementApr" ; inputs : readonly [ { name : "_newMinimum" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "updateProtocolFee" ; inputs : readonly [ { name : "_newProtocolFee" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "event" ; name : "Delegated" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "delegate" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "_rights" ; type : "bytes32" ; indexed : false ; internalType : "bytes32" ; } , { name : "value" ; type : "bool" ; indexed : false ; internalType : "bool" ; } ] ; anonymous : false ; } , { type : "event" ; name : "FlashActionContractUpdated" ; inputs : readonly [ { name : "newFlashActionContract" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "FlashActionExecuted" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "target" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "data" ; type : "bytes" ; indexed : false ; internalType : "bytes" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LiquidationAuctionDurationUpdated" ; inputs : readonly [ { name : "newDuration" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LiquidationContractUpdated" ; inputs : readonly [ { name : "liquidator" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanEmitted" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "offerId" ; type : "uint256[]" ; indexed : false ; internalType : "uint256[]" ; } , { name : "loan" ; type : "tuple" ; indexed : false ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "fee" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanForeclosed" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanLiquidated" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "foreclosed" ; type : "bool" ; indexed : false ; internalType : "bool" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanRefinanced" ; inputs : readonly [ { name : "renegotiationId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "oldLoanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "newLoanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "loan" ; type : "tuple" ; indexed : false ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "fee" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanRefinancedFromNewOffers" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "newLoanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "loan" ; type : "tuple" ; indexed : false ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lenderRefinanceDisabled" ; type : "bool" ; internalType : "bool" ; } ] ; } , { name : "offerIds" ; type : "uint256[]" ; indexed : false ; internalType : "uint256[]" ; } , { name : "totalFee" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanRepaid" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "totalRepayment" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "fee" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "LoanSentToLiquidator" ; inputs : readonly [ { name : "loanId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "liquidator" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "MinAprImprovementUpdated" ; inputs : readonly [ { name : "_minimum" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "MinBidLiquidationUpdated" ; inputs : readonly [ { name : "newMinBid" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "MinLockPeriodUpdated" ; inputs : readonly [ { name : "minLockPeriod" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "OfferCancelled" ; inputs : readonly [ { name : "lender" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "offerId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "OwnershipTransferred" ; inputs : readonly [ { name : "user" ; type : "address" ; indexed : true ; internalType : "address" ; } , { name : "newOwner" ; type : "address" ; indexed : true ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "ProtocolFeePendingUpdate" ; inputs : readonly [ { name : "fee" ; type : "tuple" ; indexed : false ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; anonymous : false ; } , { type : "event" ; name : "ProtocolFeeUpdated" ; inputs : readonly [ { name : "fee" ; type : "tuple" ; indexed : false ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; anonymous : false ; } , { type : "event" ; name : "RenegotiationOfferCancelled" ; inputs : readonly [ { name : "lender" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "renegotiationId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "RevokeDelegate" ; inputs : readonly [ { name : "delegate" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "collection" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "tokenId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "_rights" ; type : "bytes32" ; indexed : false ; internalType : "bytes32" ; } ] ; anonymous : false ; } , { type : "event" ; name : "TransferOwnerRequested" ; inputs : readonly [ { name : "newOwner" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "WhitelistedCallbackContractAdded" ; inputs : readonly [ { name : "contractAdded" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "WhitelistedCallbackContractRemoved" ; inputs : readonly [ { name : "contractRemoved" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "error" ; name : "AddressZeroError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "CancelledOrExecutedOfferError" ; inputs : readonly [ { name : "_lender" ; type : "address" ; internalType : "address" ; } , { name : "_offerId" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "CollectionNotWhitelistedError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "CurrencyNotWhitelistedError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "ECDSAInvalidSignature" ; inputs : readonly [ ] ; } , { type : "error" ; name : "ECDSAInvalidSignatureLength" ; inputs : readonly [ { name : "length" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "ECDSAInvalidSignatureS" ; inputs : readonly [ { name : "s" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; } , { type : "error" ; name : "ExpiredOfferError" ; inputs : readonly [ { name : "_expirationTime" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "InvalidAddressesError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidAmountError" ; inputs : readonly [ { name : "_amount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_principalAmount" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "InvalidBorrowerError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidCallbackError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidCallerError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidCollateralError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidCollateralIdError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidDurationError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidInputError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidLoanError" ; inputs : readonly [ { name : "_loanId" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "InvalidLockPeriodError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidMethodError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidRenegotiationOfferError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidSignatureError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidTrancheError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "LenderRefinanceDisabledError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "LoanExpiredError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "LoanLockedError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "LoanNotDueError" ; inputs : readonly [ { name : "_expirationTime" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "MaxCapacityExceededError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "MulticallFailed" ; inputs : readonly [ { name : "i" ; type : "uint256" ; internalType : "uint256" ; } , { name : "returndata" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { type : "error" ; name : "NFTNotReturnedError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "NotStrictlyImprovedError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "TooEarlyError" ; inputs : readonly [ { name : "_pendingProtocolFeeSetTime" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "TooManyTranchesError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "TooSoonError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "TrancheCannotBeRefinancedError" ; inputs : readonly [ { name : "minTimestamp" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "ZeroInterestError" ; inputs : readonly [ ] ; } ] , TFunctionName , true , TFunctionName extends ( "OwnershipTransferred" | "AllOffersCancelled" | "LiquidationAuctionDurationUpdated" | "LiquidationContractUpdated" | "LoanForeclosed" | "LoanLiquidated" | "LoanSentToLiquidator" | "OfferCancelled" | "ProtocolFeePendingUpdate" | "ProtocolFeeUpdated" | "RenegotiationOfferCancelled" | "RevokeDelegate" | "Delegated" | "FlashActionContractUpdated" | "FlashActionExecuted" | "LoanEmitted" | "LoanRefinanced" | "LoanRepaid" | "MinLockPeriodUpdated" | "WhitelistedCallbackContractAdded" | "WhitelistedCallbackContractRemoved" | "MinAprImprovementUpdated" | "MinBidLiquidationUpdated" | "TransferOwnerRequested" | "LoanRefinancedFromNewOffers" ) [] ? TFunctionName [ number ] : TFunctionName >
Builds the canonical authorization without requesting a wallet signature.