Properties
abi
abi: readonly [{
stateMutability: "nonpayable";
type: "constructor";
inputs: readonly [{
name: "loanLiquidator";
internalType: "address";
type: "address";
}, {
name: "protocolFee";
internalType: "struct IBaseLoan.ProtocolFee";
type: "tuple";
components: readonly [{
name: "recipient";
internalType: "address";
type: "address";
}, {
name: "fraction";
internalType: "uint256";
type: "uint256";
}];
}, {
name: "currencyManager";
internalType: "address";
type: "address";
}, {
name: "collectionManager";
internalType: "address";
type: "address";
}, {
name: "maxSources";
internalType: "uint256";
type: "uint256";
}, {
name: "minLockPeriod";
internalType: "uint256";
type: "uint256";
}, {
name: "delegateRegistry";
internalType: "address";
type: "address";
}, {
name: "flashActionContract";
internalType: "address";
type: "address";
}];
}, {
type: "error";
inputs: readonly [];
name: "AddressZeroError";
}, {
type: "error";
inputs: readonly [{
name: "_lender";
internalType: "address";
type: "address";
}, {
name: "_offerId";
internalType: "uint256";
type: "uint256";
}];
name: "CancelledOrExecutedOfferError";
}, {
type: "error";
inputs: readonly [{
name: "_lender";
internalType: "address";
type: "address";
}, {
name: "_renegotiationId";
internalType: "uint256";
type: "uint256";
}];
name: "CancelledRenegotiationOfferError";
}, {
type: "error";
inputs: readonly [];
name: "CannotLiquidateError";
}, {
type: "error";
inputs: readonly [];
name: "CollectionNotWhitelistedError";
}, {
type: "error";
inputs: readonly [];
name: "CurrencyNotWhitelistedError";
}, {
type: "error";
inputs: readonly [];
name: "ECDSAInvalidSignature";
}, {
type: "error";
inputs: readonly [{
name: "length";
internalType: "uint256";
type: "uint256";
}];
name: "ECDSAInvalidSignatureLength";
}, {
type: "error";
inputs: readonly [{
name: "s";
internalType: "bytes32";
type: "bytes32";
}];
name: "ECDSAInvalidSignatureS";
}, {
type: "error";
inputs: readonly [{
name: "_expirationTime";
internalType: "uint256";
type: "uint256";
}];
name: "ExpiredOfferError";
}, {
type: "error";
inputs: readonly [{
name: "_expirationTime";
internalType: "uint256";
type: "uint256";
}];
name: "ExpiredRenegotiationOfferError";
}, {
type: "error";
inputs: readonly [];
name: "ExtensionNotAvailableError";
}, {
type: "error";
inputs: readonly [{
name: "_amount";
internalType: "uint256";
type: "uint256";
}, {
name: "_principalAmount";
internalType: "uint256";
type: "uint256";
}];
name: "InvalidAmountError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidBorrowerError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidCallbackError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidCollateralIdError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidDurationError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidLenderError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidLiquidationError";
}, {
type: "error";
inputs: readonly [{
name: "_loanId";
internalType: "uint256";
type: "uint256";
}];
name: "InvalidLoanError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidMethodError";
}, {
type: "error";
inputs: readonly [{
name: "_fraction";
internalType: "uint256";
type: "uint256";
}];
name: "InvalidProtocolFeeError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidRenegotiationOfferError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidSignatureError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidValueError";
}, {
type: "error";
inputs: readonly [];
name: "LengthMismatchError";
}, {
type: "error";
inputs: readonly [{
name: "_liquidator";
internalType: "address";
type: "address";
}];
name: "LiquidatorOnlyError";
}, {
type: "error";
inputs: readonly [];
name: "LoanExpiredError";
}, {
type: "error";
inputs: readonly [{
name: "_expirationTime";
internalType: "uint256";
type: "uint256";
}];
name: "LoanNotDueError";
}, {
type: "error";
inputs: readonly [{
name: "_lender";
internalType: "address";
type: "address";
}, {
name: "_newMinOfferId";
internalType: "uint256";
type: "uint256";
}, {
name: "_minOfferId";
internalType: "uint256";
type: "uint256";
}];
name: "LowOfferIdError";
}, {
type: "error";
inputs: readonly [{
name: "_lender";
internalType: "address";
type: "address";
}, {
name: "_newMinRenegotiationOfferId";
internalType: "uint256";
type: "uint256";
}, {
name: "_minOfferId";
internalType: "uint256";
type: "uint256";
}];
name: "LowRenegotiationOfferIdError";
}, {
type: "error";
inputs: readonly [];
name: "MaxCapacityExceededError";
}, {
type: "error";
inputs: readonly [{
name: "minLockPeriod";
internalType: "uint256";
type: "uint256";
}];
name: "MinLockPeriodTooHighError";
}, {
type: "error";
inputs: readonly [{
name: "i";
internalType: "uint256";
type: "uint256";
}, {
name: "returndata";
internalType: "bytes";
type: "bytes";
}];
name: "MulticallFailed";
}, {
type: "error";
inputs: readonly [];
name: "NFTNotReturnedError";
}, {
type: "error";
inputs: readonly [];
name: "NotStrictlyImprovedError";
}, {
type: "error";
inputs: readonly [];
name: "OnlyBorrowerCallableError";
}, {
type: "error";
inputs: readonly [];
name: "OnlyLenderCallableError";
}, {
type: "error";
inputs: readonly [];
name: "OnlyLenderOrBorrowerCallableError";
}, {
type: "error";
inputs: readonly [];
name: "PartialOfferCannotChangeDurationError";
}, {
type: "error";
inputs: readonly [];
name: "PartialOfferCannotHaveFeeError";
}, {
type: "error";
inputs: readonly [];
name: "RefinanceFullError";
}, {
type: "error";
inputs: readonly [{
name: "minTimestamp";
internalType: "uint256";
type: "uint256";
}];
name: "SourceCannotBeRefinancedError";
}, {
type: "error";
inputs: readonly [{
name: "sourcePrincipal";
internalType: "uint256";
type: "uint256";
}, {
name: "loanPrincipal";
internalType: "uint256";
type: "uint256";
}];
name: "TargetPrincipalTooLowError";
}, {
type: "error";
inputs: readonly [{
name: "_pendingProtocolFeeSetTime";
internalType: "uint256";
type: "uint256";
}];
name: "TooEarlyError";
}, {
type: "error";
inputs: readonly [{
name: "sources";
internalType: "uint256";
type: "uint256";
}];
name: "TooManySourcesError";
}, {
type: "error";
inputs: readonly [];
name: "ZeroDurationError";
}, {
type: "error";
inputs: readonly [];
name: "ZeroInterestError";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "lender";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "minOfferId";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "AllOffersCancelled";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "lender";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "minRenegotiationId";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "AllRenegotiationOffersCancelled";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "borrower";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "offerId";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "BorrowerOfferCancelled";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "newdelegateRegistry";
internalType: "address";
type: "address";
indexed: false;
}];
name: "DelegateRegistryUpdated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "delegate";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "value";
internalType: "bool";
type: "bool";
indexed: false;
}];
name: "Delegated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "newFlashActionContract";
internalType: "address";
type: "address";
indexed: false;
}];
name: "FlashActionContractUpdated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "target";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "data";
internalType: "bytes";
type: "bytes";
indexed: false;
}];
name: "FlashActionExecuted";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "minimum";
internalType: "struct IBaseLoan.ImprovementMinimum";
type: "tuple";
components: readonly [{
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "interest";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}];
indexed: false;
}];
name: "ImprovementMinimumUpdated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "newDuration";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "LiquidationAuctionDurationUpdated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "liquidator";
internalType: "address";
type: "address";
indexed: false;
}];
name: "LiquidationContractUpdated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "offerId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
indexed: false;
}, {
name: "lender";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "borrower";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "fee";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "LoanEmitted";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "oldLoanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "newLoanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
indexed: false;
}, {
name: "_extension";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "LoanExtended";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "LoanForeclosed";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "LoanLiquidated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "renegotiationId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "oldLoanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "newLoanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
indexed: false;
}, {
name: "fee";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "LoanRefinanced";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "totalRepayment";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "fee";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "LoanRepaid";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "liquidator";
internalType: "address";
type: "address";
indexed: false;
}];
name: "LoanSentToLiquidator";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "newMax";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "MaxSourcesUpdated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "minLockPeriod";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "MinLockPeriodUpdated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "lender";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "offerId";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "OfferCancelled";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "user";
internalType: "address";
type: "address";
indexed: true;
}, {
name: "newOwner";
internalType: "address";
type: "address";
indexed: true;
}];
name: "OwnershipTransferred";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "fee";
internalType: "struct IBaseLoan.ProtocolFee";
type: "tuple";
components: readonly [{
name: "recipient";
internalType: "address";
type: "address";
}, {
name: "fraction";
internalType: "uint256";
type: "uint256";
}];
indexed: false;
}];
name: "ProtocolFeePendingUpdate";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "fee";
internalType: "struct IBaseLoan.ProtocolFee";
type: "tuple";
components: readonly [{
name: "recipient";
internalType: "address";
type: "address";
}, {
name: "fraction";
internalType: "uint256";
type: "uint256";
}];
indexed: false;
}];
name: "ProtocolFeeUpdated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "lender";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "renegotiationId";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "RenegotiationOfferCancelled";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "delegate";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "collection";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "tokenId";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "RevokeDelegate";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "contractAdded";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "tax";
internalType: "struct WithCallbacks.Taxes";
type: "tuple";
components: readonly [{
name: "buyTax";
internalType: "uint128";
type: "uint128";
}, {
name: "sellTax";
internalType: "uint128";
type: "uint128";
}];
indexed: false;
}];
name: "WhitelistedCallbackContractAdded";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "contractRemoved";
internalType: "address";
type: "address";
indexed: false;
}];
name: "WhitelistedCallbackContractRemoved";
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "DOMAIN_SEPARATOR";
outputs: readonly [{
name: "";
internalType: "bytes32";
type: "bytes32";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "FEE_UPDATE_NOTICE";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "INITIAL_DOMAIN_SEPARATOR";
outputs: readonly [{
name: "";
internalType: "bytes32";
type: "bytes32";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "MAX_PROTOCOL_FEE";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "MIN_AUCTION_DURATION";
outputs: readonly [{
name: "";
internalType: "uint48";
type: "uint48";
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_contract";
internalType: "address";
type: "address";
}, {
name: "_tax";
internalType: "struct WithCallbacks.Taxes";
type: "tuple";
components: readonly [{
name: "buyTax";
internalType: "uint128";
type: "uint128";
}, {
name: "sellTax";
internalType: "uint128";
type: "uint128";
}];
}];
name: "addWhitelistedCallbackContract";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_minOfferId";
internalType: "uint256";
type: "uint256";
}];
name: "cancelAllOffers";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_minRenegotiationId";
internalType: "uint256";
type: "uint256";
}];
name: "cancelAllRenegotiationOffers";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_offerId";
internalType: "uint256";
type: "uint256";
}];
name: "cancelOffer";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_offerIds";
internalType: "uint256[]";
type: "uint256[]";
}];
name: "cancelOffers";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_renegotiationId";
internalType: "uint256";
type: "uint256";
}];
name: "cancelRenegotiationOffer";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_renegotiationIds";
internalType: "uint256[]";
type: "uint256[]";
}];
name: "cancelRenegotiationOffers";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}, {
name: "_delegate";
internalType: "address";
type: "address";
}, {
name: "_rights";
internalType: "bytes32";
type: "bytes32";
}, {
name: "_value";
internalType: "bool";
type: "bool";
}];
name: "delegate";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_executionData";
internalType: "struct IMultiSourceLoan.LoanExecutionData";
type: "tuple";
components: readonly [{
name: "executionData";
internalType: "struct IBaseLoan.ExecutionData";
type: "tuple";
components: readonly [{
name: "offer";
internalType: "struct IBaseLoan.LoanOffer";
type: "tuple";
components: readonly [{
name: "offerId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "fee";
internalType: "uint256";
type: "uint256";
}, {
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "capacity";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}, {
name: "expirationTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "validators";
internalType: "struct IBaseLoan.OfferValidator[]";
type: "tuple[]";
components: readonly [{
name: "validator";
internalType: "address";
type: "address";
}, {
name: "arguments";
internalType: "bytes";
type: "bytes";
}];
}];
}, {
name: "tokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "amount";
internalType: "uint256";
type: "uint256";
}, {
name: "expirationTime";
internalType: "uint256";
type: "uint256";
}, {
name: "callbackData";
internalType: "bytes";
type: "bytes";
}];
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "lenderOfferSignature";
internalType: "bytes";
type: "bytes";
}, {
name: "borrowerOfferSignature";
internalType: "bytes";
type: "bytes";
}];
}];
name: "emitLoan";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}, {
name: "";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "_loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}, {
name: "_target";
internalType: "address";
type: "address";
}, {
name: "_data";
internalType: "bytes";
type: "bytes";
}];
name: "executeFlashAction";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "_loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}, {
name: "_extension";
internalType: "uint256";
type: "uint256";
}];
name: "extendLoan";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}, {
name: "";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getCollectionManager";
outputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getCurrencyManager";
outputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getDelegateRegistry";
outputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getFlashActionContract";
outputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getImprovementMinimum";
outputs: readonly [{
name: "";
internalType: "struct IBaseLoan.ImprovementMinimum";
type: "tuple";
components: readonly [{
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "interest";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}];
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getLiquidationAuctionDuration";
outputs: readonly [{
name: "";
internalType: "uint48";
type: "uint48";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getLiquidator";
outputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [{
name: "_loanId";
internalType: "uint256";
type: "uint256";
}];
name: "getLoanHash";
outputs: readonly [{
name: "";
internalType: "bytes32";
type: "bytes32";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getMaxSources";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getMinLockPeriod";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [{
name: "_loanPrincipal";
internalType: "uint256";
type: "uint256";
}];
name: "getMinSourcePrincipal";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getPendingProtocolFee";
outputs: readonly [{
name: "";
internalType: "struct IBaseLoan.ProtocolFee";
type: "tuple";
components: readonly [{
name: "recipient";
internalType: "address";
type: "address";
}, {
name: "fraction";
internalType: "uint256";
type: "uint256";
}];
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getPendingProtocolFeeSetTime";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getProtocolFee";
outputs: readonly [{
name: "";
internalType: "struct IBaseLoan.ProtocolFee";
type: "tuple";
components: readonly [{
name: "recipient";
internalType: "address";
type: "address";
}, {
name: "fraction";
internalType: "uint256";
type: "uint256";
}];
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getTotalLoansIssued";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [{
name: "_lender";
internalType: "address";
type: "address";
}, {
name: "_offerId";
internalType: "uint256";
type: "uint256";
}];
name: "getUsedCapacity";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [{
name: "";
internalType: "address";
type: "address";
}, {
name: "";
internalType: "uint256";
type: "uint256";
}];
name: "isBorrowerOfferCancelled";
outputs: readonly [{
name: "";
internalType: "bool";
type: "bool";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [{
name: "";
internalType: "address";
type: "address";
}, {
name: "";
internalType: "uint256";
type: "uint256";
}];
name: "isOfferCancelled";
outputs: readonly [{
name: "";
internalType: "bool";
type: "bool";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [{
name: "";
internalType: "address";
type: "address";
}, {
name: "";
internalType: "uint256";
type: "uint256";
}];
name: "isRenegotiationOfferCancelled";
outputs: readonly [{
name: "";
internalType: "bool";
type: "bool";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [{
name: "_contract";
internalType: "address";
type: "address";
}];
name: "isWhitelistedCallbackContract";
outputs: readonly [{
name: "";
internalType: "bool";
type: "bool";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
name: "lenderMinRenegotiationOfferId";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "_loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}];
name: "liquidateLoan";
outputs: readonly [{
name: "";
internalType: "bytes";
type: "bytes";
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "_loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}];
name: "loanLiquidated";
outputs: readonly [];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
name: "minOfferId";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}];
}, {
stateMutability: "payable";
type: "function";
inputs: readonly [{
name: "data";
internalType: "bytes[]";
type: "bytes[]";
}];
name: "multicall";
outputs: readonly [{
name: "results";
internalType: "bytes[]";
type: "bytes[]";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "name";
outputs: readonly [{
name: "";
internalType: "string";
type: "string";
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "";
internalType: "address";
type: "address";
}, {
name: "";
internalType: "address";
type: "address";
}, {
name: "";
internalType: "uint256";
type: "uint256";
}, {
name: "";
internalType: "bytes";
type: "bytes";
}];
name: "onERC721Received";
outputs: readonly [{
name: "";
internalType: "bytes4";
type: "bytes4";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "owner";
outputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_renegotiationOffer";
internalType: "struct IMultiSourceLoan.RenegotiationOffer";
type: "tuple";
components: readonly [{
name: "renegotiationId";
internalType: "uint256";
type: "uint256";
}, {
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "fee";
internalType: "uint256";
type: "uint256";
}, {
name: "targetPrincipal";
internalType: "uint256[]";
type: "uint256[]";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}, {
name: "expirationTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}];
}, {
name: "_loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}, {
name: "_renegotiationOfferSignature";
internalType: "bytes";
type: "bytes";
}];
name: "refinanceFull";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}, {
name: "";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_renegotiationOffer";
internalType: "struct IMultiSourceLoan.RenegotiationOffer";
type: "tuple";
components: readonly [{
name: "renegotiationId";
internalType: "uint256";
type: "uint256";
}, {
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "fee";
internalType: "uint256";
type: "uint256";
}, {
name: "targetPrincipal";
internalType: "uint256[]";
type: "uint256[]";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}, {
name: "expirationTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}];
}, {
name: "_loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}];
name: "refinancePartial";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}, {
name: "";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_contract";
internalType: "address";
type: "address";
}];
name: "removeWhitelistedCallbackContract";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_repaymentData";
internalType: "struct IMultiSourceLoan.LoanRepaymentData";
type: "tuple";
components: readonly [{
name: "data";
internalType: "struct IMultiSourceLoan.SignableRepaymentData";
type: "tuple";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "callbackData";
internalType: "bytes";
type: "bytes";
}, {
name: "shouldDelegate";
internalType: "bool";
type: "bool";
}];
}, {
name: "loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}, {
name: "borrowerSignature";
internalType: "bytes";
type: "bytes";
}];
}];
name: "repayLoan";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_delegate";
internalType: "address";
type: "address";
}, {
name: "_collection";
internalType: "address";
type: "address";
}, {
name: "_tokenId";
internalType: "uint256";
type: "uint256";
}];
name: "revokeDelegate";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_newDelegateRegistry";
internalType: "address";
type: "address";
}];
name: "setDelegateRegistry";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_newFlashActionContract";
internalType: "address";
type: "address";
}];
name: "setFlashActionContract";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "__maxSources";
internalType: "uint256";
type: "uint256";
}];
name: "setMaxSources";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "__minLockPeriod";
internalType: "uint256";
type: "uint256";
}];
name: "setMinLockPeriod";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [];
name: "setProtocolFee";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "newOwner";
internalType: "address";
type: "address";
}];
name: "transferOwnership";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_newMinimum";
internalType: "struct IBaseLoan.ImprovementMinimum";
type: "tuple";
components: readonly [{
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "interest";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}];
}];
name: "updateImprovementMinimum";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_newDuration";
internalType: "uint48";
type: "uint48";
}];
name: "updateLiquidationAuctionDuration";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "loanLiquidator";
internalType: "contract ILoanLiquidator";
type: "address";
}];
name: "updateLiquidationContract";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_newProtocolFee";
internalType: "struct IBaseLoan.ProtocolFee";
type: "tuple";
components: readonly [{
name: "recipient";
internalType: "address";
type: "address";
}, {
name: "fraction";
internalType: "uint256";
type: "uint256";
}];
}];
name: "updateProtocolFee";
outputs: readonly [];
}]
address
address: `0x${string}`
contract
contract: GetContractReturnType<readonly [{
stateMutability: "nonpayable";
type: "constructor";
inputs: readonly [{
name: "loanLiquidator";
internalType: "address";
type: "address";
}, {
name: "protocolFee";
internalType: "struct IBaseLoan.ProtocolFee";
type: "tuple";
components: readonly [{
name: "recipient";
internalType: "address";
type: "address";
}, {
name: "fraction";
internalType: "uint256";
type: "uint256";
}];
}, {
name: "currencyManager";
internalType: "address";
type: "address";
}, {
name: "collectionManager";
internalType: "address";
type: "address";
}, {
name: "maxSources";
internalType: "uint256";
type: "uint256";
}, {
name: "minLockPeriod";
internalType: "uint256";
type: "uint256";
}, {
name: "delegateRegistry";
internalType: "address";
type: "address";
}, {
name: "flashActionContract";
internalType: "address";
type: "address";
}];
}, {
type: "error";
inputs: readonly [];
name: "AddressZeroError";
}, {
type: "error";
inputs: readonly [{
name: "_lender";
internalType: "address";
type: "address";
}, {
name: "_offerId";
internalType: "uint256";
type: "uint256";
}];
name: "CancelledOrExecutedOfferError";
}, {
type: "error";
inputs: readonly [{
name: "_lender";
internalType: "address";
type: "address";
}, {
name: "_renegotiationId";
internalType: "uint256";
type: "uint256";
}];
name: "CancelledRenegotiationOfferError";
}, {
type: "error";
inputs: readonly [];
name: "CannotLiquidateError";
}, {
type: "error";
inputs: readonly [];
name: "CollectionNotWhitelistedError";
}, {
type: "error";
inputs: readonly [];
name: "CurrencyNotWhitelistedError";
}, {
type: "error";
inputs: readonly [];
name: "ECDSAInvalidSignature";
}, {
type: "error";
inputs: readonly [{
name: "length";
internalType: "uint256";
type: "uint256";
}];
name: "ECDSAInvalidSignatureLength";
}, {
type: "error";
inputs: readonly [{
name: "s";
internalType: "bytes32";
type: "bytes32";
}];
name: "ECDSAInvalidSignatureS";
}, {
type: "error";
inputs: readonly [{
name: "_expirationTime";
internalType: "uint256";
type: "uint256";
}];
name: "ExpiredOfferError";
}, {
type: "error";
inputs: readonly [{
name: "_expirationTime";
internalType: "uint256";
type: "uint256";
}];
name: "ExpiredRenegotiationOfferError";
}, {
type: "error";
inputs: readonly [];
name: "ExtensionNotAvailableError";
}, {
type: "error";
inputs: readonly [{
name: "_amount";
internalType: "uint256";
type: "uint256";
}, {
name: "_principalAmount";
internalType: "uint256";
type: "uint256";
}];
name: "InvalidAmountError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidBorrowerError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidCallbackError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidCollateralIdError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidDurationError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidLenderError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidLiquidationError";
}, {
type: "error";
inputs: readonly [{
name: "_loanId";
internalType: "uint256";
type: "uint256";
}];
name: "InvalidLoanError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidMethodError";
}, {
type: "error";
inputs: readonly [{
name: "_fraction";
internalType: "uint256";
type: "uint256";
}];
name: "InvalidProtocolFeeError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidRenegotiationOfferError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidSignatureError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidValueError";
}, {
type: "error";
inputs: readonly [];
name: "LengthMismatchError";
}, {
type: "error";
inputs: readonly [{
name: "_liquidator";
internalType: "address";
type: "address";
}];
name: "LiquidatorOnlyError";
}, {
type: "error";
inputs: readonly [];
name: "LoanExpiredError";
}, {
type: "error";
inputs: readonly [{
name: "_expirationTime";
internalType: "uint256";
type: "uint256";
}];
name: "LoanNotDueError";
}, {
type: "error";
inputs: readonly [{
name: "_lender";
internalType: "address";
type: "address";
}, {
name: "_newMinOfferId";
internalType: "uint256";
type: "uint256";
}, {
name: "_minOfferId";
internalType: "uint256";
type: "uint256";
}];
name: "LowOfferIdError";
}, {
type: "error";
inputs: readonly [{
name: "_lender";
internalType: "address";
type: "address";
}, {
name: "_newMinRenegotiationOfferId";
internalType: "uint256";
type: "uint256";
}, {
name: "_minOfferId";
internalType: "uint256";
type: "uint256";
}];
name: "LowRenegotiationOfferIdError";
}, {
type: "error";
inputs: readonly [];
name: "MaxCapacityExceededError";
}, {
type: "error";
inputs: readonly [{
name: "minLockPeriod";
internalType: "uint256";
type: "uint256";
}];
name: "MinLockPeriodTooHighError";
}, {
type: "error";
inputs: readonly [{
name: "i";
internalType: "uint256";
type: "uint256";
}, {
name: "returndata";
internalType: "bytes";
type: "bytes";
}];
name: "MulticallFailed";
}, {
type: "error";
inputs: readonly [];
name: "NFTNotReturnedError";
}, {
type: "error";
inputs: readonly [];
name: "NotStrictlyImprovedError";
}, {
type: "error";
inputs: readonly [];
name: "OnlyBorrowerCallableError";
}, {
type: "error";
inputs: readonly [];
name: "OnlyLenderCallableError";
}, {
type: "error";
inputs: readonly [];
name: "OnlyLenderOrBorrowerCallableError";
}, {
type: "error";
inputs: readonly [];
name: "PartialOfferCannotChangeDurationError";
}, {
type: "error";
inputs: readonly [];
name: "PartialOfferCannotHaveFeeError";
}, {
type: "error";
inputs: readonly [];
name: "RefinanceFullError";
}, {
type: "error";
inputs: readonly [{
name: "minTimestamp";
internalType: "uint256";
type: "uint256";
}];
name: "SourceCannotBeRefinancedError";
}, {
type: "error";
inputs: readonly [{
name: "sourcePrincipal";
internalType: "uint256";
type: "uint256";
}, {
name: "loanPrincipal";
internalType: "uint256";
type: "uint256";
}];
name: "TargetPrincipalTooLowError";
}, {
type: "error";
inputs: readonly [{
name: "_pendingProtocolFeeSetTime";
internalType: "uint256";
type: "uint256";
}];
name: "TooEarlyError";
}, {
type: "error";
inputs: readonly [{
name: "sources";
internalType: "uint256";
type: "uint256";
}];
name: "TooManySourcesError";
}, {
type: "error";
inputs: readonly [];
name: "ZeroDurationError";
}, {
type: "error";
inputs: readonly [];
name: "ZeroInterestError";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "lender";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "minOfferId";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "AllOffersCancelled";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "lender";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "minRenegotiationId";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "AllRenegotiationOffersCancelled";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "borrower";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "offerId";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "BorrowerOfferCancelled";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "newdelegateRegistry";
internalType: "address";
type: "address";
indexed: false;
}];
name: "DelegateRegistryUpdated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "delegate";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "value";
internalType: "bool";
type: "bool";
indexed: false;
}];
name: "Delegated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "newFlashActionContract";
internalType: "address";
type: "address";
indexed: false;
}];
name: "FlashActionContractUpdated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "target";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "data";
internalType: "bytes";
type: "bytes";
indexed: false;
}];
name: "FlashActionExecuted";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "minimum";
internalType: "struct IBaseLoan.ImprovementMinimum";
type: "tuple";
components: readonly [{
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "interest";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}];
indexed: false;
}];
name: "ImprovementMinimumUpdated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "newDuration";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "LiquidationAuctionDurationUpdated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "liquidator";
internalType: "address";
type: "address";
indexed: false;
}];
name: "LiquidationContractUpdated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "offerId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
indexed: false;
}, {
name: "lender";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "borrower";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "fee";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "LoanEmitted";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "oldLoanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "newLoanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
indexed: false;
}, {
name: "_extension";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "LoanExtended";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "LoanForeclosed";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "LoanLiquidated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "renegotiationId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "oldLoanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "newLoanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
indexed: false;
}, {
name: "fee";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "LoanRefinanced";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "totalRepayment";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "fee";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "LoanRepaid";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "liquidator";
internalType: "address";
type: "address";
indexed: false;
}];
name: "LoanSentToLiquidator";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "newMax";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "MaxSourcesUpdated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "minLockPeriod";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "MinLockPeriodUpdated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "lender";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "offerId";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "OfferCancelled";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "user";
internalType: "address";
type: "address";
indexed: true;
}, {
name: "newOwner";
internalType: "address";
type: "address";
indexed: true;
}];
name: "OwnershipTransferred";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "fee";
internalType: "struct IBaseLoan.ProtocolFee";
type: "tuple";
components: readonly [{
name: "recipient";
internalType: "address";
type: "address";
}, {
name: "fraction";
internalType: "uint256";
type: "uint256";
}];
indexed: false;
}];
name: "ProtocolFeePendingUpdate";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "fee";
internalType: "struct IBaseLoan.ProtocolFee";
type: "tuple";
components: readonly [{
name: "recipient";
internalType: "address";
type: "address";
}, {
name: "fraction";
internalType: "uint256";
type: "uint256";
}];
indexed: false;
}];
name: "ProtocolFeeUpdated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "lender";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "renegotiationId";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "RenegotiationOfferCancelled";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "delegate";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "collection";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "tokenId";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "RevokeDelegate";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "contractAdded";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "tax";
internalType: "struct WithCallbacks.Taxes";
type: "tuple";
components: readonly [{
name: "buyTax";
internalType: "uint128";
type: "uint128";
}, {
name: "sellTax";
internalType: "uint128";
type: "uint128";
}];
indexed: false;
}];
name: "WhitelistedCallbackContractAdded";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "contractRemoved";
internalType: "address";
type: "address";
indexed: false;
}];
name: "WhitelistedCallbackContractRemoved";
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "DOMAIN_SEPARATOR";
outputs: readonly [{
name: "";
internalType: "bytes32";
type: "bytes32";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "FEE_UPDATE_NOTICE";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "INITIAL_DOMAIN_SEPARATOR";
outputs: readonly [{
name: "";
internalType: "bytes32";
type: "bytes32";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "MAX_PROTOCOL_FEE";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "MIN_AUCTION_DURATION";
outputs: readonly [{
name: "";
internalType: "uint48";
type: "uint48";
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_contract";
internalType: "address";
type: "address";
}, {
name: "_tax";
internalType: "struct WithCallbacks.Taxes";
type: "tuple";
components: readonly [{
name: "buyTax";
internalType: "uint128";
type: "uint128";
}, {
name: "sellTax";
internalType: "uint128";
type: "uint128";
}];
}];
name: "addWhitelistedCallbackContract";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_minOfferId";
internalType: "uint256";
type: "uint256";
}];
name: "cancelAllOffers";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_minRenegotiationId";
internalType: "uint256";
type: "uint256";
}];
name: "cancelAllRenegotiationOffers";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_offerId";
internalType: "uint256";
type: "uint256";
}];
name: "cancelOffer";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_offerIds";
internalType: "uint256[]";
type: "uint256[]";
}];
name: "cancelOffers";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_renegotiationId";
internalType: "uint256";
type: "uint256";
}];
name: "cancelRenegotiationOffer";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_renegotiationIds";
internalType: "uint256[]";
type: "uint256[]";
}];
name: "cancelRenegotiationOffers";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}, {
name: "_delegate";
internalType: "address";
type: "address";
}, {
name: "_rights";
internalType: "bytes32";
type: "bytes32";
}, {
name: "_value";
internalType: "bool";
type: "bool";
}];
name: "delegate";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_executionData";
internalType: "struct IMultiSourceLoan.LoanExecutionData";
type: "tuple";
components: readonly [{
name: "executionData";
internalType: "struct IBaseLoan.ExecutionData";
type: "tuple";
components: readonly [{
name: "offer";
internalType: "struct IBaseLoan.LoanOffer";
type: "tuple";
components: readonly [{
name: "offerId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "fee";
internalType: "uint256";
type: "uint256";
}, {
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "capacity";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}, {
name: "expirationTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "validators";
internalType: "struct IBaseLoan.OfferValidator[]";
type: "tuple[]";
components: readonly [{
name: "validator";
internalType: "address";
type: "address";
}, {
name: "arguments";
internalType: "bytes";
type: "bytes";
}];
}];
}, {
name: "tokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "amount";
internalType: "uint256";
type: "uint256";
}, {
name: "expirationTime";
internalType: "uint256";
type: "uint256";
}, {
name: "callbackData";
internalType: "bytes";
type: "bytes";
}];
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "lenderOfferSignature";
internalType: "bytes";
type: "bytes";
}, {
name: "borrowerOfferSignature";
internalType: "bytes";
type: "bytes";
}];
}];
name: "emitLoan";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}, {
name: "";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "_loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}, {
name: "_target";
internalType: "address";
type: "address";
}, {
name: "_data";
internalType: "bytes";
type: "bytes";
}];
name: "executeFlashAction";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "_loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}, {
name: "_extension";
internalType: "uint256";
type: "uint256";
}];
name: "extendLoan";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}, {
name: "";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getCollectionManager";
outputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getCurrencyManager";
outputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getDelegateRegistry";
outputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getFlashActionContract";
outputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getImprovementMinimum";
outputs: readonly [{
name: "";
internalType: "struct IBaseLoan.ImprovementMinimum";
type: "tuple";
components: readonly [{
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "interest";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}];
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getLiquidationAuctionDuration";
outputs: readonly [{
name: "";
internalType: "uint48";
type: "uint48";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getLiquidator";
outputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [{
name: "_loanId";
internalType: "uint256";
type: "uint256";
}];
name: "getLoanHash";
outputs: readonly [{
name: "";
internalType: "bytes32";
type: "bytes32";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getMaxSources";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getMinLockPeriod";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [{
name: "_loanPrincipal";
internalType: "uint256";
type: "uint256";
}];
name: "getMinSourcePrincipal";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getPendingProtocolFee";
outputs: readonly [{
name: "";
internalType: "struct IBaseLoan.ProtocolFee";
type: "tuple";
components: readonly [{
name: "recipient";
internalType: "address";
type: "address";
}, {
name: "fraction";
internalType: "uint256";
type: "uint256";
}];
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getPendingProtocolFeeSetTime";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getProtocolFee";
outputs: readonly [{
name: "";
internalType: "struct IBaseLoan.ProtocolFee";
type: "tuple";
components: readonly [{
name: "recipient";
internalType: "address";
type: "address";
}, {
name: "fraction";
internalType: "uint256";
type: "uint256";
}];
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getTotalLoansIssued";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [{
name: "_lender";
internalType: "address";
type: "address";
}, {
name: "_offerId";
internalType: "uint256";
type: "uint256";
}];
name: "getUsedCapacity";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [{
name: "";
internalType: "address";
type: "address";
}, {
name: "";
internalType: "uint256";
type: "uint256";
}];
name: "isBorrowerOfferCancelled";
outputs: readonly [{
name: "";
internalType: "bool";
type: "bool";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [{
name: "";
internalType: "address";
type: "address";
}, {
name: "";
internalType: "uint256";
type: "uint256";
}];
name: "isOfferCancelled";
outputs: readonly [{
name: "";
internalType: "bool";
type: "bool";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [{
name: "";
internalType: "address";
type: "address";
}, {
name: "";
internalType: "uint256";
type: "uint256";
}];
name: "isRenegotiationOfferCancelled";
outputs: readonly [{
name: "";
internalType: "bool";
type: "bool";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [{
name: "_contract";
internalType: "address";
type: "address";
}];
name: "isWhitelistedCallbackContract";
outputs: readonly [{
name: "";
internalType: "bool";
type: "bool";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
name: "lenderMinRenegotiationOfferId";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "_loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}];
name: "liquidateLoan";
outputs: readonly [{
name: "";
internalType: "bytes";
type: "bytes";
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "_loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}];
name: "loanLiquidated";
outputs: readonly [];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
name: "minOfferId";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}];
}, {
stateMutability: "payable";
type: "function";
inputs: readonly [{
name: "data";
internalType: "bytes[]";
type: "bytes[]";
}];
name: "multicall";
outputs: readonly [{
name: "results";
internalType: "bytes[]";
type: "bytes[]";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "name";
outputs: readonly [{
name: "";
internalType: "string";
type: "string";
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "";
internalType: "address";
type: "address";
}, {
name: "";
internalType: "address";
type: "address";
}, {
name: "";
internalType: "uint256";
type: "uint256";
}, {
name: "";
internalType: "bytes";
type: "bytes";
}];
name: "onERC721Received";
outputs: readonly [{
name: "";
internalType: "bytes4";
type: "bytes4";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "owner";
outputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_renegotiationOffer";
internalType: "struct IMultiSourceLoan.RenegotiationOffer";
type: "tuple";
components: readonly [{
name: "renegotiationId";
internalType: "uint256";
type: "uint256";
}, {
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "fee";
internalType: "uint256";
type: "uint256";
}, {
name: "targetPrincipal";
internalType: "uint256[]";
type: "uint256[]";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}, {
name: "expirationTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}];
}, {
name: "_loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}, {
name: "_renegotiationOfferSignature";
internalType: "bytes";
type: "bytes";
}];
name: "refinanceFull";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}, {
name: "";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_renegotiationOffer";
internalType: "struct IMultiSourceLoan.RenegotiationOffer";
type: "tuple";
components: readonly [{
name: "renegotiationId";
internalType: "uint256";
type: "uint256";
}, {
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "fee";
internalType: "uint256";
type: "uint256";
}, {
name: "targetPrincipal";
internalType: "uint256[]";
type: "uint256[]";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}, {
name: "expirationTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}];
}, {
name: "_loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}];
name: "refinancePartial";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}, {
name: "";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_contract";
internalType: "address";
type: "address";
}];
name: "removeWhitelistedCallbackContract";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_repaymentData";
internalType: "struct IMultiSourceLoan.LoanRepaymentData";
type: "tuple";
components: readonly [{
name: "data";
internalType: "struct IMultiSourceLoan.SignableRepaymentData";
type: "tuple";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "callbackData";
internalType: "bytes";
type: "bytes";
}, {
name: "shouldDelegate";
internalType: "bool";
type: "bool";
}];
}, {
name: "loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}, {
name: "borrowerSignature";
internalType: "bytes";
type: "bytes";
}];
}];
name: "repayLoan";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_delegate";
internalType: "address";
type: "address";
}, {
name: "_collection";
internalType: "address";
type: "address";
}, {
name: "_tokenId";
internalType: "uint256";
type: "uint256";
}];
name: "revokeDelegate";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_newDelegateRegistry";
internalType: "address";
type: "address";
}];
name: "setDelegateRegistry";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_newFlashActionContract";
internalType: "address";
type: "address";
}];
name: "setFlashActionContract";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "__maxSources";
internalType: "uint256";
type: "uint256";
}];
name: "setMaxSources";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "__minLockPeriod";
internalType: "uint256";
type: "uint256";
}];
name: "setMinLockPeriod";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [];
name: "setProtocolFee";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "newOwner";
internalType: "address";
type: "address";
}];
name: "transferOwnership";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_newMinimum";
internalType: "struct IBaseLoan.ImprovementMinimum";
type: "tuple";
components: readonly [{
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "interest";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}];
}];
name: "updateImprovementMinimum";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_newDuration";
internalType: "uint48";
type: "uint48";
}];
name: "updateLiquidationAuctionDuration";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "loanLiquidator";
internalType: "contract ILoanLiquidator";
type: "address";
}];
name: "updateLiquidationContract";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_newProtocolFee";
internalType: "struct IBaseLoan.ProtocolFee";
type: "tuple";
components: readonly [{
name: "recipient";
internalType: "address";
type: "address";
}, {
name: "fraction";
internalType: "uint256";
type: "uint256";
}];
}];
name: "updateProtocolFee";
outputs: readonly [];
}], {} | {}>
safeContractWrite
safeContractWrite: {
transferOwnership: ((args, options?) => Promise<`0x${string}`>);
liquidateLoan: ((args, options?) => Promise<`0x${string}`>);
onERC721Received: ((args, options?) => Promise<`0x${string}`>);
addWhitelistedCallbackContract: ((args, options?) => Promise<`0x${string}`>);
cancelAllOffers: ((args, options?) => Promise<`0x${string}`>);
cancelAllRenegotiationOffers: ((args, options?) => Promise<`0x${string}`>);
cancelOffer: ((args, options?) => Promise<`0x${string}`>);
cancelOffers: ((args, options?) => Promise<`0x${string}`>);
cancelRenegotiationOffer: ((args, options?) => Promise<`0x${string}`>);
cancelRenegotiationOffers: ((args, options?) => Promise<`0x${string}`>);
loanLiquidated: ((args, options?) => Promise<`0x${string}`>);
removeWhitelistedCallbackContract: ((args, options?) => Promise<`0x${string}`>);
setProtocolFee: ((args, options?) => Promise<`0x${string}`>);
updateImprovementMinimum: ((args, options?) => Promise<`0x${string}`>);
updateLiquidationAuctionDuration: ((args, options?) => Promise<`0x${string}`>);
updateLiquidationContract: ((args, options?) => Promise<`0x${string}`>);
updateProtocolFee: ((args, options?) => Promise<`0x${string}`>);
emitLoan: ((args, options?) => Promise<`0x${string}`>);
refinanceFull: ((args, options?) => Promise<`0x${string}`>);
refinancePartial: ((args, options?) => Promise<`0x${string}`>);
repayLoan: ((args, options?) => Promise<`0x${string}`>);
setMaxSources: ((args, options?) => Promise<`0x${string}`>);
multicall: ((args, options?) => Promise<`0x${string}`>);
delegate: ((args, options?) => Promise<`0x${string}`>);
revokeDelegate: ((args, options?) => Promise<`0x${string}`>);
executeFlashAction: ((args, options?) => Promise<`0x${string}`>);
extendLoan: ((args, options?) => Promise<`0x${string}`>);
setDelegateRegistry: ((args, options?) => Promise<`0x${string}`>);
setFlashActionContract: ((args, options?) => Promise<`0x${string}`>);
setMinLockPeriod: ((args, options?) => Promise<`0x${string}`>);
}
Type declaration
-
transferOwnership: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: readonly [`0x${string}`]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
liquidateLoan: ((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;
source: readonly ({ loanId: bigint; lender: `0x${string}`; principalAmount: bigint; accruedInterest: bigint; startTime: bigint; aprBps: bigint; })[];
}] | readonly [bigint, {
borrower: `0x${string}`;
nftCollateralTokenId: bigint;
nftCollateralAddress: `0x${string}`;
principalAddress: `0x${string}`;
principalAmount: bigint;
startTime: bigint;
duration: bigint;
source: readonly ({ loanId: bigint; lender: `0x${string}`; principalAmount: bigint; accruedInterest: bigint; startTime: bigint; aprBps: bigint; })[];
}] & readonly [bigint, {
borrower: `0x${string}`;
nftCollateralTokenId: bigint;
nftCollateralAddress: `0x${string}`;
principalAddress: `0x${string}`;
principalAmount: bigint;
startTime: bigint;
duration: bigint;
source: readonly ({ loanId: bigint; lender: `0x${string}`; principalAmount: bigint; accruedInterest: bigint; startTime: bigint; aprBps: bigint; })[];
}]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
onERC721Received: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: readonly [`0x${string}`, `0x${string}`, bigint, `0x${string}`]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
addWhitelistedCallbackContract: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: readonly [`0x${string}`, {
buyTax: bigint;
sellTax: bigint;
}] | readonly [`0x${string}`, {
buyTax: bigint;
sellTax: bigint;
}] & readonly [`0x${string}`, {
buyTax: bigint;
sellTax: bigint;
}]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
cancelAllOffers: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: readonly [bigint]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
cancelAllRenegotiationOffers: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: readonly [bigint]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
cancelOffer: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: readonly [bigint]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
cancelOffers: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: readonly [readonly bigint[]] | readonly [readonly bigint[]] & readonly [readonly bigint[]]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
cancelRenegotiationOffer: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: readonly [bigint]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
cancelRenegotiationOffers: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: readonly [readonly bigint[]] | readonly [readonly bigint[]] & readonly [readonly bigint[]]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
loanLiquidated: ((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;
source: readonly ({ loanId: bigint; lender: `0x${string}`; principalAmount: bigint; accruedInterest: bigint; startTime: bigint; aprBps: bigint; })[];
}] | readonly [bigint, {
borrower: `0x${string}`;
nftCollateralTokenId: bigint;
nftCollateralAddress: `0x${string}`;
principalAddress: `0x${string}`;
principalAmount: bigint;
startTime: bigint;
duration: bigint;
source: readonly ({ loanId: bigint; lender: `0x${string}`; principalAmount: bigint; accruedInterest: bigint; startTime: bigint; aprBps: bigint; })[];
}] & readonly [bigint, {
borrower: `0x${string}`;
nftCollateralTokenId: bigint;
nftCollateralAddress: `0x${string}`;
principalAddress: `0x${string}`;
principalAmount: bigint;
startTime: bigint;
duration: bigint;
source: readonly ({ loanId: bigint; lender: `0x${string}`; principalAmount: bigint; accruedInterest: bigint; startTime: bigint; aprBps: bigint; })[];
}]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
removeWhitelistedCallbackContract: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: readonly [`0x${string}`]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
setProtocolFee: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: undefined | readonly []
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
updateImprovementMinimum: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: readonly [{
principalAmount: bigint;
interest: bigint;
duration: bigint;
}] | readonly [{
principalAmount: bigint;
interest: bigint;
duration: bigint;
}] & readonly [{
principalAmount: bigint;
interest: bigint;
duration: bigint;
}]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
updateLiquidationAuctionDuration: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: readonly [number]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
updateLiquidationContract: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: readonly [`0x${string}`]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
updateProtocolFee: ((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;
}]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
emitLoan: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: readonly [{
executionData: { offer: { offerId: bigint; lender: `0x${string}`; fee: bigint; borrower: `0x${string}`; capacity: bigint; nftCollateralAddress: `0x${string}`; nftCollateralTokenId: bigint; principalAddress: `0x${string}`; principalAmount: bigint; aprBps: bigint; expirationTime: bigint; duration: bigint; validators: readonly { validator: `0x${string}`; arguments: `0x${string}`; }[]; }; tokenId: bigint; amount: bigint; expirationTime: bigint; callbackData: `0x${string}`; };
lender: `0x${string}`;
borrower: `0x${string}`;
lenderOfferSignature: `0x${string}`;
borrowerOfferSignature: `0x${string}`;
}] | readonly [{
executionData: { offer: { offerId: bigint; lender: `0x${string}`; fee: bigint; borrower: `0x${string}`; capacity: bigint; nftCollateralAddress: `0x${string}`; nftCollateralTokenId: bigint; principalAddress: `0x${string}`; principalAmount: bigint; aprBps: bigint; expirationTime: bigint; duration: bigint; validators: readonly { validator: `0x${string}`; arguments: `0x${string}`; }[]; }; tokenId: bigint; amount: bigint; expirationTime: bigint; callbackData: `0x${string}`; };
lender: `0x${string}`;
borrower: `0x${string}`;
lenderOfferSignature: `0x${string}`;
borrowerOfferSignature: `0x${string}`;
}] & readonly [{
executionData: { offer: { offerId: bigint; lender: `0x${string}`; fee: bigint; borrower: `0x${string}`; capacity: bigint; nftCollateralAddress: `0x${string}`; nftCollateralTokenId: bigint; principalAddress: `0x${string}`; principalAmount: bigint; aprBps: bigint; expirationTime: bigint; duration: bigint; validators: readonly { validator: `0x${string}`; arguments: `0x${string}`; }[]; }; tokenId: bigint; amount: bigint; expirationTime: bigint; callbackData: `0x${string}`; };
lender: `0x${string}`;
borrower: `0x${string}`;
lenderOfferSignature: `0x${string}`;
borrowerOfferSignature: `0x${string}`;
}]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
refinanceFull: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: readonly [{
renegotiationId: bigint;
loanId: bigint;
lender: `0x${string}`;
fee: bigint;
targetPrincipal: 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;
source: readonly ({ loanId: bigint; lender: `0x${string}`; principalAmount: bigint; accruedInterest: bigint; startTime: bigint; aprBps: bigint; })[];
}, `0x${string}`] | readonly [{
renegotiationId: bigint;
loanId: bigint;
lender: `0x${string}`;
fee: bigint;
targetPrincipal: 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;
source: readonly ({ loanId: bigint; lender: `0x${string}`; principalAmount: bigint; accruedInterest: bigint; startTime: bigint; aprBps: bigint; })[];
}, `0x${string}`] & readonly [{
renegotiationId: bigint;
loanId: bigint;
lender: `0x${string}`;
fee: bigint;
targetPrincipal: 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;
source: readonly ({ loanId: bigint; lender: `0x${string}`; principalAmount: bigint; accruedInterest: bigint; startTime: bigint; aprBps: bigint; })[];
}, `0x${string}`]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
refinancePartial: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: readonly [{
renegotiationId: bigint;
loanId: bigint;
lender: `0x${string}`;
fee: bigint;
targetPrincipal: 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;
source: readonly ({ loanId: bigint; lender: `0x${string}`; principalAmount: bigint; accruedInterest: bigint; startTime: bigint; aprBps: bigint; })[];
}] | readonly [{
renegotiationId: bigint;
loanId: bigint;
lender: `0x${string}`;
fee: bigint;
targetPrincipal: 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;
source: readonly ({ loanId: bigint; lender: `0x${string}`; principalAmount: bigint; accruedInterest: bigint; startTime: bigint; aprBps: bigint; })[];
}] & readonly [{
renegotiationId: bigint;
loanId: bigint;
lender: `0x${string}`;
fee: bigint;
targetPrincipal: 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;
source: readonly ({ loanId: bigint; lender: `0x${string}`; principalAmount: bigint; accruedInterest: bigint; startTime: bigint; aprBps: bigint; })[];
}]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
repayLoan: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: readonly [{
data: { loanId: bigint; callbackData: `0x${string}`; shouldDelegate: Widen<boolean>; };
loan: { borrower: `0x${string}`; nftCollateralTokenId: bigint; nftCollateralAddress: `0x${string}`; principalAddress: `0x${string}`; principalAmount: bigint; startTime: bigint; duration: bigint; source: readonly { loanId: bigint; lender: `0x${string}`; principalAmount: bigint; accruedInterest: bigint; startTime: bigint; aprBps: 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; source: readonly { loanId: bigint; lender: `0x${string}`; principalAmount: bigint; accruedInterest: bigint; startTime: bigint; aprBps: bigint; }[]; };
borrowerSignature: `0x${string}`;
}] & readonly [{
data: { loanId: bigint; callbackData: `0x${string}`; shouldDelegate: Widen<boolean>; };
loan: { borrower: `0x${string}`; nftCollateralTokenId: bigint; nftCollateralAddress: `0x${string}`; principalAddress: `0x${string}`; principalAmount: bigint; startTime: bigint; duration: bigint; source: readonly { loanId: bigint; lender: `0x${string}`; principalAmount: bigint; accruedInterest: bigint; startTime: bigint; aprBps: bigint; }[]; };
borrowerSignature: `0x${string}`;
}]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
setMaxSources: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: readonly [bigint]
-
Optional
options: {
value?: 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}`[]]
-
Optional
options: {
value?: bigint;
}
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;
source: readonly ({ loanId: bigint; lender: `0x${string}`; principalAmount: bigint; accruedInterest: bigint; startTime: bigint; aprBps: bigint; })[];
}, `0x${string}`, `0x${string}`, Widen<boolean>] | readonly [bigint, {
borrower: `0x${string}`;
nftCollateralTokenId: bigint;
nftCollateralAddress: `0x${string}`;
principalAddress: `0x${string}`;
principalAmount: bigint;
startTime: bigint;
duration: bigint;
source: readonly ({ loanId: bigint; lender: `0x${string}`; principalAmount: bigint; accruedInterest: bigint; startTime: bigint; aprBps: 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;
source: readonly ({ loanId: bigint; lender: `0x${string}`; principalAmount: bigint; accruedInterest: bigint; startTime: bigint; aprBps: bigint; })[];
}, `0x${string}`, `0x${string}`, Widen<boolean>]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
revokeDelegate: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: readonly [`0x${string}`, `0x${string}`, bigint]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
executeFlashAction: ((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;
source: readonly ({ loanId: bigint; lender: `0x${string}`; principalAmount: bigint; accruedInterest: bigint; startTime: bigint; aprBps: bigint; })[];
}, `0x${string}`, `0x${string}`] | readonly [bigint, {
borrower: `0x${string}`;
nftCollateralTokenId: bigint;
nftCollateralAddress: `0x${string}`;
principalAddress: `0x${string}`;
principalAmount: bigint;
startTime: bigint;
duration: bigint;
source: readonly ({ loanId: bigint; lender: `0x${string}`; principalAmount: bigint; accruedInterest: bigint; startTime: bigint; aprBps: bigint; })[];
}, `0x${string}`, `0x${string}`] & readonly [bigint, {
borrower: `0x${string}`;
nftCollateralTokenId: bigint;
nftCollateralAddress: `0x${string}`;
principalAddress: `0x${string}`;
principalAmount: bigint;
startTime: bigint;
duration: bigint;
source: readonly ({ loanId: bigint; lender: `0x${string}`; principalAmount: bigint; accruedInterest: bigint; startTime: bigint; aprBps: bigint; })[];
}, `0x${string}`, `0x${string}`]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
extendLoan: ((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;
source: readonly ({ loanId: bigint; lender: `0x${string}`; principalAmount: bigint; accruedInterest: bigint; startTime: bigint; aprBps: bigint; })[];
}, bigint] | readonly [bigint, {
borrower: `0x${string}`;
nftCollateralTokenId: bigint;
nftCollateralAddress: `0x${string}`;
principalAddress: `0x${string}`;
principalAmount: bigint;
startTime: bigint;
duration: bigint;
source: readonly ({ loanId: bigint; lender: `0x${string}`; principalAmount: bigint; accruedInterest: bigint; startTime: bigint; aprBps: bigint; })[];
}, bigint] & readonly [bigint, {
borrower: `0x${string}`;
nftCollateralTokenId: bigint;
nftCollateralAddress: `0x${string}`;
principalAddress: `0x${string}`;
principalAmount: bigint;
startTime: bigint;
duration: bigint;
source: readonly ({ loanId: bigint; lender: `0x${string}`; principalAmount: bigint; accruedInterest: bigint; startTime: bigint; aprBps: bigint; })[];
}, bigint]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
setDelegateRegistry: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: readonly [`0x${string}`]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
setFlashActionContract: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: readonly [`0x${string}`]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
setMinLockPeriod: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: readonly [bigint]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
parseEventLogs
parseEventLogs: (<TFunctionName>(eventName, logs) => ParseEventLogsReturnType<readonly [{
stateMutability: "nonpayable";
type: "constructor";
inputs: readonly [{
name: "loanLiquidator";
internalType: "address";
type: "address";
}, {
name: "protocolFee";
internalType: "struct IBaseLoan.ProtocolFee";
type: "tuple";
components: readonly [{
name: "recipient";
internalType: "address";
type: "address";
}, {
name: "fraction";
internalType: "uint256";
type: "uint256";
}];
}, {
name: "currencyManager";
internalType: "address";
type: "address";
}, {
name: "collectionManager";
internalType: "address";
type: "address";
}, {
name: "maxSources";
internalType: "uint256";
type: "uint256";
}, {
name: "minLockPeriod";
internalType: "uint256";
type: "uint256";
}, {
name: "delegateRegistry";
internalType: "address";
type: "address";
}, {
name: "flashActionContract";
internalType: "address";
type: "address";
}];
}, {
type: "error";
inputs: readonly [];
name: "AddressZeroError";
}, {
type: "error";
inputs: readonly [{
name: "_lender";
internalType: "address";
type: "address";
}, {
name: "_offerId";
internalType: "uint256";
type: "uint256";
}];
name: "CancelledOrExecutedOfferError";
}, {
type: "error";
inputs: readonly [{
name: "_lender";
internalType: "address";
type: "address";
}, {
name: "_renegotiationId";
internalType: "uint256";
type: "uint256";
}];
name: "CancelledRenegotiationOfferError";
}, {
type: "error";
inputs: readonly [];
name: "CannotLiquidateError";
}, {
type: "error";
inputs: readonly [];
name: "CollectionNotWhitelistedError";
}, {
type: "error";
inputs: readonly [];
name: "CurrencyNotWhitelistedError";
}, {
type: "error";
inputs: readonly [];
name: "ECDSAInvalidSignature";
}, {
type: "error";
inputs: readonly [{
name: "length";
internalType: "uint256";
type: "uint256";
}];
name: "ECDSAInvalidSignatureLength";
}, {
type: "error";
inputs: readonly [{
name: "s";
internalType: "bytes32";
type: "bytes32";
}];
name: "ECDSAInvalidSignatureS";
}, {
type: "error";
inputs: readonly [{
name: "_expirationTime";
internalType: "uint256";
type: "uint256";
}];
name: "ExpiredOfferError";
}, {
type: "error";
inputs: readonly [{
name: "_expirationTime";
internalType: "uint256";
type: "uint256";
}];
name: "ExpiredRenegotiationOfferError";
}, {
type: "error";
inputs: readonly [];
name: "ExtensionNotAvailableError";
}, {
type: "error";
inputs: readonly [{
name: "_amount";
internalType: "uint256";
type: "uint256";
}, {
name: "_principalAmount";
internalType: "uint256";
type: "uint256";
}];
name: "InvalidAmountError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidBorrowerError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidCallbackError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidCollateralIdError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidDurationError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidLenderError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidLiquidationError";
}, {
type: "error";
inputs: readonly [{
name: "_loanId";
internalType: "uint256";
type: "uint256";
}];
name: "InvalidLoanError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidMethodError";
}, {
type: "error";
inputs: readonly [{
name: "_fraction";
internalType: "uint256";
type: "uint256";
}];
name: "InvalidProtocolFeeError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidRenegotiationOfferError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidSignatureError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidValueError";
}, {
type: "error";
inputs: readonly [];
name: "LengthMismatchError";
}, {
type: "error";
inputs: readonly [{
name: "_liquidator";
internalType: "address";
type: "address";
}];
name: "LiquidatorOnlyError";
}, {
type: "error";
inputs: readonly [];
name: "LoanExpiredError";
}, {
type: "error";
inputs: readonly [{
name: "_expirationTime";
internalType: "uint256";
type: "uint256";
}];
name: "LoanNotDueError";
}, {
type: "error";
inputs: readonly [{
name: "_lender";
internalType: "address";
type: "address";
}, {
name: "_newMinOfferId";
internalType: "uint256";
type: "uint256";
}, {
name: "_minOfferId";
internalType: "uint256";
type: "uint256";
}];
name: "LowOfferIdError";
}, {
type: "error";
inputs: readonly [{
name: "_lender";
internalType: "address";
type: "address";
}, {
name: "_newMinRenegotiationOfferId";
internalType: "uint256";
type: "uint256";
}, {
name: "_minOfferId";
internalType: "uint256";
type: "uint256";
}];
name: "LowRenegotiationOfferIdError";
}, {
type: "error";
inputs: readonly [];
name: "MaxCapacityExceededError";
}, {
type: "error";
inputs: readonly [{
name: "minLockPeriod";
internalType: "uint256";
type: "uint256";
}];
name: "MinLockPeriodTooHighError";
}, {
type: "error";
inputs: readonly [{
name: "i";
internalType: "uint256";
type: "uint256";
}, {
name: "returndata";
internalType: "bytes";
type: "bytes";
}];
name: "MulticallFailed";
}, {
type: "error";
inputs: readonly [];
name: "NFTNotReturnedError";
}, {
type: "error";
inputs: readonly [];
name: "NotStrictlyImprovedError";
}, {
type: "error";
inputs: readonly [];
name: "OnlyBorrowerCallableError";
}, {
type: "error";
inputs: readonly [];
name: "OnlyLenderCallableError";
}, {
type: "error";
inputs: readonly [];
name: "OnlyLenderOrBorrowerCallableError";
}, {
type: "error";
inputs: readonly [];
name: "PartialOfferCannotChangeDurationError";
}, {
type: "error";
inputs: readonly [];
name: "PartialOfferCannotHaveFeeError";
}, {
type: "error";
inputs: readonly [];
name: "RefinanceFullError";
}, {
type: "error";
inputs: readonly [{
name: "minTimestamp";
internalType: "uint256";
type: "uint256";
}];
name: "SourceCannotBeRefinancedError";
}, {
type: "error";
inputs: readonly [{
name: "sourcePrincipal";
internalType: "uint256";
type: "uint256";
}, {
name: "loanPrincipal";
internalType: "uint256";
type: "uint256";
}];
name: "TargetPrincipalTooLowError";
}, {
type: "error";
inputs: readonly [{
name: "_pendingProtocolFeeSetTime";
internalType: "uint256";
type: "uint256";
}];
name: "TooEarlyError";
}, {
type: "error";
inputs: readonly [{
name: "sources";
internalType: "uint256";
type: "uint256";
}];
name: "TooManySourcesError";
}, {
type: "error";
inputs: readonly [];
name: "ZeroDurationError";
}, {
type: "error";
inputs: readonly [];
name: "ZeroInterestError";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "lender";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "minOfferId";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "AllOffersCancelled";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "lender";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "minRenegotiationId";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "AllRenegotiationOffersCancelled";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "borrower";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "offerId";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "BorrowerOfferCancelled";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "newdelegateRegistry";
internalType: "address";
type: "address";
indexed: false;
}];
name: "DelegateRegistryUpdated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "delegate";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "value";
internalType: "bool";
type: "bool";
indexed: false;
}];
name: "Delegated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "newFlashActionContract";
internalType: "address";
type: "address";
indexed: false;
}];
name: "FlashActionContractUpdated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "target";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "data";
internalType: "bytes";
type: "bytes";
indexed: false;
}];
name: "FlashActionExecuted";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "minimum";
internalType: "struct IBaseLoan.ImprovementMinimum";
type: "tuple";
components: readonly [{
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "interest";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}];
indexed: false;
}];
name: "ImprovementMinimumUpdated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "newDuration";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "LiquidationAuctionDurationUpdated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "liquidator";
internalType: "address";
type: "address";
indexed: false;
}];
name: "LiquidationContractUpdated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "offerId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
indexed: false;
}, {
name: "lender";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "borrower";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "fee";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "LoanEmitted";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "oldLoanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "newLoanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
indexed: false;
}, {
name: "_extension";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "LoanExtended";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "LoanForeclosed";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "LoanLiquidated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "renegotiationId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "oldLoanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "newLoanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
indexed: false;
}, {
name: "fee";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "LoanRefinanced";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "totalRepayment";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "fee";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "LoanRepaid";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "liquidator";
internalType: "address";
type: "address";
indexed: false;
}];
name: "LoanSentToLiquidator";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "newMax";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "MaxSourcesUpdated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "minLockPeriod";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "MinLockPeriodUpdated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "lender";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "offerId";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "OfferCancelled";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "user";
internalType: "address";
type: "address";
indexed: true;
}, {
name: "newOwner";
internalType: "address";
type: "address";
indexed: true;
}];
name: "OwnershipTransferred";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "fee";
internalType: "struct IBaseLoan.ProtocolFee";
type: "tuple";
components: readonly [{
name: "recipient";
internalType: "address";
type: "address";
}, {
name: "fraction";
internalType: "uint256";
type: "uint256";
}];
indexed: false;
}];
name: "ProtocolFeePendingUpdate";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "fee";
internalType: "struct IBaseLoan.ProtocolFee";
type: "tuple";
components: readonly [{
name: "recipient";
internalType: "address";
type: "address";
}, {
name: "fraction";
internalType: "uint256";
type: "uint256";
}];
indexed: false;
}];
name: "ProtocolFeeUpdated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "lender";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "renegotiationId";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "RenegotiationOfferCancelled";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "delegate";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "collection";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "tokenId";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "RevokeDelegate";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "contractAdded";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "tax";
internalType: "struct WithCallbacks.Taxes";
type: "tuple";
components: readonly [{
name: "buyTax";
internalType: "uint128";
type: "uint128";
}, {
name: "sellTax";
internalType: "uint128";
type: "uint128";
}];
indexed: false;
}];
name: "WhitelistedCallbackContractAdded";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "contractRemoved";
internalType: "address";
type: "address";
indexed: false;
}];
name: "WhitelistedCallbackContractRemoved";
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "DOMAIN_SEPARATOR";
outputs: readonly [{
name: "";
internalType: "bytes32";
type: "bytes32";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "FEE_UPDATE_NOTICE";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "INITIAL_DOMAIN_SEPARATOR";
outputs: readonly [{
name: "";
internalType: "bytes32";
type: "bytes32";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "MAX_PROTOCOL_FEE";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "MIN_AUCTION_DURATION";
outputs: readonly [{
name: "";
internalType: "uint48";
type: "uint48";
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_contract";
internalType: "address";
type: "address";
}, {
name: "_tax";
internalType: "struct WithCallbacks.Taxes";
type: "tuple";
components: readonly [{
name: "buyTax";
internalType: "uint128";
type: "uint128";
}, {
name: "sellTax";
internalType: "uint128";
type: "uint128";
}];
}];
name: "addWhitelistedCallbackContract";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_minOfferId";
internalType: "uint256";
type: "uint256";
}];
name: "cancelAllOffers";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_minRenegotiationId";
internalType: "uint256";
type: "uint256";
}];
name: "cancelAllRenegotiationOffers";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_offerId";
internalType: "uint256";
type: "uint256";
}];
name: "cancelOffer";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_offerIds";
internalType: "uint256[]";
type: "uint256[]";
}];
name: "cancelOffers";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_renegotiationId";
internalType: "uint256";
type: "uint256";
}];
name: "cancelRenegotiationOffer";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_renegotiationIds";
internalType: "uint256[]";
type: "uint256[]";
}];
name: "cancelRenegotiationOffers";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}, {
name: "_delegate";
internalType: "address";
type: "address";
}, {
name: "_rights";
internalType: "bytes32";
type: "bytes32";
}, {
name: "_value";
internalType: "bool";
type: "bool";
}];
name: "delegate";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_executionData";
internalType: "struct IMultiSourceLoan.LoanExecutionData";
type: "tuple";
components: readonly [{
name: "executionData";
internalType: "struct IBaseLoan.ExecutionData";
type: "tuple";
components: readonly [{
name: "offer";
internalType: "struct IBaseLoan.LoanOffer";
type: "tuple";
components: readonly [{
name: "offerId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "fee";
internalType: "uint256";
type: "uint256";
}, {
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "capacity";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}, {
name: "expirationTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "validators";
internalType: "struct IBaseLoan.OfferValidator[]";
type: "tuple[]";
components: readonly [{
name: "validator";
internalType: "address";
type: "address";
}, {
name: "arguments";
internalType: "bytes";
type: "bytes";
}];
}];
}, {
name: "tokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "amount";
internalType: "uint256";
type: "uint256";
}, {
name: "expirationTime";
internalType: "uint256";
type: "uint256";
}, {
name: "callbackData";
internalType: "bytes";
type: "bytes";
}];
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "lenderOfferSignature";
internalType: "bytes";
type: "bytes";
}, {
name: "borrowerOfferSignature";
internalType: "bytes";
type: "bytes";
}];
}];
name: "emitLoan";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}, {
name: "";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "_loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}, {
name: "_target";
internalType: "address";
type: "address";
}, {
name: "_data";
internalType: "bytes";
type: "bytes";
}];
name: "executeFlashAction";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "_loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}, {
name: "_extension";
internalType: "uint256";
type: "uint256";
}];
name: "extendLoan";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}, {
name: "";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getCollectionManager";
outputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getCurrencyManager";
outputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getDelegateRegistry";
outputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getFlashActionContract";
outputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getImprovementMinimum";
outputs: readonly [{
name: "";
internalType: "struct IBaseLoan.ImprovementMinimum";
type: "tuple";
components: readonly [{
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "interest";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}];
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getLiquidationAuctionDuration";
outputs: readonly [{
name: "";
internalType: "uint48";
type: "uint48";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getLiquidator";
outputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [{
name: "_loanId";
internalType: "uint256";
type: "uint256";
}];
name: "getLoanHash";
outputs: readonly [{
name: "";
internalType: "bytes32";
type: "bytes32";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getMaxSources";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getMinLockPeriod";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [{
name: "_loanPrincipal";
internalType: "uint256";
type: "uint256";
}];
name: "getMinSourcePrincipal";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getPendingProtocolFee";
outputs: readonly [{
name: "";
internalType: "struct IBaseLoan.ProtocolFee";
type: "tuple";
components: readonly [{
name: "recipient";
internalType: "address";
type: "address";
}, {
name: "fraction";
internalType: "uint256";
type: "uint256";
}];
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getPendingProtocolFeeSetTime";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getProtocolFee";
outputs: readonly [{
name: "";
internalType: "struct IBaseLoan.ProtocolFee";
type: "tuple";
components: readonly [{
name: "recipient";
internalType: "address";
type: "address";
}, {
name: "fraction";
internalType: "uint256";
type: "uint256";
}];
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getTotalLoansIssued";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [{
name: "_lender";
internalType: "address";
type: "address";
}, {
name: "_offerId";
internalType: "uint256";
type: "uint256";
}];
name: "getUsedCapacity";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [{
name: "";
internalType: "address";
type: "address";
}, {
name: "";
internalType: "uint256";
type: "uint256";
}];
name: "isBorrowerOfferCancelled";
outputs: readonly [{
name: "";
internalType: "bool";
type: "bool";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [{
name: "";
internalType: "address";
type: "address";
}, {
name: "";
internalType: "uint256";
type: "uint256";
}];
name: "isOfferCancelled";
outputs: readonly [{
name: "";
internalType: "bool";
type: "bool";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [{
name: "";
internalType: "address";
type: "address";
}, {
name: "";
internalType: "uint256";
type: "uint256";
}];
name: "isRenegotiationOfferCancelled";
outputs: readonly [{
name: "";
internalType: "bool";
type: "bool";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [{
name: "_contract";
internalType: "address";
type: "address";
}];
name: "isWhitelistedCallbackContract";
outputs: readonly [{
name: "";
internalType: "bool";
type: "bool";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
name: "lenderMinRenegotiationOfferId";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "_loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}];
name: "liquidateLoan";
outputs: readonly [{
name: "";
internalType: "bytes";
type: "bytes";
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "_loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}];
name: "loanLiquidated";
outputs: readonly [];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
name: "minOfferId";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}];
}, {
stateMutability: "payable";
type: "function";
inputs: readonly [{
name: "data";
internalType: "bytes[]";
type: "bytes[]";
}];
name: "multicall";
outputs: readonly [{
name: "results";
internalType: "bytes[]";
type: "bytes[]";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "name";
outputs: readonly [{
name: "";
internalType: "string";
type: "string";
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "";
internalType: "address";
type: "address";
}, {
name: "";
internalType: "address";
type: "address";
}, {
name: "";
internalType: "uint256";
type: "uint256";
}, {
name: "";
internalType: "bytes";
type: "bytes";
}];
name: "onERC721Received";
outputs: readonly [{
name: "";
internalType: "bytes4";
type: "bytes4";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "owner";
outputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_renegotiationOffer";
internalType: "struct IMultiSourceLoan.RenegotiationOffer";
type: "tuple";
components: readonly [{
name: "renegotiationId";
internalType: "uint256";
type: "uint256";
}, {
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "fee";
internalType: "uint256";
type: "uint256";
}, {
name: "targetPrincipal";
internalType: "uint256[]";
type: "uint256[]";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}, {
name: "expirationTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}];
}, {
name: "_loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}, {
name: "_renegotiationOfferSignature";
internalType: "bytes";
type: "bytes";
}];
name: "refinanceFull";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}, {
name: "";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_renegotiationOffer";
internalType: "struct IMultiSourceLoan.RenegotiationOffer";
type: "tuple";
components: readonly [{
name: "renegotiationId";
internalType: "uint256";
type: "uint256";
}, {
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "fee";
internalType: "uint256";
type: "uint256";
}, {
name: "targetPrincipal";
internalType: "uint256[]";
type: "uint256[]";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}, {
name: "expirationTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}];
}, {
name: "_loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}];
name: "refinancePartial";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}, {
name: "";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_contract";
internalType: "address";
type: "address";
}];
name: "removeWhitelistedCallbackContract";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_repaymentData";
internalType: "struct IMultiSourceLoan.LoanRepaymentData";
type: "tuple";
components: readonly [{
name: "data";
internalType: "struct IMultiSourceLoan.SignableRepaymentData";
type: "tuple";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "callbackData";
internalType: "bytes";
type: "bytes";
}, {
name: "shouldDelegate";
internalType: "bool";
type: "bool";
}];
}, {
name: "loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}, {
name: "borrowerSignature";
internalType: "bytes";
type: "bytes";
}];
}];
name: "repayLoan";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_delegate";
internalType: "address";
type: "address";
}, {
name: "_collection";
internalType: "address";
type: "address";
}, {
name: "_tokenId";
internalType: "uint256";
type: "uint256";
}];
name: "revokeDelegate";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_newDelegateRegistry";
internalType: "address";
type: "address";
}];
name: "setDelegateRegistry";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_newFlashActionContract";
internalType: "address";
type: "address";
}];
name: "setFlashActionContract";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "__maxSources";
internalType: "uint256";
type: "uint256";
}];
name: "setMaxSources";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "__minLockPeriod";
internalType: "uint256";
type: "uint256";
}];
name: "setMinLockPeriod";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [];
name: "setProtocolFee";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "newOwner";
internalType: "address";
type: "address";
}];
name: "transferOwnership";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_newMinimum";
internalType: "struct IBaseLoan.ImprovementMinimum";
type: "tuple";
components: readonly [{
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "interest";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}];
}];
name: "updateImprovementMinimum";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_newDuration";
internalType: "uint48";
type: "uint48";
}];
name: "updateLiquidationAuctionDuration";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "loanLiquidator";
internalType: "contract ILoanLiquidator";
type: "address";
}];
name: "updateLiquidationContract";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_newProtocolFee";
internalType: "struct IBaseLoan.ProtocolFee";
type: "tuple";
components: readonly [{
name: "recipient";
internalType: "address";
type: "address";
}, {
name: "fraction";
internalType: "uint256";
type: "uint256";
}];
}];
name: "updateProtocolFee";
outputs: readonly [];
}], TFunctionName, true, TFunctionName extends ("OwnershipTransferred" | "AllOffersCancelled" | "AllRenegotiationOffersCancelled" | "ImprovementMinimumUpdated" | "LiquidationAuctionDurationUpdated" | "LiquidationContractUpdated" | "LoanForeclosed" | "LoanLiquidated" | "LoanSentToLiquidator" | "OfferCancelled" | "ProtocolFeePendingUpdate" | "ProtocolFeeUpdated" | "RenegotiationOfferCancelled" | "WhitelistedCallbackContractAdded" | "WhitelistedCallbackContractRemoved" | "LoanEmitted" | "LoanRefinanced" | "LoanRepaid" | "MaxSourcesUpdated" | "BorrowerOfferCancelled" | "RevokeDelegate" | "DelegateRegistryUpdated" | "Delegated" | "FlashActionContractUpdated" | "FlashActionExecuted" | "LoanExtended" | "MinLockPeriodUpdated")[]
? TFunctionName[number]
: TFunctionName>)
Type declaration
-
- <TFunctionName>(eventName, logs): ParseEventLogsReturnType<readonly [{
stateMutability: "nonpayable";
type: "constructor";
inputs: readonly [{
name: "loanLiquidator";
internalType: "address";
type: "address";
}, {
name: "protocolFee";
internalType: "struct IBaseLoan.ProtocolFee";
type: "tuple";
components: readonly [{
name: "recipient";
internalType: "address";
type: "address";
}, {
name: "fraction";
internalType: "uint256";
type: "uint256";
}];
}, {
name: "currencyManager";
internalType: "address";
type: "address";
}, {
name: "collectionManager";
internalType: "address";
type: "address";
}, {
name: "maxSources";
internalType: "uint256";
type: "uint256";
}, {
name: "minLockPeriod";
internalType: "uint256";
type: "uint256";
}, {
name: "delegateRegistry";
internalType: "address";
type: "address";
}, {
name: "flashActionContract";
internalType: "address";
type: "address";
}];
}, {
type: "error";
inputs: readonly [];
name: "AddressZeroError";
}, {
type: "error";
inputs: readonly [{
name: "_lender";
internalType: "address";
type: "address";
}, {
name: "_offerId";
internalType: "uint256";
type: "uint256";
}];
name: "CancelledOrExecutedOfferError";
}, {
type: "error";
inputs: readonly [{
name: "_lender";
internalType: "address";
type: "address";
}, {
name: "_renegotiationId";
internalType: "uint256";
type: "uint256";
}];
name: "CancelledRenegotiationOfferError";
}, {
type: "error";
inputs: readonly [];
name: "CannotLiquidateError";
}, {
type: "error";
inputs: readonly [];
name: "CollectionNotWhitelistedError";
}, {
type: "error";
inputs: readonly [];
name: "CurrencyNotWhitelistedError";
}, {
type: "error";
inputs: readonly [];
name: "ECDSAInvalidSignature";
}, {
type: "error";
inputs: readonly [{
name: "length";
internalType: "uint256";
type: "uint256";
}];
name: "ECDSAInvalidSignatureLength";
}, {
type: "error";
inputs: readonly [{
name: "s";
internalType: "bytes32";
type: "bytes32";
}];
name: "ECDSAInvalidSignatureS";
}, {
type: "error";
inputs: readonly [{
name: "_expirationTime";
internalType: "uint256";
type: "uint256";
}];
name: "ExpiredOfferError";
}, {
type: "error";
inputs: readonly [{
name: "_expirationTime";
internalType: "uint256";
type: "uint256";
}];
name: "ExpiredRenegotiationOfferError";
}, {
type: "error";
inputs: readonly [];
name: "ExtensionNotAvailableError";
}, {
type: "error";
inputs: readonly [{
name: "_amount";
internalType: "uint256";
type: "uint256";
}, {
name: "_principalAmount";
internalType: "uint256";
type: "uint256";
}];
name: "InvalidAmountError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidBorrowerError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidCallbackError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidCollateralIdError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidDurationError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidLenderError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidLiquidationError";
}, {
type: "error";
inputs: readonly [{
name: "_loanId";
internalType: "uint256";
type: "uint256";
}];
name: "InvalidLoanError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidMethodError";
}, {
type: "error";
inputs: readonly [{
name: "_fraction";
internalType: "uint256";
type: "uint256";
}];
name: "InvalidProtocolFeeError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidRenegotiationOfferError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidSignatureError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidValueError";
}, {
type: "error";
inputs: readonly [];
name: "LengthMismatchError";
}, {
type: "error";
inputs: readonly [{
name: "_liquidator";
internalType: "address";
type: "address";
}];
name: "LiquidatorOnlyError";
}, {
type: "error";
inputs: readonly [];
name: "LoanExpiredError";
}, {
type: "error";
inputs: readonly [{
name: "_expirationTime";
internalType: "uint256";
type: "uint256";
}];
name: "LoanNotDueError";
}, {
type: "error";
inputs: readonly [{
name: "_lender";
internalType: "address";
type: "address";
}, {
name: "_newMinOfferId";
internalType: "uint256";
type: "uint256";
}, {
name: "_minOfferId";
internalType: "uint256";
type: "uint256";
}];
name: "LowOfferIdError";
}, {
type: "error";
inputs: readonly [{
name: "_lender";
internalType: "address";
type: "address";
}, {
name: "_newMinRenegotiationOfferId";
internalType: "uint256";
type: "uint256";
}, {
name: "_minOfferId";
internalType: "uint256";
type: "uint256";
}];
name: "LowRenegotiationOfferIdError";
}, {
type: "error";
inputs: readonly [];
name: "MaxCapacityExceededError";
}, {
type: "error";
inputs: readonly [{
name: "minLockPeriod";
internalType: "uint256";
type: "uint256";
}];
name: "MinLockPeriodTooHighError";
}, {
type: "error";
inputs: readonly [{
name: "i";
internalType: "uint256";
type: "uint256";
}, {
name: "returndata";
internalType: "bytes";
type: "bytes";
}];
name: "MulticallFailed";
}, {
type: "error";
inputs: readonly [];
name: "NFTNotReturnedError";
}, {
type: "error";
inputs: readonly [];
name: "NotStrictlyImprovedError";
}, {
type: "error";
inputs: readonly [];
name: "OnlyBorrowerCallableError";
}, {
type: "error";
inputs: readonly [];
name: "OnlyLenderCallableError";
}, {
type: "error";
inputs: readonly [];
name: "OnlyLenderOrBorrowerCallableError";
}, {
type: "error";
inputs: readonly [];
name: "PartialOfferCannotChangeDurationError";
}, {
type: "error";
inputs: readonly [];
name: "PartialOfferCannotHaveFeeError";
}, {
type: "error";
inputs: readonly [];
name: "RefinanceFullError";
}, {
type: "error";
inputs: readonly [{
name: "minTimestamp";
internalType: "uint256";
type: "uint256";
}];
name: "SourceCannotBeRefinancedError";
}, {
type: "error";
inputs: readonly [{
name: "sourcePrincipal";
internalType: "uint256";
type: "uint256";
}, {
name: "loanPrincipal";
internalType: "uint256";
type: "uint256";
}];
name: "TargetPrincipalTooLowError";
}, {
type: "error";
inputs: readonly [{
name: "_pendingProtocolFeeSetTime";
internalType: "uint256";
type: "uint256";
}];
name: "TooEarlyError";
}, {
type: "error";
inputs: readonly [{
name: "sources";
internalType: "uint256";
type: "uint256";
}];
name: "TooManySourcesError";
}, {
type: "error";
inputs: readonly [];
name: "ZeroDurationError";
}, {
type: "error";
inputs: readonly [];
name: "ZeroInterestError";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "lender";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "minOfferId";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "AllOffersCancelled";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "lender";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "minRenegotiationId";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "AllRenegotiationOffersCancelled";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "borrower";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "offerId";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "BorrowerOfferCancelled";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "newdelegateRegistry";
internalType: "address";
type: "address";
indexed: false;
}];
name: "DelegateRegistryUpdated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "delegate";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "value";
internalType: "bool";
type: "bool";
indexed: false;
}];
name: "Delegated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "newFlashActionContract";
internalType: "address";
type: "address";
indexed: false;
}];
name: "FlashActionContractUpdated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "target";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "data";
internalType: "bytes";
type: "bytes";
indexed: false;
}];
name: "FlashActionExecuted";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "minimum";
internalType: "struct IBaseLoan.ImprovementMinimum";
type: "tuple";
components: readonly [{
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "interest";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}];
indexed: false;
}];
name: "ImprovementMinimumUpdated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "newDuration";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "LiquidationAuctionDurationUpdated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "liquidator";
internalType: "address";
type: "address";
indexed: false;
}];
name: "LiquidationContractUpdated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "offerId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
indexed: false;
}, {
name: "lender";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "borrower";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "fee";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "LoanEmitted";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "oldLoanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "newLoanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
indexed: false;
}, {
name: "_extension";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "LoanExtended";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "LoanForeclosed";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "LoanLiquidated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "renegotiationId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "oldLoanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "newLoanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
indexed: false;
}, {
name: "fee";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "LoanRefinanced";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "totalRepayment";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "fee";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "LoanRepaid";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "liquidator";
internalType: "address";
type: "address";
indexed: false;
}];
name: "LoanSentToLiquidator";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "newMax";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "MaxSourcesUpdated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "minLockPeriod";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "MinLockPeriodUpdated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "lender";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "offerId";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "OfferCancelled";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "user";
internalType: "address";
type: "address";
indexed: true;
}, {
name: "newOwner";
internalType: "address";
type: "address";
indexed: true;
}];
name: "OwnershipTransferred";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "fee";
internalType: "struct IBaseLoan.ProtocolFee";
type: "tuple";
components: readonly [{
name: "recipient";
internalType: "address";
type: "address";
}, {
name: "fraction";
internalType: "uint256";
type: "uint256";
}];
indexed: false;
}];
name: "ProtocolFeePendingUpdate";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "fee";
internalType: "struct IBaseLoan.ProtocolFee";
type: "tuple";
components: readonly [{
name: "recipient";
internalType: "address";
type: "address";
}, {
name: "fraction";
internalType: "uint256";
type: "uint256";
}];
indexed: false;
}];
name: "ProtocolFeeUpdated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "lender";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "renegotiationId";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "RenegotiationOfferCancelled";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "delegate";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "collection";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "tokenId";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "RevokeDelegate";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "contractAdded";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "tax";
internalType: "struct WithCallbacks.Taxes";
type: "tuple";
components: readonly [{
name: "buyTax";
internalType: "uint128";
type: "uint128";
}, {
name: "sellTax";
internalType: "uint128";
type: "uint128";
}];
indexed: false;
}];
name: "WhitelistedCallbackContractAdded";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "contractRemoved";
internalType: "address";
type: "address";
indexed: false;
}];
name: "WhitelistedCallbackContractRemoved";
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "DOMAIN_SEPARATOR";
outputs: readonly [{
name: "";
internalType: "bytes32";
type: "bytes32";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "FEE_UPDATE_NOTICE";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "INITIAL_DOMAIN_SEPARATOR";
outputs: readonly [{
name: "";
internalType: "bytes32";
type: "bytes32";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "MAX_PROTOCOL_FEE";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "MIN_AUCTION_DURATION";
outputs: readonly [{
name: "";
internalType: "uint48";
type: "uint48";
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_contract";
internalType: "address";
type: "address";
}, {
name: "_tax";
internalType: "struct WithCallbacks.Taxes";
type: "tuple";
components: readonly [{
name: "buyTax";
internalType: "uint128";
type: "uint128";
}, {
name: "sellTax";
internalType: "uint128";
type: "uint128";
}];
}];
name: "addWhitelistedCallbackContract";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_minOfferId";
internalType: "uint256";
type: "uint256";
}];
name: "cancelAllOffers";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_minRenegotiationId";
internalType: "uint256";
type: "uint256";
}];
name: "cancelAllRenegotiationOffers";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_offerId";
internalType: "uint256";
type: "uint256";
}];
name: "cancelOffer";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_offerIds";
internalType: "uint256[]";
type: "uint256[]";
}];
name: "cancelOffers";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_renegotiationId";
internalType: "uint256";
type: "uint256";
}];
name: "cancelRenegotiationOffer";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_renegotiationIds";
internalType: "uint256[]";
type: "uint256[]";
}];
name: "cancelRenegotiationOffers";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}, {
name: "_delegate";
internalType: "address";
type: "address";
}, {
name: "_rights";
internalType: "bytes32";
type: "bytes32";
}, {
name: "_value";
internalType: "bool";
type: "bool";
}];
name: "delegate";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_executionData";
internalType: "struct IMultiSourceLoan.LoanExecutionData";
type: "tuple";
components: readonly [{
name: "executionData";
internalType: "struct IBaseLoan.ExecutionData";
type: "tuple";
components: readonly [{
name: "offer";
internalType: "struct IBaseLoan.LoanOffer";
type: "tuple";
components: readonly [{
name: "offerId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "fee";
internalType: "uint256";
type: "uint256";
}, {
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "capacity";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}, {
name: "expirationTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "validators";
internalType: "struct IBaseLoan.OfferValidator[]";
type: "tuple[]";
components: readonly [{
name: "validator";
internalType: "address";
type: "address";
}, {
name: "arguments";
internalType: "bytes";
type: "bytes";
}];
}];
}, {
name: "tokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "amount";
internalType: "uint256";
type: "uint256";
}, {
name: "expirationTime";
internalType: "uint256";
type: "uint256";
}, {
name: "callbackData";
internalType: "bytes";
type: "bytes";
}];
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "lenderOfferSignature";
internalType: "bytes";
type: "bytes";
}, {
name: "borrowerOfferSignature";
internalType: "bytes";
type: "bytes";
}];
}];
name: "emitLoan";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}, {
name: "";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "_loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}, {
name: "_target";
internalType: "address";
type: "address";
}, {
name: "_data";
internalType: "bytes";
type: "bytes";
}];
name: "executeFlashAction";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "_loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}, {
name: "_extension";
internalType: "uint256";
type: "uint256";
}];
name: "extendLoan";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}, {
name: "";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getCollectionManager";
outputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getCurrencyManager";
outputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getDelegateRegistry";
outputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getFlashActionContract";
outputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getImprovementMinimum";
outputs: readonly [{
name: "";
internalType: "struct IBaseLoan.ImprovementMinimum";
type: "tuple";
components: readonly [{
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "interest";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}];
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getLiquidationAuctionDuration";
outputs: readonly [{
name: "";
internalType: "uint48";
type: "uint48";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getLiquidator";
outputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [{
name: "_loanId";
internalType: "uint256";
type: "uint256";
}];
name: "getLoanHash";
outputs: readonly [{
name: "";
internalType: "bytes32";
type: "bytes32";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getMaxSources";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getMinLockPeriod";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [{
name: "_loanPrincipal";
internalType: "uint256";
type: "uint256";
}];
name: "getMinSourcePrincipal";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getPendingProtocolFee";
outputs: readonly [{
name: "";
internalType: "struct IBaseLoan.ProtocolFee";
type: "tuple";
components: readonly [{
name: "recipient";
internalType: "address";
type: "address";
}, {
name: "fraction";
internalType: "uint256";
type: "uint256";
}];
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getPendingProtocolFeeSetTime";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getProtocolFee";
outputs: readonly [{
name: "";
internalType: "struct IBaseLoan.ProtocolFee";
type: "tuple";
components: readonly [{
name: "recipient";
internalType: "address";
type: "address";
}, {
name: "fraction";
internalType: "uint256";
type: "uint256";
}];
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getTotalLoansIssued";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [{
name: "_lender";
internalType: "address";
type: "address";
}, {
name: "_offerId";
internalType: "uint256";
type: "uint256";
}];
name: "getUsedCapacity";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [{
name: "";
internalType: "address";
type: "address";
}, {
name: "";
internalType: "uint256";
type: "uint256";
}];
name: "isBorrowerOfferCancelled";
outputs: readonly [{
name: "";
internalType: "bool";
type: "bool";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [{
name: "";
internalType: "address";
type: "address";
}, {
name: "";
internalType: "uint256";
type: "uint256";
}];
name: "isOfferCancelled";
outputs: readonly [{
name: "";
internalType: "bool";
type: "bool";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [{
name: "";
internalType: "address";
type: "address";
}, {
name: "";
internalType: "uint256";
type: "uint256";
}];
name: "isRenegotiationOfferCancelled";
outputs: readonly [{
name: "";
internalType: "bool";
type: "bool";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [{
name: "_contract";
internalType: "address";
type: "address";
}];
name: "isWhitelistedCallbackContract";
outputs: readonly [{
name: "";
internalType: "bool";
type: "bool";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
name: "lenderMinRenegotiationOfferId";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "_loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}];
name: "liquidateLoan";
outputs: readonly [{
name: "";
internalType: "bytes";
type: "bytes";
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "_loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}];
name: "loanLiquidated";
outputs: readonly [];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
name: "minOfferId";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}];
}, {
stateMutability: "payable";
type: "function";
inputs: readonly [{
name: "data";
internalType: "bytes[]";
type: "bytes[]";
}];
name: "multicall";
outputs: readonly [{
name: "results";
internalType: "bytes[]";
type: "bytes[]";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "name";
outputs: readonly [{
name: "";
internalType: "string";
type: "string";
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "";
internalType: "address";
type: "address";
}, {
name: "";
internalType: "address";
type: "address";
}, {
name: "";
internalType: "uint256";
type: "uint256";
}, {
name: "";
internalType: "bytes";
type: "bytes";
}];
name: "onERC721Received";
outputs: readonly [{
name: "";
internalType: "bytes4";
type: "bytes4";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "owner";
outputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_renegotiationOffer";
internalType: "struct IMultiSourceLoan.RenegotiationOffer";
type: "tuple";
components: readonly [{
name: "renegotiationId";
internalType: "uint256";
type: "uint256";
}, {
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "fee";
internalType: "uint256";
type: "uint256";
}, {
name: "targetPrincipal";
internalType: "uint256[]";
type: "uint256[]";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}, {
name: "expirationTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}];
}, {
name: "_loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}, {
name: "_renegotiationOfferSignature";
internalType: "bytes";
type: "bytes";
}];
name: "refinanceFull";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}, {
name: "";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_renegotiationOffer";
internalType: "struct IMultiSourceLoan.RenegotiationOffer";
type: "tuple";
components: readonly [{
name: "renegotiationId";
internalType: "uint256";
type: "uint256";
}, {
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "fee";
internalType: "uint256";
type: "uint256";
}, {
name: "targetPrincipal";
internalType: "uint256[]";
type: "uint256[]";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}, {
name: "expirationTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}];
}, {
name: "_loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}];
name: "refinancePartial";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}, {
name: "";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_contract";
internalType: "address";
type: "address";
}];
name: "removeWhitelistedCallbackContract";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_repaymentData";
internalType: "struct IMultiSourceLoan.LoanRepaymentData";
type: "tuple";
components: readonly [{
name: "data";
internalType: "struct IMultiSourceLoan.SignableRepaymentData";
type: "tuple";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "callbackData";
internalType: "bytes";
type: "bytes";
}, {
name: "shouldDelegate";
internalType: "bool";
type: "bool";
}];
}, {
name: "loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}, {
name: "borrowerSignature";
internalType: "bytes";
type: "bytes";
}];
}];
name: "repayLoan";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_delegate";
internalType: "address";
type: "address";
}, {
name: "_collection";
internalType: "address";
type: "address";
}, {
name: "_tokenId";
internalType: "uint256";
type: "uint256";
}];
name: "revokeDelegate";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_newDelegateRegistry";
internalType: "address";
type: "address";
}];
name: "setDelegateRegistry";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_newFlashActionContract";
internalType: "address";
type: "address";
}];
name: "setFlashActionContract";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "__maxSources";
internalType: "uint256";
type: "uint256";
}];
name: "setMaxSources";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "__minLockPeriod";
internalType: "uint256";
type: "uint256";
}];
name: "setMinLockPeriod";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [];
name: "setProtocolFee";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "newOwner";
internalType: "address";
type: "address";
}];
name: "transferOwnership";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_newMinimum";
internalType: "struct IBaseLoan.ImprovementMinimum";
type: "tuple";
components: readonly [{
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "interest";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}];
}];
name: "updateImprovementMinimum";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_newDuration";
internalType: "uint48";
type: "uint48";
}];
name: "updateLiquidationAuctionDuration";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "loanLiquidator";
internalType: "contract ILoanLiquidator";
type: "address";
}];
name: "updateLiquidationContract";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_newProtocolFee";
internalType: "struct IBaseLoan.ProtocolFee";
type: "tuple";
components: readonly [{
name: "recipient";
internalType: "address";
type: "address";
}, {
name: "fraction";
internalType: "uint256";
type: "uint256";
}];
}];
name: "updateProtocolFee";
outputs: readonly [];
}], TFunctionName, true, TFunctionName extends ("OwnershipTransferred" | "AllOffersCancelled" | "AllRenegotiationOffersCancelled" | "ImprovementMinimumUpdated" | "LiquidationAuctionDurationUpdated" | "LiquidationContractUpdated" | "LoanForeclosed" | "LoanLiquidated" | "LoanSentToLiquidator" | "OfferCancelled" | "ProtocolFeePendingUpdate" | "ProtocolFeeUpdated" | "RenegotiationOfferCancelled" | "WhitelistedCallbackContractAdded" | "WhitelistedCallbackContractRemoved" | "LoanEmitted" | "LoanRefinanced" | "LoanRepaid" | "MaxSourcesUpdated" | "BorrowerOfferCancelled" | "RevokeDelegate" | "DelegateRegistryUpdated" | "Delegated" | "FlashActionContractUpdated" | "FlashActionExecuted" | "LoanExtended" | "MinLockPeriodUpdated")[]
? TFunctionName[number]
: TFunctionName>
-
Type Parameters
-
TFunctionName extends "OwnershipTransferred" | "AllOffersCancelled" | "AllRenegotiationOffersCancelled" | "ImprovementMinimumUpdated" | "LiquidationAuctionDurationUpdated" | "LiquidationContractUpdated" | "LoanForeclosed" | "LoanLiquidated" | "LoanSentToLiquidator" | "OfferCancelled" | "ProtocolFeePendingUpdate" | "ProtocolFeeUpdated" | "RenegotiationOfferCancelled" | "WhitelistedCallbackContractAdded" | "WhitelistedCallbackContractRemoved" | "LoanEmitted" | "LoanRefinanced" | "LoanRepaid" | "MaxSourcesUpdated" | "BorrowerOfferCancelled" | "RevokeDelegate" | "DelegateRegistryUpdated" | "Delegated" | "FlashActionContractUpdated" | "FlashActionExecuted" | "LoanExtended" | "MinLockPeriodUpdated"
Parameters
-
eventName: TFunctionName
-
logs: Log<bigint, number, false>[]
Returns ParseEventLogsReturnType<readonly [{
stateMutability: "nonpayable";
type: "constructor";
inputs: readonly [{
name: "loanLiquidator";
internalType: "address";
type: "address";
}, {
name: "protocolFee";
internalType: "struct IBaseLoan.ProtocolFee";
type: "tuple";
components: readonly [{
name: "recipient";
internalType: "address";
type: "address";
}, {
name: "fraction";
internalType: "uint256";
type: "uint256";
}];
}, {
name: "currencyManager";
internalType: "address";
type: "address";
}, {
name: "collectionManager";
internalType: "address";
type: "address";
}, {
name: "maxSources";
internalType: "uint256";
type: "uint256";
}, {
name: "minLockPeriod";
internalType: "uint256";
type: "uint256";
}, {
name: "delegateRegistry";
internalType: "address";
type: "address";
}, {
name: "flashActionContract";
internalType: "address";
type: "address";
}];
}, {
type: "error";
inputs: readonly [];
name: "AddressZeroError";
}, {
type: "error";
inputs: readonly [{
name: "_lender";
internalType: "address";
type: "address";
}, {
name: "_offerId";
internalType: "uint256";
type: "uint256";
}];
name: "CancelledOrExecutedOfferError";
}, {
type: "error";
inputs: readonly [{
name: "_lender";
internalType: "address";
type: "address";
}, {
name: "_renegotiationId";
internalType: "uint256";
type: "uint256";
}];
name: "CancelledRenegotiationOfferError";
}, {
type: "error";
inputs: readonly [];
name: "CannotLiquidateError";
}, {
type: "error";
inputs: readonly [];
name: "CollectionNotWhitelistedError";
}, {
type: "error";
inputs: readonly [];
name: "CurrencyNotWhitelistedError";
}, {
type: "error";
inputs: readonly [];
name: "ECDSAInvalidSignature";
}, {
type: "error";
inputs: readonly [{
name: "length";
internalType: "uint256";
type: "uint256";
}];
name: "ECDSAInvalidSignatureLength";
}, {
type: "error";
inputs: readonly [{
name: "s";
internalType: "bytes32";
type: "bytes32";
}];
name: "ECDSAInvalidSignatureS";
}, {
type: "error";
inputs: readonly [{
name: "_expirationTime";
internalType: "uint256";
type: "uint256";
}];
name: "ExpiredOfferError";
}, {
type: "error";
inputs: readonly [{
name: "_expirationTime";
internalType: "uint256";
type: "uint256";
}];
name: "ExpiredRenegotiationOfferError";
}, {
type: "error";
inputs: readonly [];
name: "ExtensionNotAvailableError";
}, {
type: "error";
inputs: readonly [{
name: "_amount";
internalType: "uint256";
type: "uint256";
}, {
name: "_principalAmount";
internalType: "uint256";
type: "uint256";
}];
name: "InvalidAmountError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidBorrowerError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidCallbackError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidCollateralIdError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidDurationError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidLenderError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidLiquidationError";
}, {
type: "error";
inputs: readonly [{
name: "_loanId";
internalType: "uint256";
type: "uint256";
}];
name: "InvalidLoanError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidMethodError";
}, {
type: "error";
inputs: readonly [{
name: "_fraction";
internalType: "uint256";
type: "uint256";
}];
name: "InvalidProtocolFeeError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidRenegotiationOfferError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidSignatureError";
}, {
type: "error";
inputs: readonly [];
name: "InvalidValueError";
}, {
type: "error";
inputs: readonly [];
name: "LengthMismatchError";
}, {
type: "error";
inputs: readonly [{
name: "_liquidator";
internalType: "address";
type: "address";
}];
name: "LiquidatorOnlyError";
}, {
type: "error";
inputs: readonly [];
name: "LoanExpiredError";
}, {
type: "error";
inputs: readonly [{
name: "_expirationTime";
internalType: "uint256";
type: "uint256";
}];
name: "LoanNotDueError";
}, {
type: "error";
inputs: readonly [{
name: "_lender";
internalType: "address";
type: "address";
}, {
name: "_newMinOfferId";
internalType: "uint256";
type: "uint256";
}, {
name: "_minOfferId";
internalType: "uint256";
type: "uint256";
}];
name: "LowOfferIdError";
}, {
type: "error";
inputs: readonly [{
name: "_lender";
internalType: "address";
type: "address";
}, {
name: "_newMinRenegotiationOfferId";
internalType: "uint256";
type: "uint256";
}, {
name: "_minOfferId";
internalType: "uint256";
type: "uint256";
}];
name: "LowRenegotiationOfferIdError";
}, {
type: "error";
inputs: readonly [];
name: "MaxCapacityExceededError";
}, {
type: "error";
inputs: readonly [{
name: "minLockPeriod";
internalType: "uint256";
type: "uint256";
}];
name: "MinLockPeriodTooHighError";
}, {
type: "error";
inputs: readonly [{
name: "i";
internalType: "uint256";
type: "uint256";
}, {
name: "returndata";
internalType: "bytes";
type: "bytes";
}];
name: "MulticallFailed";
}, {
type: "error";
inputs: readonly [];
name: "NFTNotReturnedError";
}, {
type: "error";
inputs: readonly [];
name: "NotStrictlyImprovedError";
}, {
type: "error";
inputs: readonly [];
name: "OnlyBorrowerCallableError";
}, {
type: "error";
inputs: readonly [];
name: "OnlyLenderCallableError";
}, {
type: "error";
inputs: readonly [];
name: "OnlyLenderOrBorrowerCallableError";
}, {
type: "error";
inputs: readonly [];
name: "PartialOfferCannotChangeDurationError";
}, {
type: "error";
inputs: readonly [];
name: "PartialOfferCannotHaveFeeError";
}, {
type: "error";
inputs: readonly [];
name: "RefinanceFullError";
}, {
type: "error";
inputs: readonly [{
name: "minTimestamp";
internalType: "uint256";
type: "uint256";
}];
name: "SourceCannotBeRefinancedError";
}, {
type: "error";
inputs: readonly [{
name: "sourcePrincipal";
internalType: "uint256";
type: "uint256";
}, {
name: "loanPrincipal";
internalType: "uint256";
type: "uint256";
}];
name: "TargetPrincipalTooLowError";
}, {
type: "error";
inputs: readonly [{
name: "_pendingProtocolFeeSetTime";
internalType: "uint256";
type: "uint256";
}];
name: "TooEarlyError";
}, {
type: "error";
inputs: readonly [{
name: "sources";
internalType: "uint256";
type: "uint256";
}];
name: "TooManySourcesError";
}, {
type: "error";
inputs: readonly [];
name: "ZeroDurationError";
}, {
type: "error";
inputs: readonly [];
name: "ZeroInterestError";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "lender";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "minOfferId";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "AllOffersCancelled";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "lender";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "minRenegotiationId";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "AllRenegotiationOffersCancelled";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "borrower";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "offerId";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "BorrowerOfferCancelled";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "newdelegateRegistry";
internalType: "address";
type: "address";
indexed: false;
}];
name: "DelegateRegistryUpdated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "delegate";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "value";
internalType: "bool";
type: "bool";
indexed: false;
}];
name: "Delegated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "newFlashActionContract";
internalType: "address";
type: "address";
indexed: false;
}];
name: "FlashActionContractUpdated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "target";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "data";
internalType: "bytes";
type: "bytes";
indexed: false;
}];
name: "FlashActionExecuted";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "minimum";
internalType: "struct IBaseLoan.ImprovementMinimum";
type: "tuple";
components: readonly [{
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "interest";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}];
indexed: false;
}];
name: "ImprovementMinimumUpdated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "newDuration";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "LiquidationAuctionDurationUpdated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "liquidator";
internalType: "address";
type: "address";
indexed: false;
}];
name: "LiquidationContractUpdated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "offerId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
indexed: false;
}, {
name: "lender";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "borrower";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "fee";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "LoanEmitted";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "oldLoanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "newLoanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
indexed: false;
}, {
name: "_extension";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "LoanExtended";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "LoanForeclosed";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "LoanLiquidated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "renegotiationId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "oldLoanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "newLoanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
indexed: false;
}, {
name: "fee";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "LoanRefinanced";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "totalRepayment";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "fee";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "LoanRepaid";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
indexed: false;
}, {
name: "liquidator";
internalType: "address";
type: "address";
indexed: false;
}];
name: "LoanSentToLiquidator";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "newMax";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "MaxSourcesUpdated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "minLockPeriod";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "MinLockPeriodUpdated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "lender";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "offerId";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "OfferCancelled";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "user";
internalType: "address";
type: "address";
indexed: true;
}, {
name: "newOwner";
internalType: "address";
type: "address";
indexed: true;
}];
name: "OwnershipTransferred";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "fee";
internalType: "struct IBaseLoan.ProtocolFee";
type: "tuple";
components: readonly [{
name: "recipient";
internalType: "address";
type: "address";
}, {
name: "fraction";
internalType: "uint256";
type: "uint256";
}];
indexed: false;
}];
name: "ProtocolFeePendingUpdate";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "fee";
internalType: "struct IBaseLoan.ProtocolFee";
type: "tuple";
components: readonly [{
name: "recipient";
internalType: "address";
type: "address";
}, {
name: "fraction";
internalType: "uint256";
type: "uint256";
}];
indexed: false;
}];
name: "ProtocolFeeUpdated";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "lender";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "renegotiationId";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "RenegotiationOfferCancelled";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "delegate";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "collection";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "tokenId";
internalType: "uint256";
type: "uint256";
indexed: false;
}];
name: "RevokeDelegate";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "contractAdded";
internalType: "address";
type: "address";
indexed: false;
}, {
name: "tax";
internalType: "struct WithCallbacks.Taxes";
type: "tuple";
components: readonly [{
name: "buyTax";
internalType: "uint128";
type: "uint128";
}, {
name: "sellTax";
internalType: "uint128";
type: "uint128";
}];
indexed: false;
}];
name: "WhitelistedCallbackContractAdded";
}, {
type: "event";
anonymous: false;
inputs: readonly [{
name: "contractRemoved";
internalType: "address";
type: "address";
indexed: false;
}];
name: "WhitelistedCallbackContractRemoved";
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "DOMAIN_SEPARATOR";
outputs: readonly [{
name: "";
internalType: "bytes32";
type: "bytes32";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "FEE_UPDATE_NOTICE";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "INITIAL_DOMAIN_SEPARATOR";
outputs: readonly [{
name: "";
internalType: "bytes32";
type: "bytes32";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "MAX_PROTOCOL_FEE";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "MIN_AUCTION_DURATION";
outputs: readonly [{
name: "";
internalType: "uint48";
type: "uint48";
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_contract";
internalType: "address";
type: "address";
}, {
name: "_tax";
internalType: "struct WithCallbacks.Taxes";
type: "tuple";
components: readonly [{
name: "buyTax";
internalType: "uint128";
type: "uint128";
}, {
name: "sellTax";
internalType: "uint128";
type: "uint128";
}];
}];
name: "addWhitelistedCallbackContract";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_minOfferId";
internalType: "uint256";
type: "uint256";
}];
name: "cancelAllOffers";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_minRenegotiationId";
internalType: "uint256";
type: "uint256";
}];
name: "cancelAllRenegotiationOffers";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_offerId";
internalType: "uint256";
type: "uint256";
}];
name: "cancelOffer";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_offerIds";
internalType: "uint256[]";
type: "uint256[]";
}];
name: "cancelOffers";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_renegotiationId";
internalType: "uint256";
type: "uint256";
}];
name: "cancelRenegotiationOffer";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_renegotiationIds";
internalType: "uint256[]";
type: "uint256[]";
}];
name: "cancelRenegotiationOffers";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}, {
name: "_delegate";
internalType: "address";
type: "address";
}, {
name: "_rights";
internalType: "bytes32";
type: "bytes32";
}, {
name: "_value";
internalType: "bool";
type: "bool";
}];
name: "delegate";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_executionData";
internalType: "struct IMultiSourceLoan.LoanExecutionData";
type: "tuple";
components: readonly [{
name: "executionData";
internalType: "struct IBaseLoan.ExecutionData";
type: "tuple";
components: readonly [{
name: "offer";
internalType: "struct IBaseLoan.LoanOffer";
type: "tuple";
components: readonly [{
name: "offerId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "fee";
internalType: "uint256";
type: "uint256";
}, {
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "capacity";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}, {
name: "expirationTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "validators";
internalType: "struct IBaseLoan.OfferValidator[]";
type: "tuple[]";
components: readonly [{
name: "validator";
internalType: "address";
type: "address";
}, {
name: "arguments";
internalType: "bytes";
type: "bytes";
}];
}];
}, {
name: "tokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "amount";
internalType: "uint256";
type: "uint256";
}, {
name: "expirationTime";
internalType: "uint256";
type: "uint256";
}, {
name: "callbackData";
internalType: "bytes";
type: "bytes";
}];
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "lenderOfferSignature";
internalType: "bytes";
type: "bytes";
}, {
name: "borrowerOfferSignature";
internalType: "bytes";
type: "bytes";
}];
}];
name: "emitLoan";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}, {
name: "";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "_loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}, {
name: "_target";
internalType: "address";
type: "address";
}, {
name: "_data";
internalType: "bytes";
type: "bytes";
}];
name: "executeFlashAction";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "_loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}, {
name: "_extension";
internalType: "uint256";
type: "uint256";
}];
name: "extendLoan";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}, {
name: "";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getCollectionManager";
outputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getCurrencyManager";
outputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getDelegateRegistry";
outputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getFlashActionContract";
outputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getImprovementMinimum";
outputs: readonly [{
name: "";
internalType: "struct IBaseLoan.ImprovementMinimum";
type: "tuple";
components: readonly [{
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "interest";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}];
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getLiquidationAuctionDuration";
outputs: readonly [{
name: "";
internalType: "uint48";
type: "uint48";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getLiquidator";
outputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [{
name: "_loanId";
internalType: "uint256";
type: "uint256";
}];
name: "getLoanHash";
outputs: readonly [{
name: "";
internalType: "bytes32";
type: "bytes32";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getMaxSources";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getMinLockPeriod";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [{
name: "_loanPrincipal";
internalType: "uint256";
type: "uint256";
}];
name: "getMinSourcePrincipal";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getPendingProtocolFee";
outputs: readonly [{
name: "";
internalType: "struct IBaseLoan.ProtocolFee";
type: "tuple";
components: readonly [{
name: "recipient";
internalType: "address";
type: "address";
}, {
name: "fraction";
internalType: "uint256";
type: "uint256";
}];
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getPendingProtocolFeeSetTime";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getProtocolFee";
outputs: readonly [{
name: "";
internalType: "struct IBaseLoan.ProtocolFee";
type: "tuple";
components: readonly [{
name: "recipient";
internalType: "address";
type: "address";
}, {
name: "fraction";
internalType: "uint256";
type: "uint256";
}];
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "getTotalLoansIssued";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [{
name: "_lender";
internalType: "address";
type: "address";
}, {
name: "_offerId";
internalType: "uint256";
type: "uint256";
}];
name: "getUsedCapacity";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [{
name: "";
internalType: "address";
type: "address";
}, {
name: "";
internalType: "uint256";
type: "uint256";
}];
name: "isBorrowerOfferCancelled";
outputs: readonly [{
name: "";
internalType: "bool";
type: "bool";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [{
name: "";
internalType: "address";
type: "address";
}, {
name: "";
internalType: "uint256";
type: "uint256";
}];
name: "isOfferCancelled";
outputs: readonly [{
name: "";
internalType: "bool";
type: "bool";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [{
name: "";
internalType: "address";
type: "address";
}, {
name: "";
internalType: "uint256";
type: "uint256";
}];
name: "isRenegotiationOfferCancelled";
outputs: readonly [{
name: "";
internalType: "bool";
type: "bool";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [{
name: "_contract";
internalType: "address";
type: "address";
}];
name: "isWhitelistedCallbackContract";
outputs: readonly [{
name: "";
internalType: "bool";
type: "bool";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
name: "lenderMinRenegotiationOfferId";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "_loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}];
name: "liquidateLoan";
outputs: readonly [{
name: "";
internalType: "bytes";
type: "bytes";
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "_loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}];
name: "loanLiquidated";
outputs: readonly [];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
name: "minOfferId";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}];
}, {
stateMutability: "payable";
type: "function";
inputs: readonly [{
name: "data";
internalType: "bytes[]";
type: "bytes[]";
}];
name: "multicall";
outputs: readonly [{
name: "results";
internalType: "bytes[]";
type: "bytes[]";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "name";
outputs: readonly [{
name: "";
internalType: "string";
type: "string";
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "";
internalType: "address";
type: "address";
}, {
name: "";
internalType: "address";
type: "address";
}, {
name: "";
internalType: "uint256";
type: "uint256";
}, {
name: "";
internalType: "bytes";
type: "bytes";
}];
name: "onERC721Received";
outputs: readonly [{
name: "";
internalType: "bytes4";
type: "bytes4";
}];
}, {
stateMutability: "view";
type: "function";
inputs: readonly [];
name: "owner";
outputs: readonly [{
name: "";
internalType: "address";
type: "address";
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_renegotiationOffer";
internalType: "struct IMultiSourceLoan.RenegotiationOffer";
type: "tuple";
components: readonly [{
name: "renegotiationId";
internalType: "uint256";
type: "uint256";
}, {
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "fee";
internalType: "uint256";
type: "uint256";
}, {
name: "targetPrincipal";
internalType: "uint256[]";
type: "uint256[]";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}, {
name: "expirationTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}];
}, {
name: "_loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}, {
name: "_renegotiationOfferSignature";
internalType: "bytes";
type: "bytes";
}];
name: "refinanceFull";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}, {
name: "";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_renegotiationOffer";
internalType: "struct IMultiSourceLoan.RenegotiationOffer";
type: "tuple";
components: readonly [{
name: "renegotiationId";
internalType: "uint256";
type: "uint256";
}, {
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "fee";
internalType: "uint256";
type: "uint256";
}, {
name: "targetPrincipal";
internalType: "uint256[]";
type: "uint256[]";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}, {
name: "expirationTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}];
}, {
name: "_loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}];
name: "refinancePartial";
outputs: readonly [{
name: "";
internalType: "uint256";
type: "uint256";
}, {
name: "";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_contract";
internalType: "address";
type: "address";
}];
name: "removeWhitelistedCallbackContract";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_repaymentData";
internalType: "struct IMultiSourceLoan.LoanRepaymentData";
type: "tuple";
components: readonly [{
name: "data";
internalType: "struct IMultiSourceLoan.SignableRepaymentData";
type: "tuple";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "callbackData";
internalType: "bytes";
type: "bytes";
}, {
name: "shouldDelegate";
internalType: "bool";
type: "bool";
}];
}, {
name: "loan";
internalType: "struct IMultiSourceLoan.Loan";
type: "tuple";
components: readonly [{
name: "borrower";
internalType: "address";
type: "address";
}, {
name: "nftCollateralTokenId";
internalType: "uint256";
type: "uint256";
}, {
name: "nftCollateralAddress";
internalType: "address";
type: "address";
}, {
name: "principalAddress";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}, {
name: "source";
internalType: "struct IMultiSourceLoan.Source[]";
type: "tuple[]";
components: readonly [{
name: "loanId";
internalType: "uint256";
type: "uint256";
}, {
name: "lender";
internalType: "address";
type: "address";
}, {
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "accruedInterest";
internalType: "uint256";
type: "uint256";
}, {
name: "startTime";
internalType: "uint256";
type: "uint256";
}, {
name: "aprBps";
internalType: "uint256";
type: "uint256";
}];
}];
}, {
name: "borrowerSignature";
internalType: "bytes";
type: "bytes";
}];
}];
name: "repayLoan";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_delegate";
internalType: "address";
type: "address";
}, {
name: "_collection";
internalType: "address";
type: "address";
}, {
name: "_tokenId";
internalType: "uint256";
type: "uint256";
}];
name: "revokeDelegate";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_newDelegateRegistry";
internalType: "address";
type: "address";
}];
name: "setDelegateRegistry";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_newFlashActionContract";
internalType: "address";
type: "address";
}];
name: "setFlashActionContract";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "__maxSources";
internalType: "uint256";
type: "uint256";
}];
name: "setMaxSources";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "__minLockPeriod";
internalType: "uint256";
type: "uint256";
}];
name: "setMinLockPeriod";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [];
name: "setProtocolFee";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "newOwner";
internalType: "address";
type: "address";
}];
name: "transferOwnership";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_newMinimum";
internalType: "struct IBaseLoan.ImprovementMinimum";
type: "tuple";
components: readonly [{
name: "principalAmount";
internalType: "uint256";
type: "uint256";
}, {
name: "interest";
internalType: "uint256";
type: "uint256";
}, {
name: "duration";
internalType: "uint256";
type: "uint256";
}];
}];
name: "updateImprovementMinimum";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_newDuration";
internalType: "uint48";
type: "uint48";
}];
name: "updateLiquidationAuctionDuration";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "loanLiquidator";
internalType: "contract ILoanLiquidator";
type: "address";
}];
name: "updateLiquidationContract";
outputs: readonly [];
}, {
stateMutability: "nonpayable";
type: "function";
inputs: readonly [{
name: "_newProtocolFee";
internalType: "struct IBaseLoan.ProtocolFee";
type: "tuple";
components: readonly [{
name: "recipient";
internalType: "address";
type: "address";
}, {
name: "fraction";
internalType: "uint256";
type: "uint256";
}];
}];
name: "updateProtocolFee";
outputs: readonly [];
}], TFunctionName, true, TFunctionName extends ("OwnershipTransferred" | "AllOffersCancelled" | "AllRenegotiationOffersCancelled" | "ImprovementMinimumUpdated" | "LiquidationAuctionDurationUpdated" | "LiquidationContractUpdated" | "LoanForeclosed" | "LoanLiquidated" | "LoanSentToLiquidator" | "OfferCancelled" | "ProtocolFeePendingUpdate" | "ProtocolFeeUpdated" | "RenegotiationOfferCancelled" | "WhitelistedCallbackContractAdded" | "WhitelistedCallbackContractRemoved" | "LoanEmitted" | "LoanRefinanced" | "LoanRepaid" | "MaxSourcesUpdated" | "BorrowerOfferCancelled" | "RevokeDelegate" | "DelegateRegistryUpdated" | "Delegated" | "FlashActionContractUpdated" | "FlashActionExecuted" | "LoanExtended" | "MinLockPeriodUpdated")[]
? TFunctionName[number]
: TFunctionName>