gondi 0.3.4 → 0.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.mjs +188 -53
- package/dist/index.mjs.map +3 -3
- package/dist/src/api.d.ts +13 -0
- package/dist/src/contracts/Seaport.d.ts +5 -1
- package/dist/src/generated/graphql/index.d.ts +257 -61
- package/dist/src/gondi.d.ts +39 -1
- package/dist/src/graphql/sdk.d.ts +13 -0
- package/dist/src/reservoir/utils.d.ts +1 -0
- package/dist/src/utils.d.ts +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
var ne=Object.defineProperty;var Le=(s,e,t)=>e in s?ne(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t;var l=(s,e)=>ne(s,"name",{value:e,configurable:!0});var ae=(s,e,t)=>(Le(s,typeof e!="symbol"?e+"":e,t),t);import{createPublicClient as kt,createTransport as Et}from"viem";import{decodeEventLog as De,encodeEventTopics as He,getContract as Te,zeroAddress as Ve}from"viem";var ie=[{stateMutability:"nonpayable",type:"constructor",inputs:[{name:"liquidationDistributor",internalType:"address",type:"address"},{name:"currencyManager",internalType:"address",type:"address"},{name:"collectionManager",internalType:"address",type:"address"},{name:"triggerFee",internalType:"uint256",type:"uint256"}]},{type:"error",inputs:[],name:"AddressZeroError"},{type:"error",inputs:[],name:"AuctionAlreadyInProgressError"},{type:"error",inputs:[{name:"_expiration",internalType:"uint96",type:"uint96"}],name:"AuctionNotOverError"},{type:"error",inputs:[{name:"_expiration",internalType:"uint96",type:"uint96"}],name:"AuctionOverError"},{type:"error",inputs:[],name:"CollectionNotWhitelistedError"},{type:"error",inputs:[],name:"CouldNotModifyValidLoansError"},{type:"error",inputs:[],name:"CurrencyNotWhitelistedError"},{type:"error",inputs:[],name:"InvalidHashAuctionError"},{type:"error",inputs:[{name:"triggerFee",internalType:"uint256",type:"uint256"}],name:"InvalidTriggerFee"},{type:"error",inputs:[{name:"_loan",internalType:"address",type:"address"}],name:"LoanNotAcceptedError"},{type:"error",inputs:[{name:"_minBid",internalType:"uint256",type:"uint256"}],name:"MinBidError"},{type:"error",inputs:[{name:"_owner",internalType:"address",type:"address"}],name:"NFTNotOwnedError"},{type:"error",inputs:[],name:"NoBidsError"},{type:"error",inputs:[],name:"ZeroAddressError"},{type:"event",anonymous:!1,inputs:[{name:"loanContract",internalType:"address",type:"address",indexed:!1},{name:"loanId",internalType:"uint256",type:"uint256",indexed:!1},{name:"auctionContract",internalType:"address",type:"address",indexed:!1},{name:"tokenId",internalType:"uint256",type:"uint256",indexed:!1},{name:"asset",internalType:"address",type:"address",indexed:!1},{name:"proceeds",internalType:"uint256",type:"uint256",indexed:!1},{name:"settler",internalType:"address",type:"address",indexed:!1},{name:"triggerFee",internalType:"uint256",type:"uint256",indexed:!1}],name:"AuctionSettled"},{type:"event",anonymous:!1,inputs:[{name:"collection",internalType:"address",type:"address",indexed:!1},{name:"tokenId",internalType:"uint256",type:"uint256",indexed:!1},{name:"newBidder",internalType:"address",type:"address",indexed:!1},{name:"bid",internalType:"uint256",type:"uint256",indexed:!1},{name:"loanAddress",internalType:"address",type:"address",indexed:!1},{name:"loanId",internalType:"uint256",type:"uint256",indexed:!1}],name:"BidPlaced"},{type:"event",anonymous:!1,inputs:[{name:"liquidationDistributor",internalType:"address",type:"address",indexed:!1}],name:"LiquidationDistributorUpdated"},{type:"event",anonymous:!1,inputs:[{name:"loan",internalType:"address",type:"address",indexed:!1}],name:"LoanContractAdded"},{type:"event",anonymous:!1,inputs:[{name:"loan",internalType:"address",type:"address",indexed:!1}],name:"LoanContractRemoved"},{type:"event",anonymous:!1,inputs:[{name:"collection",internalType:"address",type:"address",indexed:!1},{name:"tokenId",internalType:"uint256",type:"uint256",indexed:!1},{name:"auction",internalType:"struct IAuctionLoanLiquidator.Auction",type:"tuple",components:[{name:"loanAddress",internalType:"address",type:"address"},{name:"loanId",internalType:"uint256",type:"uint256"},{name:"highestBid",internalType:"uint256",type:"uint256"},{name:"triggerFee",internalType:"uint256",type:"uint256"},{name:"highestBidder",internalType:"address",type:"address"},{name:"duration",internalType:"uint96",type:"uint96"},{name:"asset",internalType:"address",type:"address"},{name:"startTime",internalType:"uint96",type:"uint96"},{name:"originator",internalType:"address",type:"address"},{name:"lastBidTime",internalType:"uint96",type:"uint96"}],indexed:!1}],name:"LoanLiquidationStarted"},{type:"event",anonymous:!1,inputs:[{name:"user",internalType:"address",type:"address",indexed:!0},{name:"newOwner",internalType:"address",type:"address",indexed:!0}],name:"OwnershipTransferred"},{type:"event",anonymous:!1,inputs:[{name:"triggerFee",internalType:"uint256",type:"uint256",indexed:!1}],name:"TriggerFeeUpdated"},{stateMutability:"view",type:"function",inputs:[],name:"MAX_TRIGGER_FEE",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"view",type:"function",inputs:[],name:"MIN_INCREMENT_BPS",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_loanContract",internalType:"address",type:"address"}],name:"addLoanContract",outputs:[]},{stateMutability:"view",type:"function",inputs:[{name:"_contract",internalType:"address",type:"address"},{name:"_tokenId",internalType:"uint256",type:"uint256"}],name:"getAuctionHash",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}]},{stateMutability:"view",type:"function",inputs:[],name:"getLiquidationDistributor",outputs:[{name:"",internalType:"address",type:"address"}]},{stateMutability:"view",type:"function",inputs:[],name:"getTriggerFee",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"view",type:"function",inputs:[],name:"getValidLoanContracts",outputs:[{name:"",internalType:"address[]",type:"address[]"}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_loanId",internalType:"uint256",type:"uint256"},{name:"_contract",internalType:"address",type:"address"},{name:"_tokenId",internalType:"uint256",type:"uint256"},{name:"_asset",internalType:"address",type:"address"},{name:"_duration",internalType:"uint96",type:"uint96"},{name:"_originator",internalType:"address",type:"address"}],name:"liquidateLoan",outputs:[{name:"",internalType:"bytes",type:"bytes"}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"",internalType:"address",type:"address"},{name:"",internalType:"address",type:"address"},{name:"",internalType:"uint256",type:"uint256"},{name:"",internalType:"bytes",type:"bytes"}],name:"onERC721Received",outputs:[{name:"",internalType:"bytes4",type:"bytes4"}]},{stateMutability:"view",type:"function",inputs:[],name:"owner",outputs:[{name:"",internalType:"address",type:"address"}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_contract",internalType:"address",type:"address"},{name:"_tokenId",internalType:"uint256",type:"uint256"},{name:"_auction",internalType:"struct IAuctionLoanLiquidator.Auction",type:"tuple",components:[{name:"loanAddress",internalType:"address",type:"address"},{name:"loanId",internalType:"uint256",type:"uint256"},{name:"highestBid",internalType:"uint256",type:"uint256"},{name:"triggerFee",internalType:"uint256",type:"uint256"},{name:"highestBidder",internalType:"address",type:"address"},{name:"duration",internalType:"uint96",type:"uint96"},{name:"asset",internalType:"address",type:"address"},{name:"startTime",internalType:"uint96",type:"uint96"},{name:"originator",internalType:"address",type:"address"},{name:"lastBidTime",internalType:"uint96",type:"uint96"}]},{name:"_bid",internalType:"uint256",type:"uint256"}],name:"placeBid",outputs:[{name:"",internalType:"struct IAuctionLoanLiquidator.Auction",type:"tuple",components:[{name:"loanAddress",internalType:"address",type:"address"},{name:"loanId",internalType:"uint256",type:"uint256"},{name:"highestBid",internalType:"uint256",type:"uint256"},{name:"triggerFee",internalType:"uint256",type:"uint256"},{name:"highestBidder",internalType:"address",type:"address"},{name:"duration",internalType:"uint96",type:"uint96"},{name:"asset",internalType:"address",type:"address"},{name:"startTime",internalType:"uint96",type:"uint96"},{name:"originator",internalType:"address",type:"address"},{name:"lastBidTime",internalType:"uint96",type:"uint96"}]}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_loanContract",internalType:"address",type:"address"}],name:"removeLoanContract",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_auction",internalType:"struct IAuctionLoanLiquidator.Auction",type:"tuple",components:[{name:"loanAddress",internalType:"address",type:"address"},{name:"loanId",internalType:"uint256",type:"uint256"},{name:"highestBid",internalType:"uint256",type:"uint256"},{name:"triggerFee",internalType:"uint256",type:"uint256"},{name:"highestBidder",internalType:"address",type:"address"},{name:"duration",internalType:"uint96",type:"uint96"},{name:"asset",internalType:"address",type:"address"},{name:"startTime",internalType:"uint96",type:"uint96"},{name:"originator",internalType:"address",type:"address"},{name:"lastBidTime",internalType:"uint96",type:"uint96"}]},{name:"_loan",internalType:"struct IMultiSourceLoan.Loan",type:"tuple",components:[{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:[{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:"settleAuction",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"newOwner",internalType:"address",type:"address"}],name:"transferOwnership",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"__liquidationDistributor",internalType:"address",type:"address"}],name:"updateLiquidationDistributor",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"triggerFee",internalType:"uint256",type:"uint256"}],name:"updateTriggerFee",outputs:[]}];var re=[{type:"event",anonymous:!1,inputs:[{name:"owner",internalType:"address",type:"address",indexed:!0},{name:"spender",internalType:"address",type:"address",indexed:!0},{name:"amount",internalType:"uint256",type:"uint256",indexed:!1}],name:"Approval"},{type:"event",anonymous:!1,inputs:[{name:"from",internalType:"address",type:"address",indexed:!0},{name:"to",internalType:"address",type:"address",indexed:!0},{name:"amount",internalType:"uint256",type:"uint256",indexed:!1}],name:"Transfer"},{stateMutability:"view",type:"function",inputs:[],name:"DOMAIN_SEPARATOR",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}]},{stateMutability:"view",type:"function",inputs:[{name:"",internalType:"address",type:"address"},{name:"",internalType:"address",type:"address"}],name:"allowance",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"spender",internalType:"address",type:"address"},{name:"amount",internalType:"uint256",type:"uint256"}],name:"approve",outputs:[{name:"",internalType:"bool",type:"bool"}]},{stateMutability:"view",type:"function",inputs:[{name:"",internalType:"address",type:"address"}],name:"balanceOf",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"view",type:"function",inputs:[],name:"decimals",outputs:[{name:"",internalType:"uint8",type:"uint8"}]},{stateMutability:"view",type:"function",inputs:[],name:"name",outputs:[{name:"",internalType:"string",type:"string"}]},{stateMutability:"view",type:"function",inputs:[{name:"",internalType:"address",type:"address"}],name:"nonces",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"owner",internalType:"address",type:"address"},{name:"spender",internalType:"address",type:"address"},{name:"value",internalType:"uint256",type:"uint256"},{name:"deadline",internalType:"uint256",type:"uint256"},{name:"v",internalType:"uint8",type:"uint8"},{name:"r",internalType:"bytes32",type:"bytes32"},{name:"s",internalType:"bytes32",type:"bytes32"}],name:"permit",outputs:[]},{stateMutability:"view",type:"function",inputs:[],name:"symbol",outputs:[{name:"",internalType:"string",type:"string"}]},{stateMutability:"view",type:"function",inputs:[],name:"totalSupply",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"to",internalType:"address",type:"address"},{name:"amount",internalType:"uint256",type:"uint256"}],name:"transfer",outputs:[{name:"",internalType:"bool",type:"bool"}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"from",internalType:"address",type:"address"},{name:"to",internalType:"address",type:"address"},{name:"amount",internalType:"uint256",type:"uint256"}],name:"transferFrom",outputs:[{name:"",internalType:"bool",type:"bool"}]}],W=[{type:"event",anonymous:!1,inputs:[{name:"owner",internalType:"address",type:"address",indexed:!0},{name:"spender",internalType:"address",type:"address",indexed:!0},{name:"id",internalType:"uint256",type:"uint256",indexed:!0}],name:"Approval"},{type:"event",anonymous:!1,inputs:[{name:"owner",internalType:"address",type:"address",indexed:!0},{name:"operator",internalType:"address",type:"address",indexed:!0},{name:"approved",internalType:"bool",type:"bool",indexed:!1}],name:"ApprovalForAll"},{type:"event",anonymous:!1,inputs:[{name:"from",internalType:"address",type:"address",indexed:!0},{name:"to",internalType:"address",type:"address",indexed:!0},{name:"id",internalType:"uint256",type:"uint256",indexed:!0}],name:"Transfer"},{stateMutability:"nonpayable",type:"function",inputs:[{name:"spender",internalType:"address",type:"address"},{name:"id",internalType:"uint256",type:"uint256"}],name:"approve",outputs:[]},{stateMutability:"view",type:"function",inputs:[{name:"owner",internalType:"address",type:"address"}],name:"balanceOf",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"view",type:"function",inputs:[{name:"",internalType:"uint256",type:"uint256"}],name:"getApproved",outputs:[{name:"",internalType:"address",type:"address"}]},{stateMutability:"view",type:"function",inputs:[{name:"",internalType:"address",type:"address"},{name:"",internalType:"address",type:"address"}],name:"isApprovedForAll",outputs:[{name:"",internalType:"bool",type:"bool"}]},{stateMutability:"view",type:"function",inputs:[],name:"name",outputs:[{name:"",internalType:"string",type:"string"}]},{stateMutability:"view",type:"function",inputs:[{name:"id",internalType:"uint256",type:"uint256"}],name:"ownerOf",outputs:[{name:"owner",internalType:"address",type:"address"}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"from",internalType:"address",type:"address"},{name:"to",internalType:"address",type:"address"},{name:"id",internalType:"uint256",type:"uint256"}],name:"safeTransferFrom",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"from",internalType:"address",type:"address"},{name:"to",internalType:"address",type:"address"},{name:"id",internalType:"uint256",type:"uint256"},{name:"data",internalType:"bytes",type:"bytes"}],name:"safeTransferFrom",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"operator",internalType:"address",type:"address"},{name:"approved",internalType:"bool",type:"bool"}],name:"setApprovalForAll",outputs:[]},{stateMutability:"view",type:"function",inputs:[{name:"interfaceId",internalType:"bytes4",type:"bytes4"}],name:"supportsInterface",outputs:[{name:"",internalType:"bool",type:"bool"}]},{stateMutability:"view",type:"function",inputs:[],name:"symbol",outputs:[{name:"",internalType:"string",type:"string"}]},{stateMutability:"view",type:"function",inputs:[{name:"id",internalType:"uint256",type:"uint256"}],name:"tokenURI",outputs:[{name:"",internalType:"string",type:"string"}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"from",internalType:"address",type:"address"},{name:"to",internalType:"address",type:"address"},{name:"id",internalType:"uint256",type:"uint256"}],name:"transferFrom",outputs:[]}];var se=[{stateMutability:"nonpayable",type:"constructor",inputs:[{name:"_multiSourceLoanAddress",internalType:"address",type:"address"},{name:"_marketplaceContracts",internalType:"address",type:"address"},{name:"_wethAddress",internalType:"address payable",type:"address"},{name:"_punkMarketAddress",internalType:"address payable",type:"address"},{name:"_wrappedPunkAddress",internalType:"address payable",type:"address"},{name:"_seaportAddress",internalType:"address payable",type:"address"}]},{type:"error",inputs:[],name:"AddressZeroError"},{type:"error",inputs:[],name:"CouldNotReturnEthError"},{type:"error",inputs:[],name:"InvalidAddressUpdateError"},{type:"error",inputs:[],name:"InvalidCallbackError"},{type:"error",inputs:[],name:"MarketplaceAddressNotWhitelisted"},{type:"error",inputs:[],name:"OnlyMultiSourceLoanError"},{type:"error",inputs:[],name:"OnlyWethSupportedError"},{type:"event",anonymous:!1,inputs:[{name:"_loanIds",internalType:"uint256[]",type:"uint256[]",indexed:!1}],name:"BNPLLoansStarted"},{type:"event",anonymous:!1,inputs:[{name:"_newAddress",internalType:"address",type:"address",indexed:!1}],name:"MultiSourceLoanPendingUpdate"},{type:"event",anonymous:!1,inputs:[{name:"_newAddress",internalType:"address",type:"address",indexed:!1}],name:"MultiSourceLoanUpdated"},{type:"event",anonymous:!1,inputs:[{name:"user",internalType:"address",type:"address",indexed:!0},{name:"newOwner",internalType:"address",type:"address",indexed:!0}],name:"OwnershipTransferred"},{type:"event",anonymous:!1,inputs:[{name:"_newAddress",internalType:"address",type:"address",indexed:!1}],name:"SeaportPendingUpdate"},{type:"event",anonymous:!1,inputs:[{name:"_newAddress",internalType:"address",type:"address",indexed:!1}],name:"SeaportUpdated"},{type:"event",anonymous:!1,inputs:[{name:"_loanIds",internalType:"uint256[]",type:"uint256[]",indexed:!1}],name:"SellAndRepayExecuted"},{stateMutability:"payable",type:"fallback"},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_loan",internalType:"struct IMultiSourceLoan.Loan",type:"tuple",components:[{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:[{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:"_executionData",internalType:"bytes",type:"bytes"}],name:"afterNFTTransfer",outputs:[{name:"",internalType:"bytes4",type:"bytes4"}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_loan",internalType:"struct IMultiSourceLoan.Loan",type:"tuple",components:[{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:[{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:"_fee",internalType:"uint256",type:"uint256"},{name:"_executionData",internalType:"bytes",type:"bytes"}],name:"afterPrincipalTransfer",outputs:[{name:"",internalType:"bytes4",type:"bytes4"}]},{stateMutability:"payable",type:"function",inputs:[{name:"_executionData",internalType:"bytes[]",type:"bytes[]"}],name:"buy",outputs:[{name:"",internalType:"uint256[]",type:"uint256[]"},{name:"",internalType:"struct IMultiSourceLoan.Loan[]",type:"tuple[]",components:[{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:[{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:[{name:"_newAddress",internalType:"address",type:"address"}],name:"finalUpdateMultiSourceLoanAddress",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_newAddress",internalType:"address",type:"address"}],name:"finalUpdateSeaportAddress",outputs:[]},{stateMutability:"view",type:"function",inputs:[],name:"getMultiSourceLoanAddress",outputs:[{name:"",internalType:"address",type:"address"}]},{stateMutability:"view",type:"function",inputs:[],name:"getSeaportAddress",outputs:[{name:"",internalType:"address",type:"address"}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"",internalType:"address",type:"address"},{name:"",internalType:"address",type:"address"},{name:"",internalType:"uint256",type:"uint256"},{name:"",internalType:"bytes",type:"bytes"}],name:"onERC721Received",outputs:[{name:"",internalType:"bytes4",type:"bytes4"}]},{stateMutability:"view",type:"function",inputs:[],name:"owner",outputs:[{name:"",internalType:"address",type:"address"}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_executionData",internalType:"bytes[]",type:"bytes[]"}],name:"sell",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"newOwner",internalType:"address",type:"address"}],name:"transferOwnership",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_newAddress",internalType:"address",type:"address"}],name:"updateMultiSourceLoanAddressFirst",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_newAddress",internalType:"address",type:"address"}],name:"updateSeaportAddressFirst",outputs:[]},{stateMutability:"payable",type:"receive"}];var _=[{stateMutability:"nonpayable",type:"constructor",inputs:[{name:"loanLiquidator",internalType:"address",type:"address"},{name:"protocolFee",internalType:"struct IBaseLoan.ProtocolFee",type:"tuple",components:[{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:[],name:"AddressZeroError"},{type:"error",inputs:[{name:"_lender",internalType:"address",type:"address"},{name:"_offerId",internalType:"uint256",type:"uint256"}],name:"CancelledOrExecutedOfferError"},{type:"error",inputs:[{name:"_lender",internalType:"address",type:"address"},{name:"_renegotiationId",internalType:"uint256",type:"uint256"}],name:"CancelledRenegotiationOfferError"},{type:"error",inputs:[],name:"CannotLiquidateError"},{type:"error",inputs:[],name:"CollectionNotWhitelistedError"},{type:"error",inputs:[],name:"CurrencyNotWhitelistedError"},{type:"error",inputs:[],name:"ECDSAInvalidSignature"},{type:"error",inputs:[{name:"length",internalType:"uint256",type:"uint256"}],name:"ECDSAInvalidSignatureLength"},{type:"error",inputs:[{name:"s",internalType:"bytes32",type:"bytes32"}],name:"ECDSAInvalidSignatureS"},{type:"error",inputs:[{name:"_expirationTime",internalType:"uint256",type:"uint256"}],name:"ExpiredOfferError"},{type:"error",inputs:[{name:"_expirationTime",internalType:"uint256",type:"uint256"}],name:"ExpiredRenegotiationOfferError"},{type:"error",inputs:[],name:"ExtensionNotAvailableError"},{type:"error",inputs:[{name:"_amount",internalType:"uint256",type:"uint256"},{name:"_principalAmount",internalType:"uint256",type:"uint256"}],name:"InvalidAmountError"},{type:"error",inputs:[],name:"InvalidBorrowerError"},{type:"error",inputs:[],name:"InvalidCallbackError"},{type:"error",inputs:[],name:"InvalidCollateralIdError"},{type:"error",inputs:[],name:"InvalidDurationError"},{type:"error",inputs:[],name:"InvalidLenderError"},{type:"error",inputs:[],name:"InvalidLiquidationError"},{type:"error",inputs:[{name:"_loanId",internalType:"uint256",type:"uint256"}],name:"InvalidLoanError"},{type:"error",inputs:[],name:"InvalidMethodError"},{type:"error",inputs:[{name:"_fraction",internalType:"uint256",type:"uint256"}],name:"InvalidProtocolFeeError"},{type:"error",inputs:[],name:"InvalidRenegotiationOfferError"},{type:"error",inputs:[],name:"InvalidSignatureError"},{type:"error",inputs:[],name:"InvalidValueError"},{type:"error",inputs:[],name:"LengthMismatchError"},{type:"error",inputs:[{name:"_liquidator",internalType:"address",type:"address"}],name:"LiquidatorOnlyError"},{type:"error",inputs:[],name:"LoanExpiredError"},{type:"error",inputs:[{name:"_expirationTime",internalType:"uint256",type:"uint256"}],name:"LoanNotDueError"},{type:"error",inputs:[{name:"_lender",internalType:"address",type:"address"},{name:"_newMinOfferId",internalType:"uint256",type:"uint256"},{name:"_minOfferId",internalType:"uint256",type:"uint256"}],name:"LowOfferIdError"},{type:"error",inputs:[{name:"_lender",internalType:"address",type:"address"},{name:"_newMinRenegotiationOfferId",internalType:"uint256",type:"uint256"},{name:"_minOfferId",internalType:"uint256",type:"uint256"}],name:"LowRenegotiationOfferIdError"},{type:"error",inputs:[],name:"MaxCapacityExceededError"},{type:"error",inputs:[{name:"minLockPeriod",internalType:"uint256",type:"uint256"}],name:"MinLockPeriodTooHighError"},{type:"error",inputs:[{name:"i",internalType:"uint256",type:"uint256"}],name:"MulticallFailed"},{type:"error",inputs:[],name:"NFTNotReturnedError"},{type:"error",inputs:[],name:"NotStrictlyImprovedError"},{type:"error",inputs:[],name:"OnlyBorrowerCallableError"},{type:"error",inputs:[],name:"OnlyLenderCallableError"},{type:"error",inputs:[],name:"OnlyLenderOrBorrowerCallableError"},{type:"error",inputs:[],name:"PartialOfferCannotChangeDurationError"},{type:"error",inputs:[],name:"PartialOfferCannotHaveFeeError"},{type:"error",inputs:[],name:"RefinanceFullError"},{type:"error",inputs:[{name:"minTimestamp",internalType:"uint256",type:"uint256"}],name:"SourceCannotBeRefinancedError"},{type:"error",inputs:[{name:"sourcePrincipal",internalType:"uint256",type:"uint256"},{name:"loanPrincipal",internalType:"uint256",type:"uint256"}],name:"TargetPrincipalTooLowError"},{type:"error",inputs:[{name:"_pendingProtocolFeeSetTime",internalType:"uint256",type:"uint256"}],name:"TooEarlyError"},{type:"error",inputs:[{name:"sources",internalType:"uint256",type:"uint256"}],name:"TooManySourcesError"},{type:"error",inputs:[],name:"ZeroDurationError"},{type:"error",inputs:[],name:"ZeroInterestError"},{type:"event",anonymous:!1,inputs:[{name:"lender",internalType:"address",type:"address",indexed:!1},{name:"minOfferId",internalType:"uint256",type:"uint256",indexed:!1}],name:"AllOffersCancelled"},{type:"event",anonymous:!1,inputs:[{name:"lender",internalType:"address",type:"address",indexed:!1},{name:"minRenegotiationId",internalType:"uint256",type:"uint256",indexed:!1}],name:"AllRenegotiationOffersCancelled"},{type:"event",anonymous:!1,inputs:[{name:"borrower",internalType:"address",type:"address",indexed:!1},{name:"offerId",internalType:"uint256",type:"uint256",indexed:!1}],name:"BorrowerOfferCancelled"},{type:"event",anonymous:!1,inputs:[{name:"newdelegateRegistry",internalType:"address",type:"address",indexed:!1}],name:"DelegateRegistryUpdated"},{type:"event",anonymous:!1,inputs:[{name:"loanId",internalType:"uint256",type:"uint256",indexed:!1},{name:"delegate",internalType:"address",type:"address",indexed:!1},{name:"value",internalType:"bool",type:"bool",indexed:!1}],name:"Delegated"},{type:"event",anonymous:!1,inputs:[{name:"newFlashActionContract",internalType:"address",type:"address",indexed:!1}],name:"FlashActionContractUpdated"},{type:"event",anonymous:!1,inputs:[{name:"loanId",internalType:"uint256",type:"uint256",indexed:!1},{name:"target",internalType:"address",type:"address",indexed:!1},{name:"data",internalType:"bytes",type:"bytes",indexed:!1}],name:"FlashActionExecuted"},{type:"event",anonymous:!1,inputs:[{name:"minimum",internalType:"struct IBaseLoan.ImprovementMinimum",type:"tuple",components:[{name:"principalAmount",internalType:"uint256",type:"uint256"},{name:"interest",internalType:"uint256",type:"uint256"},{name:"duration",internalType:"uint256",type:"uint256"}],indexed:!1}],name:"ImprovementMinimumUpdated"},{type:"event",anonymous:!1,inputs:[{name:"newDuration",internalType:"uint256",type:"uint256",indexed:!1}],name:"LiquidationAuctionDurationUpdated"},{type:"event",anonymous:!1,inputs:[{name:"liquidator",internalType:"address",type:"address",indexed:!1}],name:"LiquidationContractUpdated"},{type:"event",anonymous:!1,inputs:[{name:"loanId",internalType:"uint256",type:"uint256",indexed:!1},{name:"offerId",internalType:"uint256",type:"uint256",indexed:!1},{name:"loan",internalType:"struct IMultiSourceLoan.Loan",type:"tuple",components:[{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:[{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:!1},{name:"lender",internalType:"address",type:"address",indexed:!1},{name:"borrower",internalType:"address",type:"address",indexed:!1},{name:"fee",internalType:"uint256",type:"uint256",indexed:!1}],name:"LoanEmitted"},{type:"event",anonymous:!1,inputs:[{name:"oldLoanId",internalType:"uint256",type:"uint256",indexed:!1},{name:"newLoanId",internalType:"uint256",type:"uint256",indexed:!1},{name:"loan",internalType:"struct IMultiSourceLoan.Loan",type:"tuple",components:[{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:[{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:!1},{name:"_extension",internalType:"uint256",type:"uint256",indexed:!1}],name:"LoanExtended"},{type:"event",anonymous:!1,inputs:[{name:"loanId",internalType:"uint256",type:"uint256",indexed:!1}],name:"LoanForeclosed"},{type:"event",anonymous:!1,inputs:[{name:"loanId",internalType:"uint256",type:"uint256",indexed:!1}],name:"LoanLiquidated"},{type:"event",anonymous:!1,inputs:[{name:"renegotiationId",internalType:"uint256",type:"uint256",indexed:!1},{name:"oldLoanId",internalType:"uint256",type:"uint256",indexed:!1},{name:"newLoanId",internalType:"uint256",type:"uint256",indexed:!1},{name:"loan",internalType:"struct IMultiSourceLoan.Loan",type:"tuple",components:[{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:[{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:!1},{name:"fee",internalType:"uint256",type:"uint256",indexed:!1}],name:"LoanRefinanced"},{type:"event",anonymous:!1,inputs:[{name:"loanId",internalType:"uint256",type:"uint256",indexed:!1},{name:"totalRepayment",internalType:"uint256",type:"uint256",indexed:!1},{name:"fee",internalType:"uint256",type:"uint256",indexed:!1}],name:"LoanRepaid"},{type:"event",anonymous:!1,inputs:[{name:"loanId",internalType:"uint256",type:"uint256",indexed:!1},{name:"liquidator",internalType:"address",type:"address",indexed:!1}],name:"LoanSentToLiquidator"},{type:"event",anonymous:!1,inputs:[{name:"newMax",internalType:"uint256",type:"uint256",indexed:!1}],name:"MaxSourcesUpdated"},{type:"event",anonymous:!1,inputs:[{name:"minLockPeriod",internalType:"uint256",type:"uint256",indexed:!1}],name:"MinLockPeriodUpdated"},{type:"event",anonymous:!1,inputs:[{name:"lender",internalType:"address",type:"address",indexed:!1},{name:"offerId",internalType:"uint256",type:"uint256",indexed:!1}],name:"OfferCancelled"},{type:"event",anonymous:!1,inputs:[{name:"user",internalType:"address",type:"address",indexed:!0},{name:"newOwner",internalType:"address",type:"address",indexed:!0}],name:"OwnershipTransferred"},{type:"event",anonymous:!1,inputs:[{name:"fee",internalType:"struct IBaseLoan.ProtocolFee",type:"tuple",components:[{name:"recipient",internalType:"address",type:"address"},{name:"fraction",internalType:"uint256",type:"uint256"}],indexed:!1}],name:"ProtocolFeePendingUpdate"},{type:"event",anonymous:!1,inputs:[{name:"fee",internalType:"struct IBaseLoan.ProtocolFee",type:"tuple",components:[{name:"recipient",internalType:"address",type:"address"},{name:"fraction",internalType:"uint256",type:"uint256"}],indexed:!1}],name:"ProtocolFeeUpdated"},{type:"event",anonymous:!1,inputs:[{name:"lender",internalType:"address",type:"address",indexed:!1},{name:"renegotiationId",internalType:"uint256",type:"uint256",indexed:!1}],name:"RenegotiationOfferCancelled"},{type:"event",anonymous:!1,inputs:[{name:"delegate",internalType:"address",type:"address",indexed:!1},{name:"collection",internalType:"address",type:"address",indexed:!1},{name:"tokenId",internalType:"uint256",type:"uint256",indexed:!1}],name:"RevokeDelegate"},{type:"event",anonymous:!1,inputs:[{name:"contractAdded",internalType:"address",type:"address",indexed:!1},{name:"tax",internalType:"struct WithCallbacks.Taxes",type:"tuple",components:[{name:"buyTax",internalType:"uint128",type:"uint128"},{name:"sellTax",internalType:"uint128",type:"uint128"}],indexed:!1}],name:"WhitelistedCallbackContractAdded"},{type:"event",anonymous:!1,inputs:[{name:"contractRemoved",internalType:"address",type:"address",indexed:!1}],name:"WhitelistedCallbackContractRemoved"},{stateMutability:"view",type:"function",inputs:[],name:"DOMAIN_SEPARATOR",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}]},{stateMutability:"view",type:"function",inputs:[],name:"FEE_UPDATE_NOTICE",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"view",type:"function",inputs:[],name:"INITIAL_DOMAIN_SEPARATOR",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}]},{stateMutability:"view",type:"function",inputs:[],name:"MAX_PROTOCOL_FEE",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"view",type:"function",inputs:[],name:"MIN_AUCTION_DURATION",outputs:[{name:"",internalType:"uint48",type:"uint48"}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_contract",internalType:"address",type:"address"},{name:"_tax",internalType:"struct WithCallbacks.Taxes",type:"tuple",components:[{name:"buyTax",internalType:"uint128",type:"uint128"},{name:"sellTax",internalType:"uint128",type:"uint128"}]}],name:"addWhitelistedCallbackContract",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_minOfferId",internalType:"uint256",type:"uint256"}],name:"cancelAllOffers",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_minRenegotiationId",internalType:"uint256",type:"uint256"}],name:"cancelAllRenegotiationOffers",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_offerId",internalType:"uint256",type:"uint256"}],name:"cancelOffer",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_offerIds",internalType:"uint256[]",type:"uint256[]"}],name:"cancelOffers",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_renegotiationId",internalType:"uint256",type:"uint256"}],name:"cancelRenegotiationOffer",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_renegotiationIds",internalType:"uint256[]",type:"uint256[]"}],name:"cancelRenegotiationOffers",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_loanId",internalType:"uint256",type:"uint256"},{name:"loan",internalType:"struct IMultiSourceLoan.Loan",type:"tuple",components:[{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:[{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:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_executionData",internalType:"struct IMultiSourceLoan.LoanExecutionData",type:"tuple",components:[{name:"executionData",internalType:"struct IBaseLoan.ExecutionData",type:"tuple",components:[{name:"offer",internalType:"struct IBaseLoan.LoanOffer",type:"tuple",components:[{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:[{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:[{name:"",internalType:"uint256",type:"uint256"},{name:"",internalType:"struct IMultiSourceLoan.Loan",type:"tuple",components:[{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:[{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:[{name:"_loanId",internalType:"uint256",type:"uint256"},{name:"_loan",internalType:"struct IMultiSourceLoan.Loan",type:"tuple",components:[{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:[{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:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_loanId",internalType:"uint256",type:"uint256"},{name:"_loan",internalType:"struct IMultiSourceLoan.Loan",type:"tuple",components:[{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:[{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:[{name:"",internalType:"uint256",type:"uint256"},{name:"",internalType:"struct IMultiSourceLoan.Loan",type:"tuple",components:[{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:[{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:[],name:"getCollectionManager",outputs:[{name:"",internalType:"address",type:"address"}]},{stateMutability:"view",type:"function",inputs:[],name:"getCurrencyManager",outputs:[{name:"",internalType:"address",type:"address"}]},{stateMutability:"view",type:"function",inputs:[],name:"getDelegateRegistry",outputs:[{name:"",internalType:"address",type:"address"}]},{stateMutability:"view",type:"function",inputs:[],name:"getFlashActionContract",outputs:[{name:"",internalType:"address",type:"address"}]},{stateMutability:"view",type:"function",inputs:[],name:"getImprovementMinimum",outputs:[{name:"",internalType:"struct IBaseLoan.ImprovementMinimum",type:"tuple",components:[{name:"principalAmount",internalType:"uint256",type:"uint256"},{name:"interest",internalType:"uint256",type:"uint256"},{name:"duration",internalType:"uint256",type:"uint256"}]}]},{stateMutability:"view",type:"function",inputs:[],name:"getLiquidationAuctionDuration",outputs:[{name:"",internalType:"uint48",type:"uint48"}]},{stateMutability:"view",type:"function",inputs:[],name:"getLiquidator",outputs:[{name:"",internalType:"address",type:"address"}]},{stateMutability:"view",type:"function",inputs:[{name:"_loanId",internalType:"uint256",type:"uint256"}],name:"getLoanHash",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}]},{stateMutability:"view",type:"function",inputs:[],name:"getMaxSources",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"view",type:"function",inputs:[],name:"getMinLockPeriod",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"view",type:"function",inputs:[{name:"_loanPrincipal",internalType:"uint256",type:"uint256"}],name:"getMinSourcePrincipal",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"view",type:"function",inputs:[],name:"getPendingProtocolFee",outputs:[{name:"",internalType:"struct IBaseLoan.ProtocolFee",type:"tuple",components:[{name:"recipient",internalType:"address",type:"address"},{name:"fraction",internalType:"uint256",type:"uint256"}]}]},{stateMutability:"view",type:"function",inputs:[],name:"getPendingProtocolFeeSetTime",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"view",type:"function",inputs:[],name:"getProtocolFee",outputs:[{name:"",internalType:"struct IBaseLoan.ProtocolFee",type:"tuple",components:[{name:"recipient",internalType:"address",type:"address"},{name:"fraction",internalType:"uint256",type:"uint256"}]}]},{stateMutability:"view",type:"function",inputs:[],name:"getTotalLoansIssued",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"view",type:"function",inputs:[{name:"_lender",internalType:"address",type:"address"},{name:"_offerId",internalType:"uint256",type:"uint256"}],name:"getUsedCapacity",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"view",type:"function",inputs:[{name:"",internalType:"address",type:"address"},{name:"",internalType:"uint256",type:"uint256"}],name:"isBorrowerOfferCancelled",outputs:[{name:"",internalType:"bool",type:"bool"}]},{stateMutability:"view",type:"function",inputs:[{name:"",internalType:"address",type:"address"},{name:"",internalType:"uint256",type:"uint256"}],name:"isOfferCancelled",outputs:[{name:"",internalType:"bool",type:"bool"}]},{stateMutability:"view",type:"function",inputs:[{name:"",internalType:"address",type:"address"},{name:"",internalType:"uint256",type:"uint256"}],name:"isRenegotiationOfferCancelled",outputs:[{name:"",internalType:"bool",type:"bool"}]},{stateMutability:"view",type:"function",inputs:[{name:"_contract",internalType:"address",type:"address"}],name:"isWhitelistedCallbackContract",outputs:[{name:"",internalType:"bool",type:"bool"}]},{stateMutability:"view",type:"function",inputs:[{name:"",internalType:"address",type:"address"}],name:"lenderMinRenegotiationOfferId",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_loanId",internalType:"uint256",type:"uint256"},{name:"_loan",internalType:"struct IMultiSourceLoan.Loan",type:"tuple",components:[{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:[{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:[{name:"",internalType:"bytes",type:"bytes"}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_loanId",internalType:"uint256",type:"uint256"},{name:"_loan",internalType:"struct IMultiSourceLoan.Loan",type:"tuple",components:[{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:[{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:[]},{stateMutability:"view",type:"function",inputs:[{name:"",internalType:"address",type:"address"}],name:"minOfferId",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"payable",type:"function",inputs:[{name:"data",internalType:"bytes[]",type:"bytes[]"}],name:"multicall",outputs:[{name:"results",internalType:"bytes[]",type:"bytes[]"}]},{stateMutability:"view",type:"function",inputs:[],name:"name",outputs:[{name:"",internalType:"string",type:"string"}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"",internalType:"address",type:"address"},{name:"",internalType:"address",type:"address"},{name:"",internalType:"uint256",type:"uint256"},{name:"",internalType:"bytes",type:"bytes"}],name:"onERC721Received",outputs:[{name:"",internalType:"bytes4",type:"bytes4"}]},{stateMutability:"view",type:"function",inputs:[],name:"owner",outputs:[{name:"",internalType:"address",type:"address"}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_renegotiationOffer",internalType:"struct IMultiSourceLoan.RenegotiationOffer",type:"tuple",components:[{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:[{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:[{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:[{name:"",internalType:"uint256",type:"uint256"},{name:"",internalType:"struct IMultiSourceLoan.Loan",type:"tuple",components:[{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:[{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:[{name:"_renegotiationOffer",internalType:"struct IMultiSourceLoan.RenegotiationOffer",type:"tuple",components:[{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:[{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:[{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:[{name:"",internalType:"uint256",type:"uint256"},{name:"",internalType:"struct IMultiSourceLoan.Loan",type:"tuple",components:[{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:[{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:[{name:"_contract",internalType:"address",type:"address"}],name:"removeWhitelistedCallbackContract",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_repaymentData",internalType:"struct IMultiSourceLoan.LoanRepaymentData",type:"tuple",components:[{name:"data",internalType:"struct IMultiSourceLoan.SignableRepaymentData",type:"tuple",components:[{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:[{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:[{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:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_delegate",internalType:"address",type:"address"},{name:"_collection",internalType:"address",type:"address"},{name:"_tokenId",internalType:"uint256",type:"uint256"}],name:"revokeDelegate",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_newDelegateRegistry",internalType:"address",type:"address"}],name:"setDelegateRegistry",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_newFlashActionContract",internalType:"address",type:"address"}],name:"setFlashActionContract",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"__maxSources",internalType:"uint256",type:"uint256"}],name:"setMaxSources",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"__minLockPeriod",internalType:"uint256",type:"uint256"}],name:"setMinLockPeriod",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[],name:"setProtocolFee",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"newOwner",internalType:"address",type:"address"}],name:"transferOwnership",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_newMinimum",internalType:"struct IBaseLoan.ImprovementMinimum",type:"tuple",components:[{name:"principalAmount",internalType:"uint256",type:"uint256"},{name:"interest",internalType:"uint256",type:"uint256"},{name:"duration",internalType:"uint256",type:"uint256"}]}],name:"updateImprovementMinimum",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_newDuration",internalType:"uint48",type:"uint48"}],name:"updateLiquidationAuctionDuration",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"loanLiquidator",internalType:"contract ILoanLiquidator",type:"address"}],name:"updateLiquidationContract",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_newProtocolFee",internalType:"struct IBaseLoan.ProtocolFee",type:"tuple",components:[{name:"recipient",internalType:"address",type:"address"},{name:"fraction",internalType:"uint256",type:"uint256"}]}],name:"updateProtocolFee",outputs:[]}];import{encodeAbiParameters as ke}from"viem";import{zeroAddress as Re}from"viem";import{goerli as we}from"viem/chains";var he=31337,oe="0xb6dfcbc1661d0c0bced9591d06e964f97d41a35984704ffe61f8e062e43919c8",T=l(s=>s?.id===he?{MultiSourceLoanV4Address:"0x5FC8d32690cc91D4c39d9d3abcBD16989F875707",MultiSourceLoanV5Address:"0x68B1D87F95878fE05B998F19b66F4baba5De1aed",AuctionLoanLiquidatorV4Address:"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9",AuctionLoanLiquidatorV5Address:"0x9A9f2CCfdE556A7E9Ff0848998Aa4a0CFD8863AE",LeverageAddress:"0xBe6Eb4ACB499f992ba2DaC7CAD59d56DA9e0D823",SeaportAddress:"0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",CryptoPunksAddress:"0xb47e3cd837ddf8e4c57f05d70ab865de6e193bbb"}:s?.id===we.id?{MultiSourceLoanV4Address:"0x60C20627429668F267b5cF55c6605c665C69887D",MultiSourceLoanV5Address:"0xTODO",AuctionLoanLiquidatorV4Address:"0x29C73faa2f9180ea5a7B0bEC243ebc63a5B4f280",AuctionLoanLiquidatorV5Address:"0xTODO",LeverageAddress:"0xTODO",SeaportAddress:"0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",CryptoPunksAddress:"0xb47e3cd837ddf8e4c57f05d70ab865de6e193bbb"}:{MultiSourceLoanV4Address:"0xCa5a494Ca20483e21ec1E41FE1D9461Da77595Bd",MultiSourceLoanV5Address:"0x478f6F994C6fb3cf3e444a489b3AD9edB8cCaE16",AuctionLoanLiquidatorV4Address:"0x237e4421C742d843Fdd96D22294D338507e17091",AuctionLoanLiquidatorV5Address:"0x97d34635b605c2f1630d6b4c6c5d222b8a2ca47d",LeverageAddress:"0x87Ce6e8124fFd68fa721FcC7f35fdA14A11E233e",SeaportAddress:"0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",CryptoPunksAddress:"0xb47e3cd837ddf8e4c57f05d70ab865de6e193bbb"},"getContracts"),le=l(()=>({reservoirApiKey:"5b472f8c-b471-531a-a450-56e428e5a00a",infuraApiKey:"9b7006cb0b0b42f1813ae9418741fbb5"}),"getApiKeys"),P=l(()=>({WETH_ADDRESS:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",ETH_ADDRESS:Re,USDC_ADDRESS:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"}),"getCurrencies");var pe=[{stateMutability:"nonpayable",type:"constructor",inputs:[{name:"currencyManager",internalType:"address",type:"address"},{name:"collectionManager",internalType:"address",type:"address"},{name:"triggerFee",internalType:"uint256",type:"uint256"}]},{type:"error",inputs:[],name:"AuctionAlreadyInProgressError"},{type:"error",inputs:[{name:"_contract",internalType:"address",type:"address"},{name:"_tokenId",internalType:"uint256",type:"uint256"}],name:"AuctionNotExistsError"},{type:"error",inputs:[{name:"_expiration",internalType:"uint96",type:"uint96"}],name:"AuctionNotOverError"},{type:"error",inputs:[{name:"_expiration",internalType:"uint96",type:"uint96"}],name:"AuctionOverError"},{type:"error",inputs:[],name:"CollectionNotWhitelistedError"},{type:"error",inputs:[],name:"CurrencyNotWhitelistedError"},{type:"error",inputs:[{name:"triggerFee",internalType:"uint256",type:"uint256"}],name:"InvalidTriggerFee"},{type:"error",inputs:[{name:"_loan",internalType:"address",type:"address"}],name:"LoanNotAcceptedError"},{type:"error",inputs:[{name:"_minBid",internalType:"uint256",type:"uint256"}],name:"MinBidError"},{type:"error",inputs:[{name:"_owner",internalType:"address",type:"address"}],name:"NFTNotOwnedError"},{type:"error",inputs:[],name:"NoBidsError"},{type:"error",inputs:[],name:"ZeroAddressError"},{type:"event",anonymous:!1,inputs:[{name:"loanContract",internalType:"address",type:"address",indexed:!1},{name:"loanId",internalType:"uint256",type:"uint256",indexed:!1},{name:"auctionContract",internalType:"address",type:"address",indexed:!1},{name:"tokenId",internalType:"uint256",type:"uint256",indexed:!1},{name:"asset",internalType:"address",type:"address",indexed:!1},{name:"highestBid",internalType:"uint256",type:"uint256",indexed:!1},{name:"settler",internalType:"address",type:"address",indexed:!1},{name:"triggerFee",internalType:"uint256",type:"uint256",indexed:!1}],name:"AuctionSettled"},{type:"event",anonymous:!1,inputs:[{name:"auctionContract",internalType:"address",type:"address",indexed:!1},{name:"tokenId",internalType:"uint256",type:"uint256",indexed:!1},{name:"newBidder",internalType:"address",type:"address",indexed:!1},{name:"bid",internalType:"uint256",type:"uint256",indexed:!1},{name:"loanAddress",internalType:"address",type:"address",indexed:!1},{name:"loanId",internalType:"uint256",type:"uint256",indexed:!1}],name:"BidPlaced"},{type:"event",anonymous:!1,inputs:[{name:"loan",internalType:"address",type:"address",indexed:!1}],name:"LoanContractAdded"},{type:"event",anonymous:!1,inputs:[{name:"loan",internalType:"address",type:"address",indexed:!1}],name:"LoanContractRemoved"},{type:"event",anonymous:!1,inputs:[{name:"loanAddress",internalType:"address",type:"address",indexed:!1},{name:"loanId",internalType:"uint256",type:"uint256",indexed:!1},{name:"duration",internalType:"uint96",type:"uint96",indexed:!1},{name:"asset",internalType:"address",type:"address",indexed:!1}],name:"LoanLiquidationStarted"},{type:"event",anonymous:!1,inputs:[{name:"user",internalType:"address",type:"address",indexed:!0},{name:"newOwner",internalType:"address",type:"address",indexed:!0}],name:"OwnershipTransferred"},{type:"event",anonymous:!1,inputs:[{name:"triggerFee",internalType:"uint256",type:"uint256",indexed:!1}],name:"TriggerFeeUpdated"},{stateMutability:"view",type:"function",inputs:[],name:"MAX_TRIGGER_FEE",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"view",type:"function",inputs:[],name:"MIN_INCREMENT_BPS",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_loanContract",internalType:"address",type:"address"}],name:"addLoanContract",outputs:[]},{stateMutability:"view",type:"function",inputs:[{name:"_contract",internalType:"address",type:"address"},{name:"_tokenId",internalType:"uint256",type:"uint256"}],name:"getAuction",outputs:[{name:"",internalType:"struct AuctionLoanLiquidator.Auction",type:"tuple",components:[{name:"loanAddress",internalType:"address",type:"address"},{name:"loanId",internalType:"uint256",type:"uint256"},{name:"highestBid",internalType:"uint256",type:"uint256"},{name:"highestBidder",internalType:"address",type:"address"},{name:"duration",internalType:"uint96",type:"uint96"},{name:"asset",internalType:"address",type:"address"},{name:"startTime",internalType:"uint96",type:"uint96"},{name:"originator",internalType:"address",type:"address"},{name:"lastBidTime",internalType:"uint96",type:"uint96"}]}]},{stateMutability:"view",type:"function",inputs:[],name:"getTriggerFee",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"view",type:"function",inputs:[],name:"getValidLoanContracts",outputs:[{name:"",internalType:"address[]",type:"address[]"}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_loanId",internalType:"uint256",type:"uint256"},{name:"_contract",internalType:"address",type:"address"},{name:"_tokenId",internalType:"uint256",type:"uint256"},{name:"_asset",internalType:"address",type:"address"},{name:"_duration",internalType:"uint96",type:"uint96"},{name:"_originator",internalType:"address",type:"address"}],name:"liquidateLoan",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"",internalType:"address",type:"address"},{name:"",internalType:"address",type:"address"},{name:"",internalType:"uint256",type:"uint256"},{name:"",internalType:"bytes",type:"bytes"}],name:"onERC721Received",outputs:[{name:"",internalType:"bytes4",type:"bytes4"}]},{stateMutability:"view",type:"function",inputs:[],name:"owner",outputs:[{name:"",internalType:"address",type:"address"}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_contract",internalType:"address",type:"address"},{name:"_tokenId",internalType:"uint256",type:"uint256"},{name:"_bid",internalType:"uint256",type:"uint256"}],name:"placeBid",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_loanContract",internalType:"address",type:"address"}],name:"removeLoanContract",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_contract",internalType:"address",type:"address"},{name:"_tokenId",internalType:"uint256",type:"uint256"},{name:"_loan",internalType:"bytes",type:"bytes"}],name:"settleAuction",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"newOwner",internalType:"address",type:"address"}],name:"transferOwnership",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"triggerFee",internalType:"uint256",type:"uint256"}],name:"updateTriggerFee",outputs:[]}];var de=[{stateMutability:"nonpayable",type:"constructor",inputs:[{name:"loanLiquidator",internalType:"address",type:"address"},{name:"protocolFee",internalType:"struct IBaseLoan.ProtocolFee",type:"tuple",components:[{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:"uint8",type:"uint8"}]},{type:"error",inputs:[],name:"AddressZeroError"},{type:"error",inputs:[{name:"_lender",internalType:"address",type:"address"},{name:"_offerId",internalType:"uint256",type:"uint256"}],name:"CancelledOrExecutedOfferError"},{type:"error",inputs:[{name:"_lender",internalType:"address",type:"address"},{name:"_offerId",internalType:"uint256",type:"uint256"}],name:"CancelledRenegotiationOffer"},{type:"error",inputs:[{name:"_lender",internalType:"address",type:"address"},{name:"_renegotiationId",internalType:"uint256",type:"uint256"}],name:"CancelledRenegotiationOfferError"},{type:"error",inputs:[],name:"CannotLiquidateError"},{type:"error",inputs:[],name:"CollectionNotWhitelistedError"},{type:"error",inputs:[],name:"CurrencyNotWhitelistedError"},{type:"error",inputs:[],name:"ExpiredLoanError"},{type:"error",inputs:[{name:"_expirationTime",internalType:"uint256",type:"uint256"}],name:"ExpiredOfferError"},{type:"error",inputs:[{name:"_expirationTime",internalType:"uint256",type:"uint256"}],name:"ExpiredRenegotiationOfferError"},{type:"error",inputs:[],name:"InvalidBorrowerError"},{type:"error",inputs:[],name:"InvalidCallbackError"},{type:"error",inputs:[],name:"InvalidCollateralIdError"},{type:"error",inputs:[],name:"InvalidLiquidationError"},{type:"error",inputs:[{name:"_loanId",internalType:"uint256",type:"uint256"}],name:"InvalidLoanError"},{type:"error",inputs:[{name:"_fraction",internalType:"uint256",type:"uint256"}],name:"InvalidProtocolFeeError"},{type:"error",inputs:[],name:"InvalidRenegotiationOfferError"},{type:"error",inputs:[],name:"InvalidSignatureError"},{type:"error",inputs:[],name:"InvalidSignerError"},{type:"error",inputs:[],name:"LengthMismatchError"},{type:"error",inputs:[{name:"_liquidator",internalType:"address",type:"address"}],name:"LiquidatorOnlyError"},{type:"error",inputs:[],name:"LoanExpiredError"},{type:"error",inputs:[{name:"_expirationTime",internalType:"uint256",type:"uint256"}],name:"LoanNotDueError"},{type:"error",inputs:[{name:"_loanId",internalType:"uint256",type:"uint256"}],name:"LoanNotFoundError"},{type:"error",inputs:[{name:"_lender",internalType:"address",type:"address"},{name:"_newMinOfferId",internalType:"uint256",type:"uint256"},{name:"_minOfferId",internalType:"uint256",type:"uint256"}],name:"LowOfferIdError"},{type:"error",inputs:[{name:"_lender",internalType:"address",type:"address"},{name:"_newMinRenegotiationOfferId",internalType:"uint256",type:"uint256"},{name:"_minOfferId",internalType:"uint256",type:"uint256"}],name:"LowRenegotiationOfferIdError"},{type:"error",inputs:[],name:"MaxCapacityExceededError"},{type:"error",inputs:[{name:"_id",internalType:"uint256",type:"uint256"}],name:"NotMintedError"},{type:"error",inputs:[],name:"NotStrictlyImprovedError"},{type:"error",inputs:[],name:"OnlyBorrowerCallableError"},{type:"error",inputs:[],name:"OnlyLenderOrSignerCallableError"},{type:"error",inputs:[],name:"PartialOfferCannotChangeDurationError"},{type:"error",inputs:[],name:"PartialOfferCannotHaveFeeError"},{type:"error",inputs:[],name:"RefinanceFullError"},{type:"error",inputs:[],name:"RepaymentError"},{type:"error",inputs:[{name:"sourcePrincipal",internalType:"uint256",type:"uint256"},{name:"loanPrincipal",internalType:"uint256",type:"uint256"}],name:"TargetPrincipalTooLowError"},{type:"error",inputs:[{name:"_pendingProtocolFeeSetTime",internalType:"uint256",type:"uint256"}],name:"TooEarlyError"},{type:"error",inputs:[{name:"sources",internalType:"uint8",type:"uint8"}],name:"TooManySourcesError"},{type:"error",inputs:[],name:"Unauthorized"},{type:"error",inputs:[{name:"_authorized",internalType:"address",type:"address"}],name:"UnauthorizedError"},{type:"error",inputs:[],name:"ZeroAddressError"},{type:"error",inputs:[],name:"ZeroDurationError"},{type:"error",inputs:[],name:"ZeroInterestError"},{type:"event",anonymous:!1,inputs:[{name:"lender",internalType:"address",type:"address",indexed:!1},{name:"minOfferId",internalType:"uint256",type:"uint256",indexed:!1}],name:"AllOffersCancelled"},{type:"event",anonymous:!1,inputs:[{name:"lender",internalType:"address",type:"address",indexed:!1},{name:"minRenegotiationId",internalType:"uint256",type:"uint256",indexed:!1}],name:"AllRenegotiationOffersCancelled"},{type:"event",anonymous:!1,inputs:[{name:"lender",internalType:"address",type:"address",indexed:!1},{name:"signer",internalType:"address",type:"address",indexed:!1}],name:"ApprovedSigner"},{type:"event",anonymous:!1,inputs:[{name:"minimum",internalType:"struct IBaseLoan.ImprovementMinimum",type:"tuple",components:[{name:"principalAmount",internalType:"uint256",type:"uint256"},{name:"interest",internalType:"uint256",type:"uint256"},{name:"duration",internalType:"uint256",type:"uint256"}],indexed:!1}],name:"ImprovementMinimumUpdated"},{type:"event",anonymous:!1,inputs:[{name:"newDuration",internalType:"uint256",type:"uint256",indexed:!1}],name:"LiquidationAuctionDurationUpdated"},{type:"event",anonymous:!1,inputs:[{name:"liquidator",internalType:"address",type:"address",indexed:!1}],name:"LiquidationContractUpdated"},{type:"event",anonymous:!1,inputs:[{name:"loanId",internalType:"uint256",type:"uint256",indexed:!1},{name:"offerId",internalType:"uint256",type:"uint256",indexed:!1},{name:"loan",internalType:"struct IMultiSourceLoan.Loan",type:"tuple",components:[{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:[{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:!1},{name:"fee",internalType:"uint256",type:"uint256",indexed:!1}],name:"LoanEmitted"},{type:"event",anonymous:!1,inputs:[{name:"loanId",internalType:"uint256",type:"uint256",indexed:!1}],name:"LoanForeclosed"},{type:"event",anonymous:!1,inputs:[{name:"loanId",internalType:"uint256",type:"uint256",indexed:!1},{name:"repayment",internalType:"uint256",type:"uint256",indexed:!1}],name:"LoanLiquidated"},{type:"event",anonymous:!1,inputs:[{name:"renegotiationId",internalType:"uint256",type:"uint256",indexed:!1},{name:"oldLoanId",internalType:"uint256",type:"uint256",indexed:!1},{name:"newLoanId",internalType:"uint256",type:"uint256",indexed:!1},{name:"loan",internalType:"struct IMultiSourceLoan.Loan",type:"tuple",components:[{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:[{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:!1},{name:"fee",internalType:"uint256",type:"uint256",indexed:!1}],name:"LoanRefinanced"},{type:"event",anonymous:!1,inputs:[{name:"loanId",internalType:"uint256",type:"uint256",indexed:!1},{name:"totalRepayment",internalType:"uint256",type:"uint256",indexed:!1},{name:"fee",internalType:"uint256",type:"uint256",indexed:!1}],name:"LoanRepaid"},{type:"event",anonymous:!1,inputs:[{name:"loanId",internalType:"uint256",type:"uint256",indexed:!1},{name:"liquidator",internalType:"address",type:"address",indexed:!1}],name:"LoanSentToLiquidator"},{type:"event",anonymous:!1,inputs:[{name:"newMax",internalType:"uint8",type:"uint8",indexed:!1}],name:"MaxSourcesUpdated"},{type:"event",anonymous:!1,inputs:[{name:"lender",internalType:"address",type:"address",indexed:!1},{name:"offerId",internalType:"uint256",type:"uint256",indexed:!1}],name:"OfferCancelled"},{type:"event",anonymous:!1,inputs:[{name:"user",internalType:"address",type:"address",indexed:!0},{name:"newOwner",internalType:"address",type:"address",indexed:!0}],name:"OwnershipTransferred"},{type:"event",anonymous:!1,inputs:[{name:"fee",internalType:"struct IBaseLoan.ProtocolFee",type:"tuple",components:[{name:"recipient",internalType:"address",type:"address"},{name:"fraction",internalType:"uint256",type:"uint256"}],indexed:!1}],name:"ProtocolFeePendingUpdate"},{type:"event",anonymous:!1,inputs:[{name:"fee",internalType:"struct IBaseLoan.ProtocolFee",type:"tuple",components:[{name:"recipient",internalType:"address",type:"address"},{name:"fraction",internalType:"uint256",type:"uint256"}],indexed:!1}],name:"ProtocolFeeUpdated"},{type:"event",anonymous:!1,inputs:[{name:"lender",internalType:"address",type:"address",indexed:!1},{name:"renegotiationId",internalType:"uint256",type:"uint256",indexed:!1}],name:"RenegotiationOfferCancelled"},{type:"event",anonymous:!1,inputs:[{name:"contract_added",internalType:"address",type:"address",indexed:!1}],name:"WhitelistedCallbackContractAdded"},{type:"event",anonymous:!1,inputs:[{name:"contract_removed",internalType:"address",type:"address",indexed:!1}],name:"WhitelistedCallbackContractRemoved"},{stateMutability:"view",type:"function",inputs:[],name:"DOMAIN_SEPARATOR",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}]},{stateMutability:"view",type:"function",inputs:[],name:"FEE_UPDATE_NOTICE",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"view",type:"function",inputs:[],name:"INITIAL_DOMAIN_SEPARATOR",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}]},{stateMutability:"view",type:"function",inputs:[],name:"MAX_PROTOCOL_FEE",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_contract",internalType:"address",type:"address"}],name:"addWhitelistedCallbackContract",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_signer",internalType:"address",type:"address"}],name:"approveSigner",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_lender",internalType:"address",type:"address"},{name:"_minOfferId",internalType:"uint256",type:"uint256"}],name:"cancelAllOffers",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_lender",internalType:"address",type:"address"},{name:"_minRenegotiationId",internalType:"uint256",type:"uint256"}],name:"cancelAllRenegotiationOffers",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_lender",internalType:"address",type:"address"},{name:"_offerId",internalType:"uint256",type:"uint256"}],name:"cancelOffer",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_lender",internalType:"address",type:"address"},{name:"_offerIds",internalType:"uint256[]",type:"uint256[]"}],name:"cancelOffers",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_lender",internalType:"address",type:"address"},{name:"_renegotiationId",internalType:"uint256",type:"uint256"}],name:"cancelRenegotiationOffer",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_lender",internalType:"address",type:"address"},{name:"_renegotiationIds",internalType:"uint256[]",type:"uint256[]"}],name:"cancelRenegotiationOffers",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_loanOffer",internalType:"struct IBaseLoan.LoanOffer",type:"tuple",components:[{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:"signer",internalType:"address",type:"address"},{name:"requiresLiquidation",internalType:"bool",type:"bool"},{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:[{name:"validator",internalType:"address",type:"address"},{name:"arguments",internalType:"bytes",type:"bytes"}]}]},{name:"_tokenId",internalType:"uint256",type:"uint256"},{name:"_lenderOfferSignature",internalType:"bytes",type:"bytes"},{name:"_withCallback",internalType:"bool",type:"bool"}],name:"emitLoan",outputs:[{name:"",internalType:"uint256",type:"uint256"},{name:"",internalType:"struct IMultiSourceLoan.Loan",type:"tuple",components:[{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:[{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:[{name:"",internalType:"address",type:"address"}],name:"getApprovedSigner",outputs:[{name:"",internalType:"address",type:"address"}]},{stateMutability:"view",type:"function",inputs:[],name:"getCollectionManager",outputs:[{name:"",internalType:"address",type:"address"}]},{stateMutability:"view",type:"function",inputs:[],name:"getCurrencyManager",outputs:[{name:"",internalType:"address",type:"address"}]},{stateMutability:"view",type:"function",inputs:[],name:"getImprovementMinimum",outputs:[{name:"",internalType:"struct IBaseLoan.ImprovementMinimum",type:"tuple",components:[{name:"principalAmount",internalType:"uint256",type:"uint256"},{name:"interest",internalType:"uint256",type:"uint256"},{name:"duration",internalType:"uint256",type:"uint256"}]}]},{stateMutability:"view",type:"function",inputs:[],name:"getLiquidationAuctionDuration",outputs:[{name:"",internalType:"uint48",type:"uint48"}]},{stateMutability:"view",type:"function",inputs:[],name:"getLiquidator",outputs:[{name:"",internalType:"address",type:"address"}]},{stateMutability:"view",type:"function",inputs:[{name:"_loanId",internalType:"uint256",type:"uint256"}],name:"getLoanHash",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}]},{stateMutability:"view",type:"function",inputs:[],name:"getMaxSources",outputs:[{name:"",internalType:"uint8",type:"uint8"}]},{stateMutability:"view",type:"function",inputs:[{name:"_loanPrincipal",internalType:"uint256",type:"uint256"}],name:"getMinSourcePrincipal",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"view",type:"function",inputs:[],name:"getPendingProtocolFee",outputs:[{name:"",internalType:"struct IBaseLoan.ProtocolFee",type:"tuple",components:[{name:"recipient",internalType:"address",type:"address"},{name:"fraction",internalType:"uint256",type:"uint256"}]}]},{stateMutability:"view",type:"function",inputs:[],name:"getPendingProtocolFeeSetTime",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"view",type:"function",inputs:[],name:"getProtocolFee",outputs:[{name:"",internalType:"struct IBaseLoan.ProtocolFee",type:"tuple",components:[{name:"recipient",internalType:"address",type:"address"},{name:"fraction",internalType:"uint256",type:"uint256"}]}]},{stateMutability:"view",type:"function",inputs:[],name:"getTotalLoansIssued",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"view",type:"function",inputs:[{name:"_lender",internalType:"address",type:"address"},{name:"_offerId",internalType:"uint256",type:"uint256"}],name:"getUsedCapacity",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"view",type:"function",inputs:[{name:"",internalType:"address",type:"address"},{name:"",internalType:"uint256",type:"uint256"}],name:"isOfferCancelled",outputs:[{name:"",internalType:"bool",type:"bool"}]},{stateMutability:"view",type:"function",inputs:[{name:"",internalType:"address",type:"address"},{name:"",internalType:"uint256",type:"uint256"}],name:"isRenegotiationOfferCancelled",outputs:[{name:"",internalType:"bool",type:"bool"}]},{stateMutability:"view",type:"function",inputs:[{name:"_contract",internalType:"address",type:"address"}],name:"isWhitelistedCallbackContract",outputs:[{name:"",internalType:"bool",type:"bool"}]},{stateMutability:"view",type:"function",inputs:[{name:"",internalType:"address",type:"address"}],name:"lenderMinOfferId",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"view",type:"function",inputs:[{name:"",internalType:"address",type:"address"}],name:"lenderMinRenegotiationOfferId",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_loanId",internalType:"uint256",type:"uint256"},{name:"_loan",internalType:"struct IMultiSourceLoan.Loan",type:"tuple",components:[{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:[{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:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_collateralAddress",internalType:"address",type:"address"},{name:"_collateralTokenId",internalType:"uint256",type:"uint256"},{name:"_loanId",internalType:"uint256",type:"uint256"},{name:"_repayment",internalType:"uint256",type:"uint256"},{name:"_loan",internalType:"bytes",type:"bytes"}],name:"loanLiquidated",outputs:[]},{stateMutability:"view",type:"function",inputs:[],name:"name",outputs:[{name:"",internalType:"string",type:"string"}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"",internalType:"address",type:"address"},{name:"",internalType:"address",type:"address"},{name:"",internalType:"uint256",type:"uint256"},{name:"",internalType:"bytes",type:"bytes"}],name:"onERC721Received",outputs:[{name:"",internalType:"bytes4",type:"bytes4"}]},{stateMutability:"view",type:"function",inputs:[],name:"owner",outputs:[{name:"",internalType:"address",type:"address"}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_renegotiationOffer",internalType:"struct IMultiSourceLoan.RenegotiationOffer",type:"tuple",components:[{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:"signer",internalType:"address",type:"address"},{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:"strictImprovement",internalType:"bool",type:"bool"}]},{name:"_loan",internalType:"struct IMultiSourceLoan.Loan",type:"tuple",components:[{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:[{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:[{name:"",internalType:"uint256",type:"uint256"},{name:"",internalType:"struct IMultiSourceLoan.Loan",type:"tuple",components:[{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:[{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:[{name:"_renegotiationOffer",internalType:"struct IMultiSourceLoan.RenegotiationOffer",type:"tuple",components:[{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:"signer",internalType:"address",type:"address"},{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:"strictImprovement",internalType:"bool",type:"bool"}]},{name:"_loan",internalType:"struct IMultiSourceLoan.Loan",type:"tuple",components:[{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:[{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:[{name:"",internalType:"uint256",type:"uint256"},{name:"",internalType:"struct IMultiSourceLoan.Loan",type:"tuple",components:[{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:[{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:[{name:"_renegotiationOffer",internalType:"struct IMultiSourceLoan.RenegotiationOffer[]",type:"tuple[]",components:[{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:"signer",internalType:"address",type:"address"},{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:"strictImprovement",internalType:"bool",type:"bool"}]},{name:"_loan",internalType:"struct IMultiSourceLoan.Loan[]",type:"tuple[]",components:[{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:[{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:"refinancePartialBatch",outputs:[{name:"loanId",internalType:"uint256[]",type:"uint256[]"},{name:"loans",internalType:"struct IMultiSourceLoan.Loan[]",type:"tuple[]",components:[{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:[{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:[{name:"_contract",internalType:"address",type:"address"}],name:"removeWhitelistedCallbackContract",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_collateralTo",internalType:"address",type:"address"},{name:"_loanId",internalType:"uint256",type:"uint256"},{name:"_loan",internalType:"struct IMultiSourceLoan.Loan",type:"tuple",components:[{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:[{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:"_withCallback",internalType:"bool",type:"bool"}],name:"repayLoan",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"maxSources",internalType:"uint8",type:"uint8"}],name:"setMaxSources",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[],name:"setProtocolFee",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"newOwner",internalType:"address",type:"address"}],name:"transferOwnership",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_newMinimum",internalType:"struct IBaseLoan.ImprovementMinimum",type:"tuple",components:[{name:"principalAmount",internalType:"uint256",type:"uint256"},{name:"interest",internalType:"uint256",type:"uint256"},{name:"duration",internalType:"uint256",type:"uint256"}]}],name:"updateImprovementMinimum",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_newDuration",internalType:"uint48",type:"uint48"}],name:"updateLiquidationAuctionDuration",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"loanLiquidator",internalType:"contract ILoanLiquidator",type:"address"}],name:"updateLiquidationContract",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_newProtocolFee",internalType:"struct IBaseLoan.ProtocolFee",type:"tuple",components:[{name:"recipient",internalType:"address",type:"address"},{name:"fraction",internalType:"uint256",type:"uint256"}]}],name:"updateProtocolFee",outputs:[]}];import{createPublicClient as _e,createTransport as Be,getContract as Ne}from"viem";var f=class{abi;address;bcClient;wallet;contract;safeContractWrite;constructor({walletClient:e,address:t,abi:a}){this.wallet=e;let n=_e({transport:()=>Be(e.transport)});this.bcClient=n,this.address=t,this.abi=a,this.contract=Ne({address:this.address,abi:this.abi,walletClient:e,publicClient:this.bcClient}),this.safeContractWrite=new Proxy({},{get(i,r){return async(o,p={})=>{let{request:u}=await n.simulateContract({address:t,abi:a,functionName:r,args:o,account:e.account,...p});return e.writeContract(u)}}})}};l(f,"Contract");var X=class extends f{constructor({walletClient:e}){let{AuctionLoanLiquidatorV4Address:t}=T(e.chain);super({walletClient:e,address:t,abi:pe})}async placeBid({collectionContractAddress:e,tokenId:t,bid:a}){let n=await this.safeContractWrite.placeBid([e,t,a]);return{txHash:n,waitTxInBlock:async()=>{let i=await this.bcClient.waitForTransactionReceipt({hash:n}),r=await this.contract.createEventFilter.BidPlaced(),o=y(i,r);if(o.length==0)throw new Error("Bid not placed");return{...o[0].args,...i}}}}async settleAuction({loan:e}){let t={...e,source:e.source.map(n=>[Number(n.loanId),n.lender,n.principalAmount,n.accruedInterest,n.startTime,n.aprBps])},a=await this.safeContractWrite.settleAuction([e.nftCollateralAddress,e.nftCollateralTokenId,ke(X.LOAN_SETTLEMENT_ENCODE_TYPES,[t])]);return{txHash:a,waitTxInBlock:async()=>{let n=await this.bcClient.waitForTransactionReceipt({hash:a}),i=await this.contract.createEventFilter.AuctionSettled(),r=y(n,i);if(r.length==0)throw new Error("Auction not settled");return{...r[0].args,...n}}}}},C=X;l(C,"AllV4"),ae(C,"LOAN_SETTLEMENT_ENCODE_TYPES",[{name:"",type:"tuple",components:[{name:"borrower",type:"address"},{name:"nftCollateralTokenId",type:"uint256"},{name:"nftCollateralAddress",type:"address"},{name:"principalAddress",type:"address"},{name:"principalAmount",type:"uint256"},{name:"startTime",type:"uint256"},{name:"duration",type:"uint256"},{name:"source",type:"tuple[]",components:[{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"}]}]}]);var B=class extends f{constructor({walletClient:e}){let{AuctionLoanLiquidatorV5Address:t}=T(e.chain);super({walletClient:e,address:t,abi:ie})}async placeBid({collectionContractAddress:e,tokenId:t,bid:a,auction:n}){let i=await this.safeContractWrite.placeBid([e,t,n,a]);return{txHash:i,waitTxInBlock:async()=>{let r=await this.bcClient.waitForTransactionReceipt({hash:i}),o=await this.contract.createEventFilter.BidPlaced(),p=y(r,o);if(p.length==0)throw new Error("Bid not placed");return{...p[0].args,...r}}}}async settleAuction({auction:e,loan:t}){let a=await this.safeContractWrite.settleAuction([e,t]);return{txHash:a,waitTxInBlock:async()=>{let n=await this.bcClient.waitForTransactionReceipt({hash:a}),i=await this.contract.createEventFilter.AuctionSettled(),r=y(n,i);if(r.length==0)throw new Error("Auction not settled");return{...r[0].args,...n}}}}};l(B,"AllV5");import{encodeFunctionData as Ee}from"viem";var ye=[{constant:!0,inputs:[],name:"name",outputs:[{name:"",type:"string"}],payable:!1,type:"function",stateMutability:"view"},{constant:!0,inputs:[{name:"",type:"uint256"}],name:"punksOfferedForSale",outputs:[{name:"isForSale",type:"bool"},{name:"punkIndex",type:"uint256"},{name:"seller",type:"address"},{name:"minValue",type:"uint256"},{name:"onlySellTo",type:"address"}],payable:!1,type:"function",stateMutability:"view"},{constant:!1,inputs:[{name:"punkIndex",type:"uint256"}],name:"enterBidForPunk",outputs:[],payable:!0,type:"function",stateMutability:"payable"},{constant:!0,inputs:[],name:"totalSupply",outputs:[{name:"",type:"uint256"}],payable:!1,type:"function",stateMutability:"view"},{constant:!1,inputs:[{name:"punkIndex",type:"uint256"},{name:"minPrice",type:"uint256"}],name:"acceptBidForPunk",outputs:[],payable:!1,type:"function",stateMutability:"nonpayable"},{constant:!0,inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],payable:!1,type:"function",stateMutability:"view"},{constant:!1,inputs:[{name:"addresses",type:"address[]"},{name:"indices",type:"uint256[]"}],name:"setInitialOwners",outputs:[],payable:!1,type:"function",stateMutability:"nonpayable"},{constant:!1,inputs:[],name:"withdraw",outputs:[],payable:!1,type:"function",stateMutability:"nonpayable"},{constant:!0,inputs:[],name:"imageHash",outputs:[{name:"",type:"string"}],payable:!1,type:"function",stateMutability:"view"},{constant:!0,inputs:[],name:"nextPunkIndexToAssign",outputs:[{name:"",type:"uint256"}],payable:!1,type:"function",stateMutability:"view"},{constant:!0,inputs:[{name:"",type:"uint256"}],name:"punkIndexToAddress",outputs:[{name:"",type:"address"}],payable:!1,type:"function",stateMutability:"view"},{constant:!0,inputs:[],name:"standard",outputs:[{name:"",type:"string"}],payable:!1,type:"function",stateMutability:"view"},{constant:!0,inputs:[{name:"",type:"uint256"}],name:"punkBids",outputs:[{name:"hasBid",type:"bool"},{name:"punkIndex",type:"uint256"},{name:"bidder",type:"address"},{name:"value",type:"uint256"}],payable:!1,type:"function",stateMutability:"view"},{constant:!0,inputs:[{name:"",type:"address"}],name:"balanceOf",outputs:[{name:"",type:"uint256"}],payable:!1,type:"function",stateMutability:"view"},{constant:!1,inputs:[],name:"allInitialOwnersAssigned",outputs:[],payable:!1,type:"function",stateMutability:"nonpayable"},{constant:!0,inputs:[],name:"allPunksAssigned",outputs:[{name:"",type:"bool"}],payable:!1,type:"function",stateMutability:"view"},{constant:!1,inputs:[{name:"punkIndex",type:"uint256"}],name:"buyPunk",outputs:[],payable:!0,type:"function",stateMutability:"payable"},{constant:!1,inputs:[{name:"to",type:"address"},{name:"punkIndex",type:"uint256"}],name:"transferPunk",outputs:[],payable:!1,type:"function",stateMutability:"nonpayable"},{constant:!0,inputs:[],name:"symbol",outputs:[{name:"",type:"string"}],payable:!1,type:"function",stateMutability:"view"},{constant:!1,inputs:[{name:"punkIndex",type:"uint256"}],name:"withdrawBidForPunk",outputs:[],payable:!1,type:"function",stateMutability:"nonpayable"},{constant:!1,inputs:[{name:"to",type:"address"},{name:"punkIndex",type:"uint256"}],name:"setInitialOwner",outputs:[],payable:!1,type:"function",stateMutability:"nonpayable"},{constant:!1,inputs:[{name:"punkIndex",type:"uint256"},{name:"minSalePriceInWei",type:"uint256"},{name:"toAddress",type:"address"}],name:"offerPunkForSaleToAddress",outputs:[],payable:!1,type:"function",stateMutability:"nonpayable"},{constant:!0,inputs:[],name:"punksRemainingToAssign",outputs:[{name:"",type:"uint256"}],payable:!1,type:"function",stateMutability:"view"},{constant:!1,inputs:[{name:"punkIndex",type:"uint256"},{name:"minSalePriceInWei",type:"uint256"}],name:"offerPunkForSale",outputs:[],payable:!1,type:"function",stateMutability:"nonpayable"},{constant:!1,inputs:[{name:"punkIndex",type:"uint256"}],name:"getPunk",outputs:[],payable:!1,type:"function",stateMutability:"nonpayable"},{constant:!0,inputs:[{name:"",type:"address"}],name:"pendingWithdrawals",outputs:[{name:"",type:"uint256"}],payable:!1,type:"function",stateMutability:"view"},{constant:!1,inputs:[{name:"punkIndex",type:"uint256"}],name:"punkNoLongerForSale",outputs:[],payable:!1,type:"function",stateMutability:"nonpayable"},{inputs:[],payable:!0,type:"constructor",stateMutability:"payable"},{anonymous:!1,inputs:[{indexed:!0,name:"to",type:"address"},{indexed:!1,name:"punkIndex",type:"uint256"}],name:"Assign",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"from",type:"address"},{indexed:!0,name:"to",type:"address"},{indexed:!1,name:"value",type:"uint256"}],name:"Transfer",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"from",type:"address"},{indexed:!0,name:"to",type:"address"},{indexed:!1,name:"punkIndex",type:"uint256"}],name:"PunkTransfer",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"punkIndex",type:"uint256"},{indexed:!1,name:"minValue",type:"uint256"},{indexed:!0,name:"toAddress",type:"address"}],name:"PunkOffered",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"punkIndex",type:"uint256"},{indexed:!1,name:"value",type:"uint256"},{indexed:!0,name:"fromAddress",type:"address"}],name:"PunkBidEntered",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"punkIndex",type:"uint256"},{indexed:!1,name:"value",type:"uint256"},{indexed:!0,name:"fromAddress",type:"address"}],name:"PunkBidWithdrawn",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"punkIndex",type:"uint256"},{indexed:!1,name:"value",type:"uint256"},{indexed:!0,name:"fromAddress",type:"address"},{indexed:!0,name:"toAddress",type:"address"}],name:"PunkBought",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"punkIndex",type:"uint256"}],name:"PunkNoLongerForSale",type:"event"}];var N=class extends f{constructor({walletClient:e}){let{CryptoPunksAddress:t}=T(e.chain);super({walletClient:e,address:t,abi:ye})}async encodeBuyPunk(e){return Ee({abi:this.abi,functionName:"buyPunk",args:[e]})}};l(N,"CryptoPunks");import{encodeFunctionData as fe}from"viem";var v=l((s,e)=>s&&e&&s.toLowerCase()===e.toLowerCase(),"areSameAddress"),S=l((s,e)=>{let t=T({id:s});return{name:"GONDI_MULTI_SOURCE_LOAN",version:v(e,t.MultiSourceLoanV4Address)?"1":"2",chainId:s,verifyingContract:e}},"getDomain"),ue=l(s=>Number(s.valueOf()),"toInteger"),L=l(s=>Math.ceil(ue(s)/1e3),"millisToSeconds"),ce=60*60*24,me=l(s=>ue(s)/1e4,"bpsToPercentage");var k=class extends f{mslAddress;constructor({walletClient:e,mslAddress:t}){let{LeverageAddress:a}=T(e.chain);super({walletClient:e,address:a,abi:se}),this.mslAddress=t}async signExecutionData(e){return this.wallet.signTypedData({domain:S(this.wallet.chain.id,this.mslAddress),primaryType:"ExecutionData",types:{ExecutionData:[{name:"offer",type:"LoanOffer"},{name:"tokenId",type:"uint256"},{name:"amount",type:"uint256"},{name:"expirationTime",type:"uint256"},{name:"callbackData",type:"bytes"}],LoanOffer:[{name:"offerId",type:"uint256"},{name:"lender",type:"address"},{name:"fee",type:"uint256"},{name:"borrower",type:"address"},{name:"capacity",type:"uint256"},{name:"nftCollateralAddress",type:"address"},{name:"nftCollateralTokenId",type:"uint256"},{name:"principalAddress",type:"address"},{name:"principalAmount",type:"uint256"},{name:"aprBps",type:"uint256"},{name:"expirationTime",type:"uint256"},{name:"duration",type:"uint256"},{name:"validators",type:"OfferValidator[]"}],OfferValidator:[{name:"validator",type:"address"},{name:"arguments",type:"bytes"}]},message:e})}async signRepaymentData(e){return this.wallet.signTypedData({domain:S(this.wallet.chain.id,this.mslAddress),primaryType:"SignableRepaymentData",types:{SignableRepaymentData:[{name:"loanId",type:"uint256"},{name:"callbackData",type:"bytes"},{name:"shouldDelegate",type:"bool"}]},message:e})}async buy({leverageBuyData:e,ethToSend:t}){let a=await this.safeContractWrite.buy([await Promise.all(e.map(async n=>{let i={offer:n.offer,tokenId:n.nft.tokenId,amount:n.amount,expirationTime:n.expirationTime,callbackData:n.callbackData};return fe({abi:_,functionName:"emitLoan",args:[{executionData:i,lender:n.offer.lender,borrower:this.wallet.account.address,lenderOfferSignature:n.offer.signature,borrowerOfferSignature:await this.signExecutionData(i)}]})}))],{value:t});return{txHash:a,waitTxInBlock:async()=>{let n=await this.bcClient.waitForTransactionReceipt({hash:a}),i=await this.contract.createEventFilter.BNPLLoansStarted(),r=y(n,i);if(r.length==0)throw new Error("BNPL Loans not started");return{...r[0].args,...n}}}}async sell({loan:e,callbackData:t,shouldDelegate:a}){let n={loanId:e.source[0].loanId,callbackData:t,shouldDelegate:a},i=await this.safeContractWrite.sell([[fe({abi:_,functionName:"repayLoan",args:[{data:n,loan:e,borrowerSignature:await this.signRepaymentData(n)}]})]]);return{txHash:i,waitTxInBlock:async()=>{let r=await this.bcClient.waitForTransactionReceipt({hash:i}),o=await this.contract.createEventFilter.SellAndRepayExecuted(),p=y(r,o);if(p.length==0)throw new Error("Sell and repay not executed");return{...p[0].args,...r}}}}};l(k,"Leverage");var E=class extends f{constructor({walletClient:e}){let{MultiSourceLoanV4Address:t}=T(e.chain);super({walletClient:e,address:t,abi:de})}async signOffer({verifyingContract:e,structToSign:t}){return this.wallet.signTypedData({domain:S(this.wallet.chain.id,e),primaryType:"LoanOffer",types:{LoanOffer:[{name:"offerId",type:"uint256"},{name:"lender",type:"address"},{name:"fee",type:"uint256"},{name:"borrower",type:"address"},{name:"capacity",type:"uint256"},{name:"signer",type:"address"},{name:"requiresLiquidation",type:"bool"},{name:"nftCollateralAddress",type:"address"},{name:"nftCollateralTokenId",type:"uint256"},{name:"principalAddress",type:"address"},{name:"principalAmount",type:"uint256"},{name:"aprBps",type:"uint256"},{name:"expirationTime",type:"uint256"},{name:"duration",type:"uint256"},{name:"validators",type:"OfferValidator[]"}],OfferValidator:[{name:"validator",type:"address"},{name:"arguments",type:"bytes"}]},message:t})}async signRenegotiationOffer({verifyingContract:e,structToSign:t}){return this.wallet.signTypedData({domain:S(this.wallet.chain.id,e),primaryType:"RenegotiationOffer",types:{RenegotiationOffer:[{name:"renegotiationId",type:"uint256"},{name:"loanId",type:"uint256"},{name:"lender",type:"address"},{name:"fee",type:"uint256"},{name:"signer",type:"address"},{name:"targetPrincipal",type:"uint256[]"},{name:"principalAmount",type:"uint256"},{name:"aprBps",type:"uint256"},{name:"expirationTime",type:"uint256"},{name:"duration",type:"uint256"},{name:"strictImprovement",type:"bool"}]},message:t})}async cancelOffer({id:e}){let t=await this.safeContractWrite.cancelOffer([this.wallet.account.address,e]);return{txHash:t,waitTxInBlock:async()=>{let a=await this.bcClient.waitForTransactionReceipt({hash:t}),n=await this.contract.createEventFilter.OfferCancelled(),i=y(a,n);if(i.length==0)throw new Error("Offer not cancelled");return{...i[0].args,...a}}}}async cancelAllOffers({minId:e}){let t=await this.safeContractWrite.cancelAllOffers([this.wallet.account.address,e]);return{txHash:t,waitTxInBlock:async()=>{let a=await this.bcClient.waitForTransactionReceipt({hash:t}),n=await this.contract.createEventFilter.AllOffersCancelled(),i=y(a,n);if(i.length==0)throw new Error("Offers not cancelled");return{...i[0].args,...a}}}}async cancelRefinanceOffer({id:e}){let t=await this.safeContractWrite.cancelRenegotiationOffer([this.wallet.account.address,e]);return{txHash:t,waitTxInBlock:async()=>{let a=await this.bcClient.waitForTransactionReceipt({hash:t}),n=await this.contract.createEventFilter.RenegotiationOfferCancelled(),i=y(a,n);if(i.length==0)throw new Error("Offer not cancelled");return{...i[0].args,...a}}}}async cancelAllRenegotiations({minId:e}){let t=await this.safeContractWrite.cancelAllRenegotiationOffers([this.wallet.account.address,e]);return{txHash:t,waitTxInBlock:async()=>{let a=await this.bcClient.waitForTransactionReceipt({hash:t}),n=await this.contract.createEventFilter.RenegotiationOfferCancelled(),i=y(a,n);if(i.length==0)throw new Error("Offer not cancelled");return{...i[0].args,...a}}}}async emitLoan({offer:e,signature:t,tokenId:a}){let n=await this.safeContractWrite.emitLoan([e,a,t,!1]);return{txHash:n,waitTxInBlock:async()=>{let i=await this.bcClient.waitForTransactionReceipt({hash:n}),r=await this.contract.createEventFilter.LoanEmitted(),o=y(i,r);if(o.length==0)throw new Error("Loan not emitted");let p=o[0].args;return{loan:{id:`${this.contract.address.toLowerCase()}.${p.loanId}`,...p.loan,contractAddress:this.contract.address},offerId:`${this.contract.address.toLowerCase()}.${e.lender.toLowerCase()}.${p.offerId}`,...i}}}}async repayLoan({loan:e,nftReceiver:t}){let a=t??this.wallet.account.address,n=await this.safeContractWrite.repayLoan([a,e.source[0].loanId,e,!1]);return{txHash:n,waitTxInBlock:async()=>{let i=await this.bcClient.waitForTransactionReceipt({hash:n}),r=await this.contract.createEventFilter.LoanRepaid(),o=y(i,r);if(o.length==0)throw new Error("Loan not repaid");return{...o[0].args,...i}}}}getRemainingLockupSeconds(){return 0}async refinanceFullLoan({offer:e,signature:t,loan:a}){let n=await this.safeContractWrite.refinanceFull([e,a,t]);return{txHash:n,waitTxInBlock:async()=>{let i=await this.bcClient.waitForTransactionReceipt({hash:n}),r=await this.contract.createEventFilter.LoanRefinanced(),o=y(i,r);if(o.length==0)throw new Error("Loan not refinanced");let p=o[0].args;return{loan:{id:`${this.contract.address.toLowerCase()}.${p.newLoanId}`,...p.loan,contractAddress:this.address},renegotiationId:`${this.contract.address.toLowerCase()}.${e.lender.toLowerCase()}.${p.renegotiationId}`,...i}}}}async refinancePartialLoan({offer:e,loan:t}){let a=await this.safeContractWrite.refinancePartial([e,t]);return{txHash:a,waitTxInBlock:async()=>{let n=await this.bcClient.waitForTransactionReceipt({hash:a}),i=await this.contract.createEventFilter.LoanRefinanced(),r=y(n,i);if(r.length==0)throw new Error("Loan not refinanced");let o=r[0].args;return{loan:{id:`${this.contract.address.toLowerCase()}.${o.newLoanId}`,...o.loan,contractAddress:this.contract.address},renegotiationId:`${this.contract.address.toLowerCase()}.${e.lender.toLowerCase()}.${o.renegotiationId}`,...n}}}}async liquidateLoan({loan:e}){let t=await this.safeContractWrite.liquidateLoan([e.source[0].loanId,e]);return{txHash:t,waitTxInBlock:async()=>{let a=await this.bcClient.waitForTransactionReceipt({hash:t}),n=await this.contract.createEventFilter.LoanForeclosed(),i=await this.contract.createEventFilter.LoanSentToLiquidator(),r=y(a,n),o=y(a,i);if(r.length===0&&o.length===0)throw new Error("Loan not liquidated");return{...r?.[0]?.args??o?.[0]?.args,...a}}}}};l(E,"MslV4");var D=class extends f{constructor({walletClient:e}){let{MultiSourceLoanV5Address:t}=T(e.chain);super({walletClient:e,address:t,abi:_})}async signOffer({verifyingContract:e,structToSign:t}){return this.wallet.signTypedData({domain:S(this.wallet.chain.id,e),primaryType:"LoanOffer",types:{LoanOffer:[{name:"offerId",type:"uint256"},{name:"lender",type:"address"},{name:"fee",type:"uint256"},{name:"borrower",type:"address"},{name:"capacity",type:"uint256"},{name:"nftCollateralAddress",type:"address"},{name:"nftCollateralTokenId",type:"uint256"},{name:"principalAddress",type:"address"},{name:"principalAmount",type:"uint256"},{name:"aprBps",type:"uint256"},{name:"expirationTime",type:"uint256"},{name:"duration",type:"uint256"},{name:"validators",type:"OfferValidator[]"}],OfferValidator:[{name:"validator",type:"address"},{name:"arguments",type:"bytes"}]},message:t})}async signRenegotiationOffer({verifyingContract:e,structToSign:t}){return this.wallet.signTypedData({domain:S(this.wallet.chain.id,e),primaryType:"RenegotiationOffer",types:{RenegotiationOffer:[{name:"renegotiationId",type:"uint256"},{name:"loanId",type:"uint256"},{name:"lender",type:"address"},{name:"fee",type:"uint256"},{name:"targetPrincipal",type:"uint256[]"},{name:"principalAmount",type:"uint256"},{name:"aprBps",type:"uint256"},{name:"expirationTime",type:"uint256"},{name:"duration",type:"uint256"}]},message:t})}async cancelOffer({id:e}){let t=await this.safeContractWrite.cancelOffer([e]);return{txHash:t,waitTxInBlock:async()=>{let a=await this.bcClient.waitForTransactionReceipt({hash:t}),n=await this.contract.createEventFilter.OfferCancelled(),i=y(a,n);if(i.length==0)throw new Error("Offer not cancelled");return{...i[0].args,...a}}}}async cancelAllOffers({minId:e}){let t=await this.safeContractWrite.cancelAllOffers([e]);return{txHash:t,waitTxInBlock:async()=>{let a=await this.bcClient.waitForTransactionReceipt({hash:t}),n=await this.contract.createEventFilter.AllOffersCancelled(),i=y(a,n);if(i.length==0)throw new Error("Offers not cancelled");return{...i[0].args,...a}}}}async cancelRefinanceOffer({id:e}){let t=await this.safeContractWrite.cancelRenegotiationOffer([e]);return{txHash:t,waitTxInBlock:async()=>{let a=await this.bcClient.waitForTransactionReceipt({hash:t}),n=await this.contract.createEventFilter.RenegotiationOfferCancelled(),i=y(a,n);if(i.length==0)throw new Error("Renegotiation offer not cancelled");return{...i[0].args,...a}}}}async cancelAllRenegotiations({minId:e}){let t=await this.safeContractWrite.cancelAllRenegotiationOffers([e]);return{txHash:t,waitTxInBlock:async()=>{let a=await this.bcClient.waitForTransactionReceipt({hash:t}),n=await this.contract.createEventFilter.AllRenegotiationOffersCancelled(),i=y(a,n);if(i.length==0)throw new Error("Renegotiation offers not cancelled");return{...i[0].args,...a}}}}async emitLoan({offer:e,signature:t,tokenId:a,amount:n,expirationTime:i}){let r={offer:e,tokenId:a,amount:n,expirationTime:i,callbackData:"0x"},o=await this.safeContractWrite.emitLoan([{executionData:r,lender:e.lender,borrower:this.wallet.account.address,lenderOfferSignature:t,borrowerOfferSignature:"0x"}]);return{txHash:o,waitTxInBlock:async()=>{let p=await this.bcClient.waitForTransactionReceipt({hash:o}),u=await this.contract.createEventFilter.LoanEmitted(),d=y(p,u);if(d.length==0)throw new Error("Loan not emitted");let m=d[0].args;return{loan:{id:`${this.contract.address.toLowerCase()}.${m.loanId}`,...m.loan,contractAddress:this.contract.address},offerId:`${this.contract.address.toLowerCase()}.${e.lender.toLowerCase()}.${m.offerId}`,...p}}}}async repayLoan({loan:e}){let t={loanId:e.source[0].loanId,callbackData:"0x",shouldDelegate:!1},a=await this.safeContractWrite.repayLoan([{data:t,loan:e,borrowerSignature:"0x"}]);return{txHash:a,waitTxInBlock:async()=>{let n=await this.bcClient.waitForTransactionReceipt({hash:a}),i=await this.contract.createEventFilter.LoanRepaid(),r=y(n,i);if(r.length==0)throw new Error("Loan not repaid");return{...r[0].args,...n}}}}async getRemainingLockupSeconds({loan:e}){let t=e.source[0],n=e.startTime+e.duration-t.startTime,i=await this.contract.read.getMinLockPeriod(),r=me(i),o=Math.ceil(Number(n)*r),p=Math.ceil(L(Date.now())-Number(t.startTime));return p>=o?0:o-p}async refinanceFullLoan({offer:e,signature:t,loan:a}){let n=await this.safeContractWrite.refinanceFull([e,a,t]);return{txHash:n,waitTxInBlock:async()=>{let i=await this.bcClient.waitForTransactionReceipt({hash:n}),r=await this.contract.createEventFilter.LoanRefinanced(),o=y(i,r);if(o.length==0)throw new Error("Loan not refinanced");let p=o[0].args;return{loan:{id:`${this.contract.address.toLowerCase()}.${p.newLoanId}`,...p.loan,contractAddress:this.contract.address},renegotiationId:`${this.contract.address.toLowerCase()}.${e.lender.toLowerCase()}.${p.renegotiationId}`,...i}}}}async refinancePartialLoan({offer:e,loan:t}){let a=await this.safeContractWrite.refinancePartial([e,t]);return{txHash:a,waitTxInBlock:async()=>{let n=await this.bcClient.waitForTransactionReceipt({hash:a}),i=await this.contract.createEventFilter.LoanRefinanced(),r=y(n,i);if(r.length==0)throw new Error("Loan not refinanced");let o=r[0].args;return{loan:{id:`${this.contract.address.toLowerCase()}.${o.newLoanId}`,...o.loan,contractAddress:this.contract.address},renegotiationId:`${this.contract.address.toLowerCase()}.${e.lender.toLowerCase()}.${o.renegotiationId}`,...n}}}}async liquidateLoan({loan:e}){let t=await this.safeContractWrite.liquidateLoan([e.source[0].loanId,e]);return{txHash:t,waitTxInBlock:async()=>{let a=await this.bcClient.waitForTransactionReceipt({hash:t}),n=await this.contract.createEventFilter.LoanForeclosed(),i=await this.contract.createEventFilter.LoanSentToLiquidator(),r=y(a,n),o=y(a,i);if(r.length===0&&o.length===0)throw new Error("Loan not liquidated");return{...r?.[0]?.args??o?.[0]?.args,...a}}}}};l(D,"MslV5");import{zeroAddress as $}from"viem";var R=[{inputs:[{internalType:"address",name:"conduitController",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"BadContractSignature",type:"error"},{inputs:[],name:"BadFraction",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"BadReturnValueFromERC20OnTransfer",type:"error"},{inputs:[{internalType:"uint8",name:"v",type:"uint8"}],name:"BadSignatureV",type:"error"},{inputs:[],name:"CannotCancelOrder",type:"error"},{inputs:[],name:"ConsiderationCriteriaResolverOutOfRange",type:"error"},{inputs:[],name:"ConsiderationLengthNotEqualToTotalOriginal",type:"error"},{inputs:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"considerationIndex",type:"uint256"},{internalType:"uint256",name:"shortfallAmount",type:"uint256"}],name:"ConsiderationNotMet",type:"error"},{inputs:[],name:"CriteriaNotEnabledForItem",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256[]",name:"identifiers",type:"uint256[]"},{internalType:"uint256[]",name:"amounts",type:"uint256[]"}],name:"ERC1155BatchTransferGenericFailure",type:"error"},{inputs:[],name:"InexactFraction",type:"error"},{inputs:[],name:"InsufficientNativeTokensSupplied",type:"error"},{inputs:[],name:"Invalid1155BatchTransferEncoding",type:"error"},{inputs:[],name:"InvalidBasicOrderParameterEncoding",type:"error"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"InvalidCallToConduit",type:"error"},{inputs:[{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"address",name:"conduit",type:"address"}],name:"InvalidConduit",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"InvalidContractOrder",type:"error"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"InvalidERC721TransferAmount",type:"error"},{inputs:[],name:"InvalidFulfillmentComponentData",type:"error"},{inputs:[{internalType:"uint256",name:"value",type:"uint256"}],name:"InvalidMsgValue",type:"error"},{inputs:[],name:"InvalidNativeOfferItem",type:"error"},{inputs:[],name:"InvalidProof",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"InvalidRestrictedOrder",type:"error"},{inputs:[],name:"InvalidSignature",type:"error"},{inputs:[],name:"InvalidSigner",type:"error"},{inputs:[{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"}],name:"InvalidTime",type:"error"},{inputs:[{internalType:"uint256",name:"fulfillmentIndex",type:"uint256"}],name:"MismatchedFulfillmentOfferAndConsiderationComponents",type:"error"},{inputs:[{internalType:"enum Side",name:"side",type:"uint8"}],name:"MissingFulfillmentComponentOnAggregation",type:"error"},{inputs:[],name:"MissingItemAmount",type:"error"},{inputs:[],name:"MissingOriginalConsiderationItems",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"NativeTokenTransferGenericFailure",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"NoContract",type:"error"},{inputs:[],name:"NoReentrantCalls",type:"error"},{inputs:[],name:"NoSpecifiedOrdersAvailable",type:"error"},{inputs:[],name:"OfferAndConsiderationRequiredOnFulfillment",type:"error"},{inputs:[],name:"OfferCriteriaResolverOutOfRange",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderAlreadyFilled",type:"error"},{inputs:[{internalType:"enum Side",name:"side",type:"uint8"}],name:"OrderCriteriaResolverOutOfRange",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderIsCancelled",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderPartiallyFilled",type:"error"},{inputs:[],name:"PartialFillsNotEnabledForOrder",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"TokenTransferGenericFailure",type:"error"},{inputs:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"considerationIndex",type:"uint256"}],name:"UnresolvedConsiderationCriteria",type:"error"},{inputs:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"offerIndex",type:"uint256"}],name:"UnresolvedOfferCriteria",type:"error"},{inputs:[],name:"UnusedItemParameters",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"newCounter",type:"uint256"},{indexed:!0,internalType:"address",name:"offerer",type:"address"}],name:"CounterIncremented",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{indexed:!0,internalType:"address",name:"offerer",type:"address"},{indexed:!0,internalType:"address",name:"zone",type:"address"}],name:"OrderCancelled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{indexed:!0,internalType:"address",name:"offerer",type:"address"},{indexed:!0,internalType:"address",name:"zone",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],indexed:!1,internalType:"struct SpentItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],indexed:!1,internalType:"struct ReceivedItem[]",name:"consideration",type:"tuple[]"}],name:"OrderFulfilled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],indexed:!1,internalType:"struct OrderParameters",name:"orderParameters",type:"tuple"}],name:"OrderValidated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32[]",name:"orderHashes",type:"bytes32[]"}],name:"OrdersMatched",type:"event"},{inputs:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"counter",type:"uint256"}],internalType:"struct OrderComponents[]",name:"orders",type:"tuple[]"}],name:"cancel",outputs:[{internalType:"bool",name:"cancelled",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"uint120",name:"numerator",type:"uint120"},{internalType:"uint120",name:"denominator",type:"uint120"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"bytes",name:"extraData",type:"bytes"}],internalType:"struct AdvancedOrder",name:"",type:"tuple"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"enum Side",name:"side",type:"uint8"},{internalType:"uint256",name:"index",type:"uint256"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"bytes32[]",name:"criteriaProof",type:"bytes32[]"}],internalType:"struct CriteriaResolver[]",name:"",type:"tuple[]"},{internalType:"bytes32",name:"fulfillerConduitKey",type:"bytes32"},{internalType:"address",name:"recipient",type:"address"}],name:"fulfillAdvancedOrder",outputs:[{internalType:"bool",name:"fulfilled",type:"bool"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"uint120",name:"numerator",type:"uint120"},{internalType:"uint120",name:"denominator",type:"uint120"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"bytes",name:"extraData",type:"bytes"}],internalType:"struct AdvancedOrder[]",name:"",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"enum Side",name:"side",type:"uint8"},{internalType:"uint256",name:"index",type:"uint256"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"bytes32[]",name:"criteriaProof",type:"bytes32[]"}],internalType:"struct CriteriaResolver[]",name:"",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[][]",name:"",type:"tuple[][]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[][]",name:"",type:"tuple[][]"},{internalType:"bytes32",name:"fulfillerConduitKey",type:"bytes32"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"maximumFulfilled",type:"uint256"}],name:"fulfillAvailableAdvancedOrders",outputs:[{internalType:"bool[]",name:"",type:"bool[]"},{components:[{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ReceivedItem",name:"item",type:"tuple"},{internalType:"address",name:"offerer",type:"address"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"}],internalType:"struct Execution[]",name:"",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct Order[]",name:"",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[][]",name:"",type:"tuple[][]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[][]",name:"",type:"tuple[][]"},{internalType:"bytes32",name:"fulfillerConduitKey",type:"bytes32"},{internalType:"uint256",name:"maximumFulfilled",type:"uint256"}],name:"fulfillAvailableOrders",outputs:[{internalType:"bool[]",name:"",type:"bool[]"},{components:[{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ReceivedItem",name:"item",type:"tuple"},{internalType:"address",name:"offerer",type:"address"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"}],internalType:"struct Execution[]",name:"",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"considerationToken",type:"address"},{internalType:"uint256",name:"considerationIdentifier",type:"uint256"},{internalType:"uint256",name:"considerationAmount",type:"uint256"},{internalType:"address payable",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{internalType:"address",name:"offerToken",type:"address"},{internalType:"uint256",name:"offerIdentifier",type:"uint256"},{internalType:"uint256",name:"offerAmount",type:"uint256"},{internalType:"enum BasicOrderType",name:"basicOrderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"offererConduitKey",type:"bytes32"},{internalType:"bytes32",name:"fulfillerConduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalAdditionalRecipients",type:"uint256"},{components:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct AdditionalRecipient[]",name:"additionalRecipients",type:"tuple[]"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct BasicOrderParameters",name:"parameters",type:"tuple"}],name:"fulfillBasicOrder",outputs:[{internalType:"bool",name:"fulfilled",type:"bool"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"considerationToken",type:"address"},{internalType:"uint256",name:"considerationIdentifier",type:"uint256"},{internalType:"uint256",name:"considerationAmount",type:"uint256"},{internalType:"address payable",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{internalType:"address",name:"offerToken",type:"address"},{internalType:"uint256",name:"offerIdentifier",type:"uint256"},{internalType:"uint256",name:"offerAmount",type:"uint256"},{internalType:"enum BasicOrderType",name:"basicOrderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"offererConduitKey",type:"bytes32"},{internalType:"bytes32",name:"fulfillerConduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalAdditionalRecipients",type:"uint256"},{components:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct AdditionalRecipient[]",name:"additionalRecipients",type:"tuple[]"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct BasicOrderParameters",name:"parameters",type:"tuple"}],name:"fulfillBasicOrder_efficient_6GL6yc",outputs:[{internalType:"bool",name:"fulfilled",type:"bool"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct Order",name:"",type:"tuple"},{internalType:"bytes32",name:"fulfillerConduitKey",type:"bytes32"}],name:"fulfillOrder",outputs:[{internalType:"bool",name:"fulfilled",type:"bool"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"contractOfferer",type:"address"}],name:"getContractOffererNonce",outputs:[{internalType:"uint256",name:"nonce",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"offerer",type:"address"}],name:"getCounter",outputs:[{internalType:"uint256",name:"counter",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"counter",type:"uint256"}],internalType:"struct OrderComponents",name:"",type:"tuple"}],name:"getOrderHash",outputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"getOrderStatus",outputs:[{internalType:"bool",name:"isValidated",type:"bool"},{internalType:"bool",name:"isCancelled",type:"bool"},{internalType:"uint256",name:"totalFilled",type:"uint256"},{internalType:"uint256",name:"totalSize",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"incrementCounter",outputs:[{internalType:"uint256",name:"newCounter",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"information",outputs:[{internalType:"string",name:"version",type:"string"},{internalType:"bytes32",name:"domainSeparator",type:"bytes32"},{internalType:"address",name:"conduitController",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"uint120",name:"numerator",type:"uint120"},{internalType:"uint120",name:"denominator",type:"uint120"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"bytes",name:"extraData",type:"bytes"}],internalType:"struct AdvancedOrder[]",name:"",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"enum Side",name:"side",type:"uint8"},{internalType:"uint256",name:"index",type:"uint256"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"bytes32[]",name:"criteriaProof",type:"bytes32[]"}],internalType:"struct CriteriaResolver[]",name:"",type:"tuple[]"},{components:[{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[]",name:"offerComponents",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[]",name:"considerationComponents",type:"tuple[]"}],internalType:"struct Fulfillment[]",name:"",type:"tuple[]"},{internalType:"address",name:"recipient",type:"address"}],name:"matchAdvancedOrders",outputs:[{components:[{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ReceivedItem",name:"item",type:"tuple"},{internalType:"address",name:"offerer",type:"address"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"}],internalType:"struct Execution[]",name:"",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct Order[]",name:"",type:"tuple[]"},{components:[{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[]",name:"offerComponents",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[]",name:"considerationComponents",type:"tuple[]"}],internalType:"struct Fulfillment[]",name:"",type:"tuple[]"}],name:"matchOrders",outputs:[{components:[{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ReceivedItem",name:"item",type:"tuple"},{internalType:"address",name:"offerer",type:"address"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"}],internalType:"struct Execution[]",name:"",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"pure",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct Order[]",name:"",type:"tuple[]"}],name:"validate",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}];var H=class extends f{constructor({walletClient:e}){let{SeaportAddress:t}=T(e.chain);super({walletClient:e,address:t,abi:R})}async signOrder(e){let t={name:"Seaport",version:"1.5",chainId:this.wallet.chain?.id,verifyingContract:this.address},a={OrderComponents:[{name:"offerer",type:"address"},{name:"zone",type:"address"},{name:"offer",type:"OfferItem[]"},{name:"consideration",type:"ConsiderationItem[]"},{name:"orderType",type:"uint8"},{name:"startTime",type:"uint256"},{name:"endTime",type:"uint256"},{name:"zoneHash",type:"bytes32"},{name:"salt",type:"uint256"},{name:"conduitKey",type:"bytes32"},{name:"counter",type:"uint256"}],OfferItem:[{name:"itemType",type:"uint8"},{name:"token",type:"address"},{name:"identifierOrCriteria",type:"uint256"},{name:"startAmount",type:"uint256"},{name:"endAmount",type:"uint256"}],ConsiderationItem:[{name:"itemType",type:"uint8"},{name:"token",type:"address"},{name:"identifierOrCriteria",type:"uint256"},{name:"startAmount",type:"uint256"},{name:"endAmount",type:"uint256"},{name:"recipient",type:"address"}]};return this.wallet.signTypedData({domain:t,types:a,primaryType:"OrderComponents",message:e})}async generateOrderFromSaleOffer({collectionContractAddress:e,tokenId:t,price:a,expirationTime:n}){let{WETH_ADDRESS:i}=P(),r={offerer:this.wallet.account.address,zone:$,offer:[{itemType:1,token:i,identifierOrCriteria:0n,startAmount:a,endAmount:a}],consideration:[{itemType:2,token:e,identifierOrCriteria:t,startAmount:1n,endAmount:1n,recipient:this.wallet.account.address}],orderType:0,startTime:BigInt(Math.floor(L(Date.now()))),endTime:n,zoneHash:I,salt:0n,conduitKey:I,counter:0n,totalOriginalConsiderationItems:1n},o=await this.signOrder(r);return{parameters:r,signature:o}}generateInverseOrder(e){return{offerer:this.wallet.account?.address??$,zone:$,offer:e.consideration,consideration:e.offer.map(t=>({...t,recipient:this.wallet.account?.address??$})),orderType:0,startTime:e.startTime,endTime:e.endTime,zoneHash:I,salt:0n,conduitKey:I,counter:0n,totalOriginalConsiderationItems:BigInt(e.offer.length)}}generateFulfillmentsForOrderAndInverse(e){let t=[];return e.offer.forEach((a,n)=>{t.push({offerComponents:[{orderIndex:0n,itemIndex:BigInt(n)}],considerationComponents:[{orderIndex:1n,itemIndex:BigInt(n)}]})}),e.consideration.forEach((a,n)=>{t.push({offerComponents:[{orderIndex:1n,itemIndex:BigInt(n)}],considerationComponents:[{orderIndex:0n,itemIndex:BigInt(n)}]})}),t}async cancel({orderComponents:e}){let t=await this.safeContractWrite.cancel([[e]]);return{txHash:t,waitTxInBlock:async()=>{let a=await this.bcClient.waitForTransactionReceipt({hash:t}),n=await this.contract.createEventFilter.OrderCancelled({offerer:e.offerer}),i=y(a,n);if(i.length==0)throw new Error("Order not cancelled");return{...i[0].args,...a}}}}};l(H,"Seaport");var V=class{walletClient;publicClient;MultiSourceLoanV4;MultiSourceLoanV5;AuctionLoanLiquidatorV4;AuctionLoanLiquidatorV5;Leverage;Seaport;CryptoPunks;constructor(e,t){this.walletClient=t,this.publicClient=e,this.MultiSourceLoanV4=new E({walletClient:t}),this.MultiSourceLoanV5=new D({walletClient:t}),this.AuctionLoanLiquidatorV4=new C({walletClient:t}),this.AuctionLoanLiquidatorV5=new B({walletClient:t}),this.Leverage=new k({walletClient:t,mslAddress:this.MultiSourceLoanV5.address}),this.Seaport=new H({walletClient:t}),this.CryptoPunks=new N({walletClient:t})}Msl(e){if(v(e,this.MultiSourceLoanV4.address))return this.MultiSourceLoanV4;if(v(e,this.MultiSourceLoanV5.address))return this.MultiSourceLoanV5;throw new Error(`Invalid Contract Address ${e}`)}All(e){if(v(e,this.MultiSourceLoanV4.address))return this.AuctionLoanLiquidatorV4;if(v(e,this.MultiSourceLoanV5.address))return this.AuctionLoanLiquidatorV5;throw new Error(`Invalid Contract Address ${e}`)}ERC721(e){return Te({address:e,abi:W,walletClient:this.walletClient,publicClient:this.publicClient})}ERC20(e){return Te({address:e,abi:re,walletClient:this.walletClient,publicClient:this.publicClient})}};l(V,"Contracts");var b=Ve,I=`0x${"0".repeat(64)}`,ge="0x0";function y(s,e){return s.logs.filter(t=>He(e)[0]==t.topics[0]).map(t=>De({abi:e.abi,data:t.data,topics:t.topics,eventName:e.eventName})).filter(t=>t.eventName==e.eventName)}l(y,"filterLogs");import{ApolloClient as Ge,ApolloLink as Oe,createHttpLink as Xe,InMemoryCache as Ze}from"@apollo/client/core/index.js";import{setContext as je}from"@apollo/client/link/context/index.js";import{withScalars as Ye}from"apollo-link-scalars";import{buildSchema as Je}from"graphql";import{ApolloClient as Ke,ApolloLink as Ie,createHttpLink as Ue,InMemoryCache as qe}from"@apollo/client/core/index.js";import{gql as Se}from"graphql-tag";import{SiweMessage as We}from"siwe";var be=l(()=>process.env.GONDI_URL??"https://api.gondi.xyz","gondiUrl"),Z=l(()=>`${be()}/graphql`,"authApiUrl"),Fe=l(()=>`${be()}/lending/graphql`,"apiUrl");var $e=l(async()=>{let s=Ie.from([Ue({uri:({operationName:e})=>`${Z()}?operation=${encodeURIComponent(e)}`})]);return new Ke({link:Ie.from([s]),defaultOptions:{query:{errorPolicy:"all"},mutate:{errorPolicy:"all"}},cache:new qe({})})},"getAuthClient"),ze=l(async({wallet:s})=>{let e=await $e(),{data:t,errors:a}=await e.mutate({mutation:Se`
|
|
1
|
+
var ne=Object.defineProperty;var he=(s,e,t)=>e in s?ne(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t;var l=(s,e)=>ne(s,"name",{value:e,configurable:!0});var ae=(s,e,t)=>(he(s,typeof e!="symbol"?e+"":e,t),t);import{createPublicClient as Ut,createTransport as qt}from"viem";import{decodeEventLog as Ve,encodeEventTopics as Ke,getContract as ge,zeroAddress as Ue}from"viem";var ie=[{stateMutability:"nonpayable",type:"constructor",inputs:[{name:"liquidationDistributor",internalType:"address",type:"address"},{name:"currencyManager",internalType:"address",type:"address"},{name:"collectionManager",internalType:"address",type:"address"},{name:"triggerFee",internalType:"uint256",type:"uint256"}]},{type:"error",inputs:[],name:"AddressZeroError"},{type:"error",inputs:[],name:"AuctionAlreadyInProgressError"},{type:"error",inputs:[{name:"_expiration",internalType:"uint96",type:"uint96"}],name:"AuctionNotOverError"},{type:"error",inputs:[{name:"_expiration",internalType:"uint96",type:"uint96"}],name:"AuctionOverError"},{type:"error",inputs:[],name:"CollectionNotWhitelistedError"},{type:"error",inputs:[],name:"CouldNotModifyValidLoansError"},{type:"error",inputs:[],name:"CurrencyNotWhitelistedError"},{type:"error",inputs:[],name:"InvalidHashAuctionError"},{type:"error",inputs:[{name:"triggerFee",internalType:"uint256",type:"uint256"}],name:"InvalidTriggerFee"},{type:"error",inputs:[{name:"_loan",internalType:"address",type:"address"}],name:"LoanNotAcceptedError"},{type:"error",inputs:[{name:"_minBid",internalType:"uint256",type:"uint256"}],name:"MinBidError"},{type:"error",inputs:[{name:"_owner",internalType:"address",type:"address"}],name:"NFTNotOwnedError"},{type:"error",inputs:[],name:"NoBidsError"},{type:"error",inputs:[],name:"ZeroAddressError"},{type:"event",anonymous:!1,inputs:[{name:"loanContract",internalType:"address",type:"address",indexed:!1},{name:"loanId",internalType:"uint256",type:"uint256",indexed:!1},{name:"auctionContract",internalType:"address",type:"address",indexed:!1},{name:"tokenId",internalType:"uint256",type:"uint256",indexed:!1},{name:"asset",internalType:"address",type:"address",indexed:!1},{name:"proceeds",internalType:"uint256",type:"uint256",indexed:!1},{name:"settler",internalType:"address",type:"address",indexed:!1},{name:"triggerFee",internalType:"uint256",type:"uint256",indexed:!1}],name:"AuctionSettled"},{type:"event",anonymous:!1,inputs:[{name:"collection",internalType:"address",type:"address",indexed:!1},{name:"tokenId",internalType:"uint256",type:"uint256",indexed:!1},{name:"newBidder",internalType:"address",type:"address",indexed:!1},{name:"bid",internalType:"uint256",type:"uint256",indexed:!1},{name:"loanAddress",internalType:"address",type:"address",indexed:!1},{name:"loanId",internalType:"uint256",type:"uint256",indexed:!1}],name:"BidPlaced"},{type:"event",anonymous:!1,inputs:[{name:"liquidationDistributor",internalType:"address",type:"address",indexed:!1}],name:"LiquidationDistributorUpdated"},{type:"event",anonymous:!1,inputs:[{name:"loan",internalType:"address",type:"address",indexed:!1}],name:"LoanContractAdded"},{type:"event",anonymous:!1,inputs:[{name:"loan",internalType:"address",type:"address",indexed:!1}],name:"LoanContractRemoved"},{type:"event",anonymous:!1,inputs:[{name:"collection",internalType:"address",type:"address",indexed:!1},{name:"tokenId",internalType:"uint256",type:"uint256",indexed:!1},{name:"auction",internalType:"struct IAuctionLoanLiquidator.Auction",type:"tuple",components:[{name:"loanAddress",internalType:"address",type:"address"},{name:"loanId",internalType:"uint256",type:"uint256"},{name:"highestBid",internalType:"uint256",type:"uint256"},{name:"triggerFee",internalType:"uint256",type:"uint256"},{name:"highestBidder",internalType:"address",type:"address"},{name:"duration",internalType:"uint96",type:"uint96"},{name:"asset",internalType:"address",type:"address"},{name:"startTime",internalType:"uint96",type:"uint96"},{name:"originator",internalType:"address",type:"address"},{name:"lastBidTime",internalType:"uint96",type:"uint96"}],indexed:!1}],name:"LoanLiquidationStarted"},{type:"event",anonymous:!1,inputs:[{name:"user",internalType:"address",type:"address",indexed:!0},{name:"newOwner",internalType:"address",type:"address",indexed:!0}],name:"OwnershipTransferred"},{type:"event",anonymous:!1,inputs:[{name:"triggerFee",internalType:"uint256",type:"uint256",indexed:!1}],name:"TriggerFeeUpdated"},{stateMutability:"view",type:"function",inputs:[],name:"MAX_TRIGGER_FEE",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"view",type:"function",inputs:[],name:"MIN_INCREMENT_BPS",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_loanContract",internalType:"address",type:"address"}],name:"addLoanContract",outputs:[]},{stateMutability:"view",type:"function",inputs:[{name:"_contract",internalType:"address",type:"address"},{name:"_tokenId",internalType:"uint256",type:"uint256"}],name:"getAuctionHash",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}]},{stateMutability:"view",type:"function",inputs:[],name:"getLiquidationDistributor",outputs:[{name:"",internalType:"address",type:"address"}]},{stateMutability:"view",type:"function",inputs:[],name:"getTriggerFee",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"view",type:"function",inputs:[],name:"getValidLoanContracts",outputs:[{name:"",internalType:"address[]",type:"address[]"}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_loanId",internalType:"uint256",type:"uint256"},{name:"_contract",internalType:"address",type:"address"},{name:"_tokenId",internalType:"uint256",type:"uint256"},{name:"_asset",internalType:"address",type:"address"},{name:"_duration",internalType:"uint96",type:"uint96"},{name:"_originator",internalType:"address",type:"address"}],name:"liquidateLoan",outputs:[{name:"",internalType:"bytes",type:"bytes"}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"",internalType:"address",type:"address"},{name:"",internalType:"address",type:"address"},{name:"",internalType:"uint256",type:"uint256"},{name:"",internalType:"bytes",type:"bytes"}],name:"onERC721Received",outputs:[{name:"",internalType:"bytes4",type:"bytes4"}]},{stateMutability:"view",type:"function",inputs:[],name:"owner",outputs:[{name:"",internalType:"address",type:"address"}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_contract",internalType:"address",type:"address"},{name:"_tokenId",internalType:"uint256",type:"uint256"},{name:"_auction",internalType:"struct IAuctionLoanLiquidator.Auction",type:"tuple",components:[{name:"loanAddress",internalType:"address",type:"address"},{name:"loanId",internalType:"uint256",type:"uint256"},{name:"highestBid",internalType:"uint256",type:"uint256"},{name:"triggerFee",internalType:"uint256",type:"uint256"},{name:"highestBidder",internalType:"address",type:"address"},{name:"duration",internalType:"uint96",type:"uint96"},{name:"asset",internalType:"address",type:"address"},{name:"startTime",internalType:"uint96",type:"uint96"},{name:"originator",internalType:"address",type:"address"},{name:"lastBidTime",internalType:"uint96",type:"uint96"}]},{name:"_bid",internalType:"uint256",type:"uint256"}],name:"placeBid",outputs:[{name:"",internalType:"struct IAuctionLoanLiquidator.Auction",type:"tuple",components:[{name:"loanAddress",internalType:"address",type:"address"},{name:"loanId",internalType:"uint256",type:"uint256"},{name:"highestBid",internalType:"uint256",type:"uint256"},{name:"triggerFee",internalType:"uint256",type:"uint256"},{name:"highestBidder",internalType:"address",type:"address"},{name:"duration",internalType:"uint96",type:"uint96"},{name:"asset",internalType:"address",type:"address"},{name:"startTime",internalType:"uint96",type:"uint96"},{name:"originator",internalType:"address",type:"address"},{name:"lastBidTime",internalType:"uint96",type:"uint96"}]}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_loanContract",internalType:"address",type:"address"}],name:"removeLoanContract",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_auction",internalType:"struct IAuctionLoanLiquidator.Auction",type:"tuple",components:[{name:"loanAddress",internalType:"address",type:"address"},{name:"loanId",internalType:"uint256",type:"uint256"},{name:"highestBid",internalType:"uint256",type:"uint256"},{name:"triggerFee",internalType:"uint256",type:"uint256"},{name:"highestBidder",internalType:"address",type:"address"},{name:"duration",internalType:"uint96",type:"uint96"},{name:"asset",internalType:"address",type:"address"},{name:"startTime",internalType:"uint96",type:"uint96"},{name:"originator",internalType:"address",type:"address"},{name:"lastBidTime",internalType:"uint96",type:"uint96"}]},{name:"_loan",internalType:"struct IMultiSourceLoan.Loan",type:"tuple",components:[{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:[{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:"settleAuction",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"newOwner",internalType:"address",type:"address"}],name:"transferOwnership",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"__liquidationDistributor",internalType:"address",type:"address"}],name:"updateLiquidationDistributor",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"triggerFee",internalType:"uint256",type:"uint256"}],name:"updateTriggerFee",outputs:[]}];var re=[{type:"event",anonymous:!1,inputs:[{name:"owner",internalType:"address",type:"address",indexed:!0},{name:"spender",internalType:"address",type:"address",indexed:!0},{name:"amount",internalType:"uint256",type:"uint256",indexed:!1}],name:"Approval"},{type:"event",anonymous:!1,inputs:[{name:"from",internalType:"address",type:"address",indexed:!0},{name:"to",internalType:"address",type:"address",indexed:!0},{name:"amount",internalType:"uint256",type:"uint256",indexed:!1}],name:"Transfer"},{stateMutability:"view",type:"function",inputs:[],name:"DOMAIN_SEPARATOR",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}]},{stateMutability:"view",type:"function",inputs:[{name:"",internalType:"address",type:"address"},{name:"",internalType:"address",type:"address"}],name:"allowance",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"spender",internalType:"address",type:"address"},{name:"amount",internalType:"uint256",type:"uint256"}],name:"approve",outputs:[{name:"",internalType:"bool",type:"bool"}]},{stateMutability:"view",type:"function",inputs:[{name:"",internalType:"address",type:"address"}],name:"balanceOf",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"view",type:"function",inputs:[],name:"decimals",outputs:[{name:"",internalType:"uint8",type:"uint8"}]},{stateMutability:"view",type:"function",inputs:[],name:"name",outputs:[{name:"",internalType:"string",type:"string"}]},{stateMutability:"view",type:"function",inputs:[{name:"",internalType:"address",type:"address"}],name:"nonces",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"owner",internalType:"address",type:"address"},{name:"spender",internalType:"address",type:"address"},{name:"value",internalType:"uint256",type:"uint256"},{name:"deadline",internalType:"uint256",type:"uint256"},{name:"v",internalType:"uint8",type:"uint8"},{name:"r",internalType:"bytes32",type:"bytes32"},{name:"s",internalType:"bytes32",type:"bytes32"}],name:"permit",outputs:[]},{stateMutability:"view",type:"function",inputs:[],name:"symbol",outputs:[{name:"",internalType:"string",type:"string"}]},{stateMutability:"view",type:"function",inputs:[],name:"totalSupply",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"to",internalType:"address",type:"address"},{name:"amount",internalType:"uint256",type:"uint256"}],name:"transfer",outputs:[{name:"",internalType:"bool",type:"bool"}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"from",internalType:"address",type:"address"},{name:"to",internalType:"address",type:"address"},{name:"amount",internalType:"uint256",type:"uint256"}],name:"transferFrom",outputs:[{name:"",internalType:"bool",type:"bool"}]}],$=[{type:"event",anonymous:!1,inputs:[{name:"owner",internalType:"address",type:"address",indexed:!0},{name:"spender",internalType:"address",type:"address",indexed:!0},{name:"id",internalType:"uint256",type:"uint256",indexed:!0}],name:"Approval"},{type:"event",anonymous:!1,inputs:[{name:"owner",internalType:"address",type:"address",indexed:!0},{name:"operator",internalType:"address",type:"address",indexed:!0},{name:"approved",internalType:"bool",type:"bool",indexed:!1}],name:"ApprovalForAll"},{type:"event",anonymous:!1,inputs:[{name:"from",internalType:"address",type:"address",indexed:!0},{name:"to",internalType:"address",type:"address",indexed:!0},{name:"id",internalType:"uint256",type:"uint256",indexed:!0}],name:"Transfer"},{stateMutability:"nonpayable",type:"function",inputs:[{name:"spender",internalType:"address",type:"address"},{name:"id",internalType:"uint256",type:"uint256"}],name:"approve",outputs:[]},{stateMutability:"view",type:"function",inputs:[{name:"owner",internalType:"address",type:"address"}],name:"balanceOf",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"view",type:"function",inputs:[{name:"",internalType:"uint256",type:"uint256"}],name:"getApproved",outputs:[{name:"",internalType:"address",type:"address"}]},{stateMutability:"view",type:"function",inputs:[{name:"",internalType:"address",type:"address"},{name:"",internalType:"address",type:"address"}],name:"isApprovedForAll",outputs:[{name:"",internalType:"bool",type:"bool"}]},{stateMutability:"view",type:"function",inputs:[],name:"name",outputs:[{name:"",internalType:"string",type:"string"}]},{stateMutability:"view",type:"function",inputs:[{name:"id",internalType:"uint256",type:"uint256"}],name:"ownerOf",outputs:[{name:"owner",internalType:"address",type:"address"}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"from",internalType:"address",type:"address"},{name:"to",internalType:"address",type:"address"},{name:"id",internalType:"uint256",type:"uint256"}],name:"safeTransferFrom",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"from",internalType:"address",type:"address"},{name:"to",internalType:"address",type:"address"},{name:"id",internalType:"uint256",type:"uint256"},{name:"data",internalType:"bytes",type:"bytes"}],name:"safeTransferFrom",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"operator",internalType:"address",type:"address"},{name:"approved",internalType:"bool",type:"bool"}],name:"setApprovalForAll",outputs:[]},{stateMutability:"view",type:"function",inputs:[{name:"interfaceId",internalType:"bytes4",type:"bytes4"}],name:"supportsInterface",outputs:[{name:"",internalType:"bool",type:"bool"}]},{stateMutability:"view",type:"function",inputs:[],name:"symbol",outputs:[{name:"",internalType:"string",type:"string"}]},{stateMutability:"view",type:"function",inputs:[{name:"id",internalType:"uint256",type:"uint256"}],name:"tokenURI",outputs:[{name:"",internalType:"string",type:"string"}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"from",internalType:"address",type:"address"},{name:"to",internalType:"address",type:"address"},{name:"id",internalType:"uint256",type:"uint256"}],name:"transferFrom",outputs:[]}];var se=[{stateMutability:"nonpayable",type:"constructor",inputs:[{name:"_multiSourceLoanAddress",internalType:"address",type:"address"},{name:"_marketplaceContracts",internalType:"address",type:"address"},{name:"_wethAddress",internalType:"address payable",type:"address"},{name:"_punkMarketAddress",internalType:"address payable",type:"address"},{name:"_wrappedPunkAddress",internalType:"address payable",type:"address"},{name:"_seaportAddress",internalType:"address payable",type:"address"}]},{type:"error",inputs:[],name:"AddressZeroError"},{type:"error",inputs:[],name:"CouldNotReturnEthError"},{type:"error",inputs:[],name:"InvalidAddressUpdateError"},{type:"error",inputs:[],name:"InvalidCallbackError"},{type:"error",inputs:[],name:"MarketplaceAddressNotWhitelisted"},{type:"error",inputs:[],name:"OnlyMultiSourceLoanError"},{type:"error",inputs:[],name:"OnlyWethSupportedError"},{type:"event",anonymous:!1,inputs:[{name:"_loanIds",internalType:"uint256[]",type:"uint256[]",indexed:!1}],name:"BNPLLoansStarted"},{type:"event",anonymous:!1,inputs:[{name:"_newAddress",internalType:"address",type:"address",indexed:!1}],name:"MultiSourceLoanPendingUpdate"},{type:"event",anonymous:!1,inputs:[{name:"_newAddress",internalType:"address",type:"address",indexed:!1}],name:"MultiSourceLoanUpdated"},{type:"event",anonymous:!1,inputs:[{name:"user",internalType:"address",type:"address",indexed:!0},{name:"newOwner",internalType:"address",type:"address",indexed:!0}],name:"OwnershipTransferred"},{type:"event",anonymous:!1,inputs:[{name:"_newAddress",internalType:"address",type:"address",indexed:!1}],name:"SeaportPendingUpdate"},{type:"event",anonymous:!1,inputs:[{name:"_newAddress",internalType:"address",type:"address",indexed:!1}],name:"SeaportUpdated"},{type:"event",anonymous:!1,inputs:[{name:"_loanIds",internalType:"uint256[]",type:"uint256[]",indexed:!1}],name:"SellAndRepayExecuted"},{stateMutability:"payable",type:"fallback"},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_loan",internalType:"struct IMultiSourceLoan.Loan",type:"tuple",components:[{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:[{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:"_executionData",internalType:"bytes",type:"bytes"}],name:"afterNFTTransfer",outputs:[{name:"",internalType:"bytes4",type:"bytes4"}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_loan",internalType:"struct IMultiSourceLoan.Loan",type:"tuple",components:[{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:[{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:"_fee",internalType:"uint256",type:"uint256"},{name:"_executionData",internalType:"bytes",type:"bytes"}],name:"afterPrincipalTransfer",outputs:[{name:"",internalType:"bytes4",type:"bytes4"}]},{stateMutability:"payable",type:"function",inputs:[{name:"_executionData",internalType:"bytes[]",type:"bytes[]"}],name:"buy",outputs:[{name:"",internalType:"uint256[]",type:"uint256[]"},{name:"",internalType:"struct IMultiSourceLoan.Loan[]",type:"tuple[]",components:[{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:[{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:[{name:"_newAddress",internalType:"address",type:"address"}],name:"finalUpdateMultiSourceLoanAddress",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_newAddress",internalType:"address",type:"address"}],name:"finalUpdateSeaportAddress",outputs:[]},{stateMutability:"view",type:"function",inputs:[],name:"getMultiSourceLoanAddress",outputs:[{name:"",internalType:"address",type:"address"}]},{stateMutability:"view",type:"function",inputs:[],name:"getSeaportAddress",outputs:[{name:"",internalType:"address",type:"address"}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"",internalType:"address",type:"address"},{name:"",internalType:"address",type:"address"},{name:"",internalType:"uint256",type:"uint256"},{name:"",internalType:"bytes",type:"bytes"}],name:"onERC721Received",outputs:[{name:"",internalType:"bytes4",type:"bytes4"}]},{stateMutability:"view",type:"function",inputs:[],name:"owner",outputs:[{name:"",internalType:"address",type:"address"}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_executionData",internalType:"bytes[]",type:"bytes[]"}],name:"sell",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"newOwner",internalType:"address",type:"address"}],name:"transferOwnership",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_newAddress",internalType:"address",type:"address"}],name:"updateMultiSourceLoanAddressFirst",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_newAddress",internalType:"address",type:"address"}],name:"updateSeaportAddressFirst",outputs:[]},{stateMutability:"payable",type:"receive"}];var B=[{stateMutability:"nonpayable",type:"constructor",inputs:[{name:"loanLiquidator",internalType:"address",type:"address"},{name:"protocolFee",internalType:"struct IBaseLoan.ProtocolFee",type:"tuple",components:[{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:[],name:"AddressZeroError"},{type:"error",inputs:[{name:"_lender",internalType:"address",type:"address"},{name:"_offerId",internalType:"uint256",type:"uint256"}],name:"CancelledOrExecutedOfferError"},{type:"error",inputs:[{name:"_lender",internalType:"address",type:"address"},{name:"_renegotiationId",internalType:"uint256",type:"uint256"}],name:"CancelledRenegotiationOfferError"},{type:"error",inputs:[],name:"CannotLiquidateError"},{type:"error",inputs:[],name:"CollectionNotWhitelistedError"},{type:"error",inputs:[],name:"CurrencyNotWhitelistedError"},{type:"error",inputs:[],name:"ECDSAInvalidSignature"},{type:"error",inputs:[{name:"length",internalType:"uint256",type:"uint256"}],name:"ECDSAInvalidSignatureLength"},{type:"error",inputs:[{name:"s",internalType:"bytes32",type:"bytes32"}],name:"ECDSAInvalidSignatureS"},{type:"error",inputs:[{name:"_expirationTime",internalType:"uint256",type:"uint256"}],name:"ExpiredOfferError"},{type:"error",inputs:[{name:"_expirationTime",internalType:"uint256",type:"uint256"}],name:"ExpiredRenegotiationOfferError"},{type:"error",inputs:[],name:"ExtensionNotAvailableError"},{type:"error",inputs:[{name:"_amount",internalType:"uint256",type:"uint256"},{name:"_principalAmount",internalType:"uint256",type:"uint256"}],name:"InvalidAmountError"},{type:"error",inputs:[],name:"InvalidBorrowerError"},{type:"error",inputs:[],name:"InvalidCallbackError"},{type:"error",inputs:[],name:"InvalidCollateralIdError"},{type:"error",inputs:[],name:"InvalidDurationError"},{type:"error",inputs:[],name:"InvalidLenderError"},{type:"error",inputs:[],name:"InvalidLiquidationError"},{type:"error",inputs:[{name:"_loanId",internalType:"uint256",type:"uint256"}],name:"InvalidLoanError"},{type:"error",inputs:[],name:"InvalidMethodError"},{type:"error",inputs:[{name:"_fraction",internalType:"uint256",type:"uint256"}],name:"InvalidProtocolFeeError"},{type:"error",inputs:[],name:"InvalidRenegotiationOfferError"},{type:"error",inputs:[],name:"InvalidSignatureError"},{type:"error",inputs:[],name:"InvalidValueError"},{type:"error",inputs:[],name:"LengthMismatchError"},{type:"error",inputs:[{name:"_liquidator",internalType:"address",type:"address"}],name:"LiquidatorOnlyError"},{type:"error",inputs:[],name:"LoanExpiredError"},{type:"error",inputs:[{name:"_expirationTime",internalType:"uint256",type:"uint256"}],name:"LoanNotDueError"},{type:"error",inputs:[{name:"_lender",internalType:"address",type:"address"},{name:"_newMinOfferId",internalType:"uint256",type:"uint256"},{name:"_minOfferId",internalType:"uint256",type:"uint256"}],name:"LowOfferIdError"},{type:"error",inputs:[{name:"_lender",internalType:"address",type:"address"},{name:"_newMinRenegotiationOfferId",internalType:"uint256",type:"uint256"},{name:"_minOfferId",internalType:"uint256",type:"uint256"}],name:"LowRenegotiationOfferIdError"},{type:"error",inputs:[],name:"MaxCapacityExceededError"},{type:"error",inputs:[{name:"minLockPeriod",internalType:"uint256",type:"uint256"}],name:"MinLockPeriodTooHighError"},{type:"error",inputs:[{name:"i",internalType:"uint256",type:"uint256"}],name:"MulticallFailed"},{type:"error",inputs:[],name:"NFTNotReturnedError"},{type:"error",inputs:[],name:"NotStrictlyImprovedError"},{type:"error",inputs:[],name:"OnlyBorrowerCallableError"},{type:"error",inputs:[],name:"OnlyLenderCallableError"},{type:"error",inputs:[],name:"OnlyLenderOrBorrowerCallableError"},{type:"error",inputs:[],name:"PartialOfferCannotChangeDurationError"},{type:"error",inputs:[],name:"PartialOfferCannotHaveFeeError"},{type:"error",inputs:[],name:"RefinanceFullError"},{type:"error",inputs:[{name:"minTimestamp",internalType:"uint256",type:"uint256"}],name:"SourceCannotBeRefinancedError"},{type:"error",inputs:[{name:"sourcePrincipal",internalType:"uint256",type:"uint256"},{name:"loanPrincipal",internalType:"uint256",type:"uint256"}],name:"TargetPrincipalTooLowError"},{type:"error",inputs:[{name:"_pendingProtocolFeeSetTime",internalType:"uint256",type:"uint256"}],name:"TooEarlyError"},{type:"error",inputs:[{name:"sources",internalType:"uint256",type:"uint256"}],name:"TooManySourcesError"},{type:"error",inputs:[],name:"ZeroDurationError"},{type:"error",inputs:[],name:"ZeroInterestError"},{type:"event",anonymous:!1,inputs:[{name:"lender",internalType:"address",type:"address",indexed:!1},{name:"minOfferId",internalType:"uint256",type:"uint256",indexed:!1}],name:"AllOffersCancelled"},{type:"event",anonymous:!1,inputs:[{name:"lender",internalType:"address",type:"address",indexed:!1},{name:"minRenegotiationId",internalType:"uint256",type:"uint256",indexed:!1}],name:"AllRenegotiationOffersCancelled"},{type:"event",anonymous:!1,inputs:[{name:"borrower",internalType:"address",type:"address",indexed:!1},{name:"offerId",internalType:"uint256",type:"uint256",indexed:!1}],name:"BorrowerOfferCancelled"},{type:"event",anonymous:!1,inputs:[{name:"newdelegateRegistry",internalType:"address",type:"address",indexed:!1}],name:"DelegateRegistryUpdated"},{type:"event",anonymous:!1,inputs:[{name:"loanId",internalType:"uint256",type:"uint256",indexed:!1},{name:"delegate",internalType:"address",type:"address",indexed:!1},{name:"value",internalType:"bool",type:"bool",indexed:!1}],name:"Delegated"},{type:"event",anonymous:!1,inputs:[{name:"newFlashActionContract",internalType:"address",type:"address",indexed:!1}],name:"FlashActionContractUpdated"},{type:"event",anonymous:!1,inputs:[{name:"loanId",internalType:"uint256",type:"uint256",indexed:!1},{name:"target",internalType:"address",type:"address",indexed:!1},{name:"data",internalType:"bytes",type:"bytes",indexed:!1}],name:"FlashActionExecuted"},{type:"event",anonymous:!1,inputs:[{name:"minimum",internalType:"struct IBaseLoan.ImprovementMinimum",type:"tuple",components:[{name:"principalAmount",internalType:"uint256",type:"uint256"},{name:"interest",internalType:"uint256",type:"uint256"},{name:"duration",internalType:"uint256",type:"uint256"}],indexed:!1}],name:"ImprovementMinimumUpdated"},{type:"event",anonymous:!1,inputs:[{name:"newDuration",internalType:"uint256",type:"uint256",indexed:!1}],name:"LiquidationAuctionDurationUpdated"},{type:"event",anonymous:!1,inputs:[{name:"liquidator",internalType:"address",type:"address",indexed:!1}],name:"LiquidationContractUpdated"},{type:"event",anonymous:!1,inputs:[{name:"loanId",internalType:"uint256",type:"uint256",indexed:!1},{name:"offerId",internalType:"uint256",type:"uint256",indexed:!1},{name:"loan",internalType:"struct IMultiSourceLoan.Loan",type:"tuple",components:[{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:[{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:!1},{name:"lender",internalType:"address",type:"address",indexed:!1},{name:"borrower",internalType:"address",type:"address",indexed:!1},{name:"fee",internalType:"uint256",type:"uint256",indexed:!1}],name:"LoanEmitted"},{type:"event",anonymous:!1,inputs:[{name:"oldLoanId",internalType:"uint256",type:"uint256",indexed:!1},{name:"newLoanId",internalType:"uint256",type:"uint256",indexed:!1},{name:"loan",internalType:"struct IMultiSourceLoan.Loan",type:"tuple",components:[{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:[{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:!1},{name:"_extension",internalType:"uint256",type:"uint256",indexed:!1}],name:"LoanExtended"},{type:"event",anonymous:!1,inputs:[{name:"loanId",internalType:"uint256",type:"uint256",indexed:!1}],name:"LoanForeclosed"},{type:"event",anonymous:!1,inputs:[{name:"loanId",internalType:"uint256",type:"uint256",indexed:!1}],name:"LoanLiquidated"},{type:"event",anonymous:!1,inputs:[{name:"renegotiationId",internalType:"uint256",type:"uint256",indexed:!1},{name:"oldLoanId",internalType:"uint256",type:"uint256",indexed:!1},{name:"newLoanId",internalType:"uint256",type:"uint256",indexed:!1},{name:"loan",internalType:"struct IMultiSourceLoan.Loan",type:"tuple",components:[{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:[{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:!1},{name:"fee",internalType:"uint256",type:"uint256",indexed:!1}],name:"LoanRefinanced"},{type:"event",anonymous:!1,inputs:[{name:"loanId",internalType:"uint256",type:"uint256",indexed:!1},{name:"totalRepayment",internalType:"uint256",type:"uint256",indexed:!1},{name:"fee",internalType:"uint256",type:"uint256",indexed:!1}],name:"LoanRepaid"},{type:"event",anonymous:!1,inputs:[{name:"loanId",internalType:"uint256",type:"uint256",indexed:!1},{name:"liquidator",internalType:"address",type:"address",indexed:!1}],name:"LoanSentToLiquidator"},{type:"event",anonymous:!1,inputs:[{name:"newMax",internalType:"uint256",type:"uint256",indexed:!1}],name:"MaxSourcesUpdated"},{type:"event",anonymous:!1,inputs:[{name:"minLockPeriod",internalType:"uint256",type:"uint256",indexed:!1}],name:"MinLockPeriodUpdated"},{type:"event",anonymous:!1,inputs:[{name:"lender",internalType:"address",type:"address",indexed:!1},{name:"offerId",internalType:"uint256",type:"uint256",indexed:!1}],name:"OfferCancelled"},{type:"event",anonymous:!1,inputs:[{name:"user",internalType:"address",type:"address",indexed:!0},{name:"newOwner",internalType:"address",type:"address",indexed:!0}],name:"OwnershipTransferred"},{type:"event",anonymous:!1,inputs:[{name:"fee",internalType:"struct IBaseLoan.ProtocolFee",type:"tuple",components:[{name:"recipient",internalType:"address",type:"address"},{name:"fraction",internalType:"uint256",type:"uint256"}],indexed:!1}],name:"ProtocolFeePendingUpdate"},{type:"event",anonymous:!1,inputs:[{name:"fee",internalType:"struct IBaseLoan.ProtocolFee",type:"tuple",components:[{name:"recipient",internalType:"address",type:"address"},{name:"fraction",internalType:"uint256",type:"uint256"}],indexed:!1}],name:"ProtocolFeeUpdated"},{type:"event",anonymous:!1,inputs:[{name:"lender",internalType:"address",type:"address",indexed:!1},{name:"renegotiationId",internalType:"uint256",type:"uint256",indexed:!1}],name:"RenegotiationOfferCancelled"},{type:"event",anonymous:!1,inputs:[{name:"delegate",internalType:"address",type:"address",indexed:!1},{name:"collection",internalType:"address",type:"address",indexed:!1},{name:"tokenId",internalType:"uint256",type:"uint256",indexed:!1}],name:"RevokeDelegate"},{type:"event",anonymous:!1,inputs:[{name:"contractAdded",internalType:"address",type:"address",indexed:!1},{name:"tax",internalType:"struct WithCallbacks.Taxes",type:"tuple",components:[{name:"buyTax",internalType:"uint128",type:"uint128"},{name:"sellTax",internalType:"uint128",type:"uint128"}],indexed:!1}],name:"WhitelistedCallbackContractAdded"},{type:"event",anonymous:!1,inputs:[{name:"contractRemoved",internalType:"address",type:"address",indexed:!1}],name:"WhitelistedCallbackContractRemoved"},{stateMutability:"view",type:"function",inputs:[],name:"DOMAIN_SEPARATOR",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}]},{stateMutability:"view",type:"function",inputs:[],name:"FEE_UPDATE_NOTICE",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"view",type:"function",inputs:[],name:"INITIAL_DOMAIN_SEPARATOR",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}]},{stateMutability:"view",type:"function",inputs:[],name:"MAX_PROTOCOL_FEE",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"view",type:"function",inputs:[],name:"MIN_AUCTION_DURATION",outputs:[{name:"",internalType:"uint48",type:"uint48"}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_contract",internalType:"address",type:"address"},{name:"_tax",internalType:"struct WithCallbacks.Taxes",type:"tuple",components:[{name:"buyTax",internalType:"uint128",type:"uint128"},{name:"sellTax",internalType:"uint128",type:"uint128"}]}],name:"addWhitelistedCallbackContract",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_minOfferId",internalType:"uint256",type:"uint256"}],name:"cancelAllOffers",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_minRenegotiationId",internalType:"uint256",type:"uint256"}],name:"cancelAllRenegotiationOffers",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_offerId",internalType:"uint256",type:"uint256"}],name:"cancelOffer",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_offerIds",internalType:"uint256[]",type:"uint256[]"}],name:"cancelOffers",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_renegotiationId",internalType:"uint256",type:"uint256"}],name:"cancelRenegotiationOffer",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_renegotiationIds",internalType:"uint256[]",type:"uint256[]"}],name:"cancelRenegotiationOffers",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_loanId",internalType:"uint256",type:"uint256"},{name:"loan",internalType:"struct IMultiSourceLoan.Loan",type:"tuple",components:[{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:[{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:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_executionData",internalType:"struct IMultiSourceLoan.LoanExecutionData",type:"tuple",components:[{name:"executionData",internalType:"struct IBaseLoan.ExecutionData",type:"tuple",components:[{name:"offer",internalType:"struct IBaseLoan.LoanOffer",type:"tuple",components:[{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:[{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:[{name:"",internalType:"uint256",type:"uint256"},{name:"",internalType:"struct IMultiSourceLoan.Loan",type:"tuple",components:[{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:[{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:[{name:"_loanId",internalType:"uint256",type:"uint256"},{name:"_loan",internalType:"struct IMultiSourceLoan.Loan",type:"tuple",components:[{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:[{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:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_loanId",internalType:"uint256",type:"uint256"},{name:"_loan",internalType:"struct IMultiSourceLoan.Loan",type:"tuple",components:[{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:[{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:[{name:"",internalType:"uint256",type:"uint256"},{name:"",internalType:"struct IMultiSourceLoan.Loan",type:"tuple",components:[{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:[{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:[],name:"getCollectionManager",outputs:[{name:"",internalType:"address",type:"address"}]},{stateMutability:"view",type:"function",inputs:[],name:"getCurrencyManager",outputs:[{name:"",internalType:"address",type:"address"}]},{stateMutability:"view",type:"function",inputs:[],name:"getDelegateRegistry",outputs:[{name:"",internalType:"address",type:"address"}]},{stateMutability:"view",type:"function",inputs:[],name:"getFlashActionContract",outputs:[{name:"",internalType:"address",type:"address"}]},{stateMutability:"view",type:"function",inputs:[],name:"getImprovementMinimum",outputs:[{name:"",internalType:"struct IBaseLoan.ImprovementMinimum",type:"tuple",components:[{name:"principalAmount",internalType:"uint256",type:"uint256"},{name:"interest",internalType:"uint256",type:"uint256"},{name:"duration",internalType:"uint256",type:"uint256"}]}]},{stateMutability:"view",type:"function",inputs:[],name:"getLiquidationAuctionDuration",outputs:[{name:"",internalType:"uint48",type:"uint48"}]},{stateMutability:"view",type:"function",inputs:[],name:"getLiquidator",outputs:[{name:"",internalType:"address",type:"address"}]},{stateMutability:"view",type:"function",inputs:[{name:"_loanId",internalType:"uint256",type:"uint256"}],name:"getLoanHash",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}]},{stateMutability:"view",type:"function",inputs:[],name:"getMaxSources",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"view",type:"function",inputs:[],name:"getMinLockPeriod",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"view",type:"function",inputs:[{name:"_loanPrincipal",internalType:"uint256",type:"uint256"}],name:"getMinSourcePrincipal",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"view",type:"function",inputs:[],name:"getPendingProtocolFee",outputs:[{name:"",internalType:"struct IBaseLoan.ProtocolFee",type:"tuple",components:[{name:"recipient",internalType:"address",type:"address"},{name:"fraction",internalType:"uint256",type:"uint256"}]}]},{stateMutability:"view",type:"function",inputs:[],name:"getPendingProtocolFeeSetTime",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"view",type:"function",inputs:[],name:"getProtocolFee",outputs:[{name:"",internalType:"struct IBaseLoan.ProtocolFee",type:"tuple",components:[{name:"recipient",internalType:"address",type:"address"},{name:"fraction",internalType:"uint256",type:"uint256"}]}]},{stateMutability:"view",type:"function",inputs:[],name:"getTotalLoansIssued",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"view",type:"function",inputs:[{name:"_lender",internalType:"address",type:"address"},{name:"_offerId",internalType:"uint256",type:"uint256"}],name:"getUsedCapacity",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"view",type:"function",inputs:[{name:"",internalType:"address",type:"address"},{name:"",internalType:"uint256",type:"uint256"}],name:"isBorrowerOfferCancelled",outputs:[{name:"",internalType:"bool",type:"bool"}]},{stateMutability:"view",type:"function",inputs:[{name:"",internalType:"address",type:"address"},{name:"",internalType:"uint256",type:"uint256"}],name:"isOfferCancelled",outputs:[{name:"",internalType:"bool",type:"bool"}]},{stateMutability:"view",type:"function",inputs:[{name:"",internalType:"address",type:"address"},{name:"",internalType:"uint256",type:"uint256"}],name:"isRenegotiationOfferCancelled",outputs:[{name:"",internalType:"bool",type:"bool"}]},{stateMutability:"view",type:"function",inputs:[{name:"_contract",internalType:"address",type:"address"}],name:"isWhitelistedCallbackContract",outputs:[{name:"",internalType:"bool",type:"bool"}]},{stateMutability:"view",type:"function",inputs:[{name:"",internalType:"address",type:"address"}],name:"lenderMinRenegotiationOfferId",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_loanId",internalType:"uint256",type:"uint256"},{name:"_loan",internalType:"struct IMultiSourceLoan.Loan",type:"tuple",components:[{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:[{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:[{name:"",internalType:"bytes",type:"bytes"}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_loanId",internalType:"uint256",type:"uint256"},{name:"_loan",internalType:"struct IMultiSourceLoan.Loan",type:"tuple",components:[{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:[{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:[]},{stateMutability:"view",type:"function",inputs:[{name:"",internalType:"address",type:"address"}],name:"minOfferId",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"payable",type:"function",inputs:[{name:"data",internalType:"bytes[]",type:"bytes[]"}],name:"multicall",outputs:[{name:"results",internalType:"bytes[]",type:"bytes[]"}]},{stateMutability:"view",type:"function",inputs:[],name:"name",outputs:[{name:"",internalType:"string",type:"string"}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"",internalType:"address",type:"address"},{name:"",internalType:"address",type:"address"},{name:"",internalType:"uint256",type:"uint256"},{name:"",internalType:"bytes",type:"bytes"}],name:"onERC721Received",outputs:[{name:"",internalType:"bytes4",type:"bytes4"}]},{stateMutability:"view",type:"function",inputs:[],name:"owner",outputs:[{name:"",internalType:"address",type:"address"}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_renegotiationOffer",internalType:"struct IMultiSourceLoan.RenegotiationOffer",type:"tuple",components:[{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:[{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:[{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:[{name:"",internalType:"uint256",type:"uint256"},{name:"",internalType:"struct IMultiSourceLoan.Loan",type:"tuple",components:[{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:[{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:[{name:"_renegotiationOffer",internalType:"struct IMultiSourceLoan.RenegotiationOffer",type:"tuple",components:[{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:[{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:[{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:[{name:"",internalType:"uint256",type:"uint256"},{name:"",internalType:"struct IMultiSourceLoan.Loan",type:"tuple",components:[{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:[{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:[{name:"_contract",internalType:"address",type:"address"}],name:"removeWhitelistedCallbackContract",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_repaymentData",internalType:"struct IMultiSourceLoan.LoanRepaymentData",type:"tuple",components:[{name:"data",internalType:"struct IMultiSourceLoan.SignableRepaymentData",type:"tuple",components:[{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:[{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:[{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:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_delegate",internalType:"address",type:"address"},{name:"_collection",internalType:"address",type:"address"},{name:"_tokenId",internalType:"uint256",type:"uint256"}],name:"revokeDelegate",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_newDelegateRegistry",internalType:"address",type:"address"}],name:"setDelegateRegistry",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_newFlashActionContract",internalType:"address",type:"address"}],name:"setFlashActionContract",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"__maxSources",internalType:"uint256",type:"uint256"}],name:"setMaxSources",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"__minLockPeriod",internalType:"uint256",type:"uint256"}],name:"setMinLockPeriod",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[],name:"setProtocolFee",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"newOwner",internalType:"address",type:"address"}],name:"transferOwnership",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_newMinimum",internalType:"struct IBaseLoan.ImprovementMinimum",type:"tuple",components:[{name:"principalAmount",internalType:"uint256",type:"uint256"},{name:"interest",internalType:"uint256",type:"uint256"},{name:"duration",internalType:"uint256",type:"uint256"}]}],name:"updateImprovementMinimum",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_newDuration",internalType:"uint48",type:"uint48"}],name:"updateLiquidationAuctionDuration",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"loanLiquidator",internalType:"contract ILoanLiquidator",type:"address"}],name:"updateLiquidationContract",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_newProtocolFee",internalType:"struct IBaseLoan.ProtocolFee",type:"tuple",components:[{name:"recipient",internalType:"address",type:"address"},{name:"fraction",internalType:"uint256",type:"uint256"}]}],name:"updateProtocolFee",outputs:[]}];import{encodeAbiParameters as De}from"viem";import{zeroAddress as we}from"viem";import{goerli as _e}from"viem/chains";var Be=31337,oe="0xb6dfcbc1661d0c0bced9591d06e964f97d41a35984704ffe61f8e062e43919c8",T=l(s=>s?.id===Be?{MultiSourceLoanV4Address:"0x5FC8d32690cc91D4c39d9d3abcBD16989F875707",MultiSourceLoanV5Address:"0x68B1D87F95878fE05B998F19b66F4baba5De1aed",AuctionLoanLiquidatorV4Address:"0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9",AuctionLoanLiquidatorV5Address:"0x9A9f2CCfdE556A7E9Ff0848998Aa4a0CFD8863AE",LeverageAddress:"0xBe6Eb4ACB499f992ba2DaC7CAD59d56DA9e0D823",SeaportAddress:"0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",CryptoPunksAddress:"0xb47e3cd837ddf8e4c57f05d70ab865de6e193bbb"}:s?.id===_e.id?{MultiSourceLoanV4Address:"0x60C20627429668F267b5cF55c6605c665C69887D",MultiSourceLoanV5Address:"0xTODO",AuctionLoanLiquidatorV4Address:"0x29C73faa2f9180ea5a7B0bEC243ebc63a5B4f280",AuctionLoanLiquidatorV5Address:"0xTODO",LeverageAddress:"0xTODO",SeaportAddress:"0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",CryptoPunksAddress:"0xb47e3cd837ddf8e4c57f05d70ab865de6e193bbb"}:{MultiSourceLoanV4Address:"0xCa5a494Ca20483e21ec1E41FE1D9461Da77595Bd",MultiSourceLoanV5Address:"0x478f6F994C6fb3cf3e444a489b3AD9edB8cCaE16",AuctionLoanLiquidatorV4Address:"0x237e4421C742d843Fdd96D22294D338507e17091",AuctionLoanLiquidatorV5Address:"0x97d34635b605c2f1630d6b4c6c5d222b8a2ca47d",LeverageAddress:"0x87Ce6e8124fFd68fa721FcC7f35fdA14A11E233e",SeaportAddress:"0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",CryptoPunksAddress:"0xb47e3cd837ddf8e4c57f05d70ab865de6e193bbb"},"getContracts"),le=l(()=>({reservoirApiKey:"5b472f8c-b471-531a-a450-56e428e5a00a",infuraApiKey:"9b7006cb0b0b42f1813ae9418741fbb5"}),"getApiKeys"),I=l(()=>({WETH_ADDRESS:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",ETH_ADDRESS:we,USDC_ADDRESS:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"}),"getCurrencies");var pe=[{stateMutability:"nonpayable",type:"constructor",inputs:[{name:"currencyManager",internalType:"address",type:"address"},{name:"collectionManager",internalType:"address",type:"address"},{name:"triggerFee",internalType:"uint256",type:"uint256"}]},{type:"error",inputs:[],name:"AuctionAlreadyInProgressError"},{type:"error",inputs:[{name:"_contract",internalType:"address",type:"address"},{name:"_tokenId",internalType:"uint256",type:"uint256"}],name:"AuctionNotExistsError"},{type:"error",inputs:[{name:"_expiration",internalType:"uint96",type:"uint96"}],name:"AuctionNotOverError"},{type:"error",inputs:[{name:"_expiration",internalType:"uint96",type:"uint96"}],name:"AuctionOverError"},{type:"error",inputs:[],name:"CollectionNotWhitelistedError"},{type:"error",inputs:[],name:"CurrencyNotWhitelistedError"},{type:"error",inputs:[{name:"triggerFee",internalType:"uint256",type:"uint256"}],name:"InvalidTriggerFee"},{type:"error",inputs:[{name:"_loan",internalType:"address",type:"address"}],name:"LoanNotAcceptedError"},{type:"error",inputs:[{name:"_minBid",internalType:"uint256",type:"uint256"}],name:"MinBidError"},{type:"error",inputs:[{name:"_owner",internalType:"address",type:"address"}],name:"NFTNotOwnedError"},{type:"error",inputs:[],name:"NoBidsError"},{type:"error",inputs:[],name:"ZeroAddressError"},{type:"event",anonymous:!1,inputs:[{name:"loanContract",internalType:"address",type:"address",indexed:!1},{name:"loanId",internalType:"uint256",type:"uint256",indexed:!1},{name:"auctionContract",internalType:"address",type:"address",indexed:!1},{name:"tokenId",internalType:"uint256",type:"uint256",indexed:!1},{name:"asset",internalType:"address",type:"address",indexed:!1},{name:"highestBid",internalType:"uint256",type:"uint256",indexed:!1},{name:"settler",internalType:"address",type:"address",indexed:!1},{name:"triggerFee",internalType:"uint256",type:"uint256",indexed:!1}],name:"AuctionSettled"},{type:"event",anonymous:!1,inputs:[{name:"auctionContract",internalType:"address",type:"address",indexed:!1},{name:"tokenId",internalType:"uint256",type:"uint256",indexed:!1},{name:"newBidder",internalType:"address",type:"address",indexed:!1},{name:"bid",internalType:"uint256",type:"uint256",indexed:!1},{name:"loanAddress",internalType:"address",type:"address",indexed:!1},{name:"loanId",internalType:"uint256",type:"uint256",indexed:!1}],name:"BidPlaced"},{type:"event",anonymous:!1,inputs:[{name:"loan",internalType:"address",type:"address",indexed:!1}],name:"LoanContractAdded"},{type:"event",anonymous:!1,inputs:[{name:"loan",internalType:"address",type:"address",indexed:!1}],name:"LoanContractRemoved"},{type:"event",anonymous:!1,inputs:[{name:"loanAddress",internalType:"address",type:"address",indexed:!1},{name:"loanId",internalType:"uint256",type:"uint256",indexed:!1},{name:"duration",internalType:"uint96",type:"uint96",indexed:!1},{name:"asset",internalType:"address",type:"address",indexed:!1}],name:"LoanLiquidationStarted"},{type:"event",anonymous:!1,inputs:[{name:"user",internalType:"address",type:"address",indexed:!0},{name:"newOwner",internalType:"address",type:"address",indexed:!0}],name:"OwnershipTransferred"},{type:"event",anonymous:!1,inputs:[{name:"triggerFee",internalType:"uint256",type:"uint256",indexed:!1}],name:"TriggerFeeUpdated"},{stateMutability:"view",type:"function",inputs:[],name:"MAX_TRIGGER_FEE",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"view",type:"function",inputs:[],name:"MIN_INCREMENT_BPS",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_loanContract",internalType:"address",type:"address"}],name:"addLoanContract",outputs:[]},{stateMutability:"view",type:"function",inputs:[{name:"_contract",internalType:"address",type:"address"},{name:"_tokenId",internalType:"uint256",type:"uint256"}],name:"getAuction",outputs:[{name:"",internalType:"struct AuctionLoanLiquidator.Auction",type:"tuple",components:[{name:"loanAddress",internalType:"address",type:"address"},{name:"loanId",internalType:"uint256",type:"uint256"},{name:"highestBid",internalType:"uint256",type:"uint256"},{name:"highestBidder",internalType:"address",type:"address"},{name:"duration",internalType:"uint96",type:"uint96"},{name:"asset",internalType:"address",type:"address"},{name:"startTime",internalType:"uint96",type:"uint96"},{name:"originator",internalType:"address",type:"address"},{name:"lastBidTime",internalType:"uint96",type:"uint96"}]}]},{stateMutability:"view",type:"function",inputs:[],name:"getTriggerFee",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"view",type:"function",inputs:[],name:"getValidLoanContracts",outputs:[{name:"",internalType:"address[]",type:"address[]"}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_loanId",internalType:"uint256",type:"uint256"},{name:"_contract",internalType:"address",type:"address"},{name:"_tokenId",internalType:"uint256",type:"uint256"},{name:"_asset",internalType:"address",type:"address"},{name:"_duration",internalType:"uint96",type:"uint96"},{name:"_originator",internalType:"address",type:"address"}],name:"liquidateLoan",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"",internalType:"address",type:"address"},{name:"",internalType:"address",type:"address"},{name:"",internalType:"uint256",type:"uint256"},{name:"",internalType:"bytes",type:"bytes"}],name:"onERC721Received",outputs:[{name:"",internalType:"bytes4",type:"bytes4"}]},{stateMutability:"view",type:"function",inputs:[],name:"owner",outputs:[{name:"",internalType:"address",type:"address"}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_contract",internalType:"address",type:"address"},{name:"_tokenId",internalType:"uint256",type:"uint256"},{name:"_bid",internalType:"uint256",type:"uint256"}],name:"placeBid",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_loanContract",internalType:"address",type:"address"}],name:"removeLoanContract",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_contract",internalType:"address",type:"address"},{name:"_tokenId",internalType:"uint256",type:"uint256"},{name:"_loan",internalType:"bytes",type:"bytes"}],name:"settleAuction",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"newOwner",internalType:"address",type:"address"}],name:"transferOwnership",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"triggerFee",internalType:"uint256",type:"uint256"}],name:"updateTriggerFee",outputs:[]}];var de=[{stateMutability:"nonpayable",type:"constructor",inputs:[{name:"loanLiquidator",internalType:"address",type:"address"},{name:"protocolFee",internalType:"struct IBaseLoan.ProtocolFee",type:"tuple",components:[{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:"uint8",type:"uint8"}]},{type:"error",inputs:[],name:"AddressZeroError"},{type:"error",inputs:[{name:"_lender",internalType:"address",type:"address"},{name:"_offerId",internalType:"uint256",type:"uint256"}],name:"CancelledOrExecutedOfferError"},{type:"error",inputs:[{name:"_lender",internalType:"address",type:"address"},{name:"_offerId",internalType:"uint256",type:"uint256"}],name:"CancelledRenegotiationOffer"},{type:"error",inputs:[{name:"_lender",internalType:"address",type:"address"},{name:"_renegotiationId",internalType:"uint256",type:"uint256"}],name:"CancelledRenegotiationOfferError"},{type:"error",inputs:[],name:"CannotLiquidateError"},{type:"error",inputs:[],name:"CollectionNotWhitelistedError"},{type:"error",inputs:[],name:"CurrencyNotWhitelistedError"},{type:"error",inputs:[],name:"ExpiredLoanError"},{type:"error",inputs:[{name:"_expirationTime",internalType:"uint256",type:"uint256"}],name:"ExpiredOfferError"},{type:"error",inputs:[{name:"_expirationTime",internalType:"uint256",type:"uint256"}],name:"ExpiredRenegotiationOfferError"},{type:"error",inputs:[],name:"InvalidBorrowerError"},{type:"error",inputs:[],name:"InvalidCallbackError"},{type:"error",inputs:[],name:"InvalidCollateralIdError"},{type:"error",inputs:[],name:"InvalidLiquidationError"},{type:"error",inputs:[{name:"_loanId",internalType:"uint256",type:"uint256"}],name:"InvalidLoanError"},{type:"error",inputs:[{name:"_fraction",internalType:"uint256",type:"uint256"}],name:"InvalidProtocolFeeError"},{type:"error",inputs:[],name:"InvalidRenegotiationOfferError"},{type:"error",inputs:[],name:"InvalidSignatureError"},{type:"error",inputs:[],name:"InvalidSignerError"},{type:"error",inputs:[],name:"LengthMismatchError"},{type:"error",inputs:[{name:"_liquidator",internalType:"address",type:"address"}],name:"LiquidatorOnlyError"},{type:"error",inputs:[],name:"LoanExpiredError"},{type:"error",inputs:[{name:"_expirationTime",internalType:"uint256",type:"uint256"}],name:"LoanNotDueError"},{type:"error",inputs:[{name:"_loanId",internalType:"uint256",type:"uint256"}],name:"LoanNotFoundError"},{type:"error",inputs:[{name:"_lender",internalType:"address",type:"address"},{name:"_newMinOfferId",internalType:"uint256",type:"uint256"},{name:"_minOfferId",internalType:"uint256",type:"uint256"}],name:"LowOfferIdError"},{type:"error",inputs:[{name:"_lender",internalType:"address",type:"address"},{name:"_newMinRenegotiationOfferId",internalType:"uint256",type:"uint256"},{name:"_minOfferId",internalType:"uint256",type:"uint256"}],name:"LowRenegotiationOfferIdError"},{type:"error",inputs:[],name:"MaxCapacityExceededError"},{type:"error",inputs:[{name:"_id",internalType:"uint256",type:"uint256"}],name:"NotMintedError"},{type:"error",inputs:[],name:"NotStrictlyImprovedError"},{type:"error",inputs:[],name:"OnlyBorrowerCallableError"},{type:"error",inputs:[],name:"OnlyLenderOrSignerCallableError"},{type:"error",inputs:[],name:"PartialOfferCannotChangeDurationError"},{type:"error",inputs:[],name:"PartialOfferCannotHaveFeeError"},{type:"error",inputs:[],name:"RefinanceFullError"},{type:"error",inputs:[],name:"RepaymentError"},{type:"error",inputs:[{name:"sourcePrincipal",internalType:"uint256",type:"uint256"},{name:"loanPrincipal",internalType:"uint256",type:"uint256"}],name:"TargetPrincipalTooLowError"},{type:"error",inputs:[{name:"_pendingProtocolFeeSetTime",internalType:"uint256",type:"uint256"}],name:"TooEarlyError"},{type:"error",inputs:[{name:"sources",internalType:"uint8",type:"uint8"}],name:"TooManySourcesError"},{type:"error",inputs:[],name:"Unauthorized"},{type:"error",inputs:[{name:"_authorized",internalType:"address",type:"address"}],name:"UnauthorizedError"},{type:"error",inputs:[],name:"ZeroAddressError"},{type:"error",inputs:[],name:"ZeroDurationError"},{type:"error",inputs:[],name:"ZeroInterestError"},{type:"event",anonymous:!1,inputs:[{name:"lender",internalType:"address",type:"address",indexed:!1},{name:"minOfferId",internalType:"uint256",type:"uint256",indexed:!1}],name:"AllOffersCancelled"},{type:"event",anonymous:!1,inputs:[{name:"lender",internalType:"address",type:"address",indexed:!1},{name:"minRenegotiationId",internalType:"uint256",type:"uint256",indexed:!1}],name:"AllRenegotiationOffersCancelled"},{type:"event",anonymous:!1,inputs:[{name:"lender",internalType:"address",type:"address",indexed:!1},{name:"signer",internalType:"address",type:"address",indexed:!1}],name:"ApprovedSigner"},{type:"event",anonymous:!1,inputs:[{name:"minimum",internalType:"struct IBaseLoan.ImprovementMinimum",type:"tuple",components:[{name:"principalAmount",internalType:"uint256",type:"uint256"},{name:"interest",internalType:"uint256",type:"uint256"},{name:"duration",internalType:"uint256",type:"uint256"}],indexed:!1}],name:"ImprovementMinimumUpdated"},{type:"event",anonymous:!1,inputs:[{name:"newDuration",internalType:"uint256",type:"uint256",indexed:!1}],name:"LiquidationAuctionDurationUpdated"},{type:"event",anonymous:!1,inputs:[{name:"liquidator",internalType:"address",type:"address",indexed:!1}],name:"LiquidationContractUpdated"},{type:"event",anonymous:!1,inputs:[{name:"loanId",internalType:"uint256",type:"uint256",indexed:!1},{name:"offerId",internalType:"uint256",type:"uint256",indexed:!1},{name:"loan",internalType:"struct IMultiSourceLoan.Loan",type:"tuple",components:[{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:[{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:!1},{name:"fee",internalType:"uint256",type:"uint256",indexed:!1}],name:"LoanEmitted"},{type:"event",anonymous:!1,inputs:[{name:"loanId",internalType:"uint256",type:"uint256",indexed:!1}],name:"LoanForeclosed"},{type:"event",anonymous:!1,inputs:[{name:"loanId",internalType:"uint256",type:"uint256",indexed:!1},{name:"repayment",internalType:"uint256",type:"uint256",indexed:!1}],name:"LoanLiquidated"},{type:"event",anonymous:!1,inputs:[{name:"renegotiationId",internalType:"uint256",type:"uint256",indexed:!1},{name:"oldLoanId",internalType:"uint256",type:"uint256",indexed:!1},{name:"newLoanId",internalType:"uint256",type:"uint256",indexed:!1},{name:"loan",internalType:"struct IMultiSourceLoan.Loan",type:"tuple",components:[{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:[{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:!1},{name:"fee",internalType:"uint256",type:"uint256",indexed:!1}],name:"LoanRefinanced"},{type:"event",anonymous:!1,inputs:[{name:"loanId",internalType:"uint256",type:"uint256",indexed:!1},{name:"totalRepayment",internalType:"uint256",type:"uint256",indexed:!1},{name:"fee",internalType:"uint256",type:"uint256",indexed:!1}],name:"LoanRepaid"},{type:"event",anonymous:!1,inputs:[{name:"loanId",internalType:"uint256",type:"uint256",indexed:!1},{name:"liquidator",internalType:"address",type:"address",indexed:!1}],name:"LoanSentToLiquidator"},{type:"event",anonymous:!1,inputs:[{name:"newMax",internalType:"uint8",type:"uint8",indexed:!1}],name:"MaxSourcesUpdated"},{type:"event",anonymous:!1,inputs:[{name:"lender",internalType:"address",type:"address",indexed:!1},{name:"offerId",internalType:"uint256",type:"uint256",indexed:!1}],name:"OfferCancelled"},{type:"event",anonymous:!1,inputs:[{name:"user",internalType:"address",type:"address",indexed:!0},{name:"newOwner",internalType:"address",type:"address",indexed:!0}],name:"OwnershipTransferred"},{type:"event",anonymous:!1,inputs:[{name:"fee",internalType:"struct IBaseLoan.ProtocolFee",type:"tuple",components:[{name:"recipient",internalType:"address",type:"address"},{name:"fraction",internalType:"uint256",type:"uint256"}],indexed:!1}],name:"ProtocolFeePendingUpdate"},{type:"event",anonymous:!1,inputs:[{name:"fee",internalType:"struct IBaseLoan.ProtocolFee",type:"tuple",components:[{name:"recipient",internalType:"address",type:"address"},{name:"fraction",internalType:"uint256",type:"uint256"}],indexed:!1}],name:"ProtocolFeeUpdated"},{type:"event",anonymous:!1,inputs:[{name:"lender",internalType:"address",type:"address",indexed:!1},{name:"renegotiationId",internalType:"uint256",type:"uint256",indexed:!1}],name:"RenegotiationOfferCancelled"},{type:"event",anonymous:!1,inputs:[{name:"contract_added",internalType:"address",type:"address",indexed:!1}],name:"WhitelistedCallbackContractAdded"},{type:"event",anonymous:!1,inputs:[{name:"contract_removed",internalType:"address",type:"address",indexed:!1}],name:"WhitelistedCallbackContractRemoved"},{stateMutability:"view",type:"function",inputs:[],name:"DOMAIN_SEPARATOR",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}]},{stateMutability:"view",type:"function",inputs:[],name:"FEE_UPDATE_NOTICE",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"view",type:"function",inputs:[],name:"INITIAL_DOMAIN_SEPARATOR",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}]},{stateMutability:"view",type:"function",inputs:[],name:"MAX_PROTOCOL_FEE",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_contract",internalType:"address",type:"address"}],name:"addWhitelistedCallbackContract",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_signer",internalType:"address",type:"address"}],name:"approveSigner",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_lender",internalType:"address",type:"address"},{name:"_minOfferId",internalType:"uint256",type:"uint256"}],name:"cancelAllOffers",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_lender",internalType:"address",type:"address"},{name:"_minRenegotiationId",internalType:"uint256",type:"uint256"}],name:"cancelAllRenegotiationOffers",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_lender",internalType:"address",type:"address"},{name:"_offerId",internalType:"uint256",type:"uint256"}],name:"cancelOffer",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_lender",internalType:"address",type:"address"},{name:"_offerIds",internalType:"uint256[]",type:"uint256[]"}],name:"cancelOffers",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_lender",internalType:"address",type:"address"},{name:"_renegotiationId",internalType:"uint256",type:"uint256"}],name:"cancelRenegotiationOffer",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_lender",internalType:"address",type:"address"},{name:"_renegotiationIds",internalType:"uint256[]",type:"uint256[]"}],name:"cancelRenegotiationOffers",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_loanOffer",internalType:"struct IBaseLoan.LoanOffer",type:"tuple",components:[{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:"signer",internalType:"address",type:"address"},{name:"requiresLiquidation",internalType:"bool",type:"bool"},{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:[{name:"validator",internalType:"address",type:"address"},{name:"arguments",internalType:"bytes",type:"bytes"}]}]},{name:"_tokenId",internalType:"uint256",type:"uint256"},{name:"_lenderOfferSignature",internalType:"bytes",type:"bytes"},{name:"_withCallback",internalType:"bool",type:"bool"}],name:"emitLoan",outputs:[{name:"",internalType:"uint256",type:"uint256"},{name:"",internalType:"struct IMultiSourceLoan.Loan",type:"tuple",components:[{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:[{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:[{name:"",internalType:"address",type:"address"}],name:"getApprovedSigner",outputs:[{name:"",internalType:"address",type:"address"}]},{stateMutability:"view",type:"function",inputs:[],name:"getCollectionManager",outputs:[{name:"",internalType:"address",type:"address"}]},{stateMutability:"view",type:"function",inputs:[],name:"getCurrencyManager",outputs:[{name:"",internalType:"address",type:"address"}]},{stateMutability:"view",type:"function",inputs:[],name:"getImprovementMinimum",outputs:[{name:"",internalType:"struct IBaseLoan.ImprovementMinimum",type:"tuple",components:[{name:"principalAmount",internalType:"uint256",type:"uint256"},{name:"interest",internalType:"uint256",type:"uint256"},{name:"duration",internalType:"uint256",type:"uint256"}]}]},{stateMutability:"view",type:"function",inputs:[],name:"getLiquidationAuctionDuration",outputs:[{name:"",internalType:"uint48",type:"uint48"}]},{stateMutability:"view",type:"function",inputs:[],name:"getLiquidator",outputs:[{name:"",internalType:"address",type:"address"}]},{stateMutability:"view",type:"function",inputs:[{name:"_loanId",internalType:"uint256",type:"uint256"}],name:"getLoanHash",outputs:[{name:"",internalType:"bytes32",type:"bytes32"}]},{stateMutability:"view",type:"function",inputs:[],name:"getMaxSources",outputs:[{name:"",internalType:"uint8",type:"uint8"}]},{stateMutability:"view",type:"function",inputs:[{name:"_loanPrincipal",internalType:"uint256",type:"uint256"}],name:"getMinSourcePrincipal",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"view",type:"function",inputs:[],name:"getPendingProtocolFee",outputs:[{name:"",internalType:"struct IBaseLoan.ProtocolFee",type:"tuple",components:[{name:"recipient",internalType:"address",type:"address"},{name:"fraction",internalType:"uint256",type:"uint256"}]}]},{stateMutability:"view",type:"function",inputs:[],name:"getPendingProtocolFeeSetTime",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"view",type:"function",inputs:[],name:"getProtocolFee",outputs:[{name:"",internalType:"struct IBaseLoan.ProtocolFee",type:"tuple",components:[{name:"recipient",internalType:"address",type:"address"},{name:"fraction",internalType:"uint256",type:"uint256"}]}]},{stateMutability:"view",type:"function",inputs:[],name:"getTotalLoansIssued",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"view",type:"function",inputs:[{name:"_lender",internalType:"address",type:"address"},{name:"_offerId",internalType:"uint256",type:"uint256"}],name:"getUsedCapacity",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"view",type:"function",inputs:[{name:"",internalType:"address",type:"address"},{name:"",internalType:"uint256",type:"uint256"}],name:"isOfferCancelled",outputs:[{name:"",internalType:"bool",type:"bool"}]},{stateMutability:"view",type:"function",inputs:[{name:"",internalType:"address",type:"address"},{name:"",internalType:"uint256",type:"uint256"}],name:"isRenegotiationOfferCancelled",outputs:[{name:"",internalType:"bool",type:"bool"}]},{stateMutability:"view",type:"function",inputs:[{name:"_contract",internalType:"address",type:"address"}],name:"isWhitelistedCallbackContract",outputs:[{name:"",internalType:"bool",type:"bool"}]},{stateMutability:"view",type:"function",inputs:[{name:"",internalType:"address",type:"address"}],name:"lenderMinOfferId",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"view",type:"function",inputs:[{name:"",internalType:"address",type:"address"}],name:"lenderMinRenegotiationOfferId",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_loanId",internalType:"uint256",type:"uint256"},{name:"_loan",internalType:"struct IMultiSourceLoan.Loan",type:"tuple",components:[{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:[{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:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_collateralAddress",internalType:"address",type:"address"},{name:"_collateralTokenId",internalType:"uint256",type:"uint256"},{name:"_loanId",internalType:"uint256",type:"uint256"},{name:"_repayment",internalType:"uint256",type:"uint256"},{name:"_loan",internalType:"bytes",type:"bytes"}],name:"loanLiquidated",outputs:[]},{stateMutability:"view",type:"function",inputs:[],name:"name",outputs:[{name:"",internalType:"string",type:"string"}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"",internalType:"address",type:"address"},{name:"",internalType:"address",type:"address"},{name:"",internalType:"uint256",type:"uint256"},{name:"",internalType:"bytes",type:"bytes"}],name:"onERC721Received",outputs:[{name:"",internalType:"bytes4",type:"bytes4"}]},{stateMutability:"view",type:"function",inputs:[],name:"owner",outputs:[{name:"",internalType:"address",type:"address"}]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_renegotiationOffer",internalType:"struct IMultiSourceLoan.RenegotiationOffer",type:"tuple",components:[{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:"signer",internalType:"address",type:"address"},{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:"strictImprovement",internalType:"bool",type:"bool"}]},{name:"_loan",internalType:"struct IMultiSourceLoan.Loan",type:"tuple",components:[{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:[{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:[{name:"",internalType:"uint256",type:"uint256"},{name:"",internalType:"struct IMultiSourceLoan.Loan",type:"tuple",components:[{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:[{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:[{name:"_renegotiationOffer",internalType:"struct IMultiSourceLoan.RenegotiationOffer",type:"tuple",components:[{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:"signer",internalType:"address",type:"address"},{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:"strictImprovement",internalType:"bool",type:"bool"}]},{name:"_loan",internalType:"struct IMultiSourceLoan.Loan",type:"tuple",components:[{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:[{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:[{name:"",internalType:"uint256",type:"uint256"},{name:"",internalType:"struct IMultiSourceLoan.Loan",type:"tuple",components:[{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:[{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:[{name:"_renegotiationOffer",internalType:"struct IMultiSourceLoan.RenegotiationOffer[]",type:"tuple[]",components:[{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:"signer",internalType:"address",type:"address"},{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:"strictImprovement",internalType:"bool",type:"bool"}]},{name:"_loan",internalType:"struct IMultiSourceLoan.Loan[]",type:"tuple[]",components:[{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:[{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:"refinancePartialBatch",outputs:[{name:"loanId",internalType:"uint256[]",type:"uint256[]"},{name:"loans",internalType:"struct IMultiSourceLoan.Loan[]",type:"tuple[]",components:[{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:[{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:[{name:"_contract",internalType:"address",type:"address"}],name:"removeWhitelistedCallbackContract",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_collateralTo",internalType:"address",type:"address"},{name:"_loanId",internalType:"uint256",type:"uint256"},{name:"_loan",internalType:"struct IMultiSourceLoan.Loan",type:"tuple",components:[{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:[{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:"_withCallback",internalType:"bool",type:"bool"}],name:"repayLoan",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"maxSources",internalType:"uint8",type:"uint8"}],name:"setMaxSources",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[],name:"setProtocolFee",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"newOwner",internalType:"address",type:"address"}],name:"transferOwnership",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_newMinimum",internalType:"struct IBaseLoan.ImprovementMinimum",type:"tuple",components:[{name:"principalAmount",internalType:"uint256",type:"uint256"},{name:"interest",internalType:"uint256",type:"uint256"},{name:"duration",internalType:"uint256",type:"uint256"}]}],name:"updateImprovementMinimum",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_newDuration",internalType:"uint48",type:"uint48"}],name:"updateLiquidationAuctionDuration",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"loanLiquidator",internalType:"contract ILoanLiquidator",type:"address"}],name:"updateLiquidationContract",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_newProtocolFee",internalType:"struct IBaseLoan.ProtocolFee",type:"tuple",components:[{name:"recipient",internalType:"address",type:"address"},{name:"fraction",internalType:"uint256",type:"uint256"}]}],name:"updateProtocolFee",outputs:[]}];import{createPublicClient as Ne,createTransport as ke,getContract as Ee}from"viem";var f=class{abi;address;bcClient;wallet;contract;safeContractWrite;constructor({walletClient:e,address:t,abi:a}){this.wallet=e;let n=Ne({transport:()=>ke(e.transport)});this.bcClient=n,this.address=t,this.abi=a,this.contract=Ee({address:this.address,abi:this.abi,walletClient:e,publicClient:this.bcClient}),this.safeContractWrite=new Proxy({},{get(i,r){return async(o,p={})=>{let{request:u}=await n.simulateContract({address:t,abi:a,functionName:r,args:o,account:e.account,...p});return e.writeContract(u)}}})}};l(f,"Contract");var X=class extends f{constructor({walletClient:e}){let{AuctionLoanLiquidatorV4Address:t}=T(e.chain);super({walletClient:e,address:t,abi:pe})}async placeBid({collectionContractAddress:e,tokenId:t,bid:a}){let n=await this.safeContractWrite.placeBid([e,t,a]);return{txHash:n,waitTxInBlock:async()=>{let i=await this.bcClient.waitForTransactionReceipt({hash:n}),r=await this.contract.createEventFilter.BidPlaced(),o=y(i,r);if(o.length==0)throw new Error("Bid not placed");return{...o[0].args,...i}}}}async settleAuction({loan:e}){let t={...e,source:e.source.map(n=>[Number(n.loanId),n.lender,n.principalAmount,n.accruedInterest,n.startTime,n.aprBps])},a=await this.safeContractWrite.settleAuction([e.nftCollateralAddress,e.nftCollateralTokenId,De(X.LOAN_SETTLEMENT_ENCODE_TYPES,[t])]);return{txHash:a,waitTxInBlock:async()=>{let n=await this.bcClient.waitForTransactionReceipt({hash:a}),i=await this.contract.createEventFilter.AuctionSettled(),r=y(n,i);if(r.length==0)throw new Error("Auction not settled");return{...r[0].args,...n}}}}},v=X;l(v,"AllV4"),ae(v,"LOAN_SETTLEMENT_ENCODE_TYPES",[{name:"",type:"tuple",components:[{name:"borrower",type:"address"},{name:"nftCollateralTokenId",type:"uint256"},{name:"nftCollateralAddress",type:"address"},{name:"principalAddress",type:"address"},{name:"principalAmount",type:"uint256"},{name:"startTime",type:"uint256"},{name:"duration",type:"uint256"},{name:"source",type:"tuple[]",components:[{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"}]}]}]);var N=class extends f{constructor({walletClient:e}){let{AuctionLoanLiquidatorV5Address:t}=T(e.chain);super({walletClient:e,address:t,abi:ie})}async placeBid({collectionContractAddress:e,tokenId:t,bid:a,auction:n}){let i=await this.safeContractWrite.placeBid([e,t,n,a]);return{txHash:i,waitTxInBlock:async()=>{let r=await this.bcClient.waitForTransactionReceipt({hash:i}),o=await this.contract.createEventFilter.BidPlaced(),p=y(r,o);if(p.length==0)throw new Error("Bid not placed");return{...p[0].args,...r}}}}async settleAuction({auction:e,loan:t}){let a=await this.safeContractWrite.settleAuction([e,t]);return{txHash:a,waitTxInBlock:async()=>{let n=await this.bcClient.waitForTransactionReceipt({hash:a}),i=await this.contract.createEventFilter.AuctionSettled(),r=y(n,i);if(r.length==0)throw new Error("Auction not settled");return{...r[0].args,...n}}}}};l(N,"AllV5");import{encodeFunctionData as He}from"viem";var ye=[{constant:!0,inputs:[],name:"name",outputs:[{name:"",type:"string"}],payable:!1,type:"function",stateMutability:"view"},{constant:!0,inputs:[{name:"",type:"uint256"}],name:"punksOfferedForSale",outputs:[{name:"isForSale",type:"bool"},{name:"punkIndex",type:"uint256"},{name:"seller",type:"address"},{name:"minValue",type:"uint256"},{name:"onlySellTo",type:"address"}],payable:!1,type:"function",stateMutability:"view"},{constant:!1,inputs:[{name:"punkIndex",type:"uint256"}],name:"enterBidForPunk",outputs:[],payable:!0,type:"function",stateMutability:"payable"},{constant:!0,inputs:[],name:"totalSupply",outputs:[{name:"",type:"uint256"}],payable:!1,type:"function",stateMutability:"view"},{constant:!1,inputs:[{name:"punkIndex",type:"uint256"},{name:"minPrice",type:"uint256"}],name:"acceptBidForPunk",outputs:[],payable:!1,type:"function",stateMutability:"nonpayable"},{constant:!0,inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],payable:!1,type:"function",stateMutability:"view"},{constant:!1,inputs:[{name:"addresses",type:"address[]"},{name:"indices",type:"uint256[]"}],name:"setInitialOwners",outputs:[],payable:!1,type:"function",stateMutability:"nonpayable"},{constant:!1,inputs:[],name:"withdraw",outputs:[],payable:!1,type:"function",stateMutability:"nonpayable"},{constant:!0,inputs:[],name:"imageHash",outputs:[{name:"",type:"string"}],payable:!1,type:"function",stateMutability:"view"},{constant:!0,inputs:[],name:"nextPunkIndexToAssign",outputs:[{name:"",type:"uint256"}],payable:!1,type:"function",stateMutability:"view"},{constant:!0,inputs:[{name:"",type:"uint256"}],name:"punkIndexToAddress",outputs:[{name:"",type:"address"}],payable:!1,type:"function",stateMutability:"view"},{constant:!0,inputs:[],name:"standard",outputs:[{name:"",type:"string"}],payable:!1,type:"function",stateMutability:"view"},{constant:!0,inputs:[{name:"",type:"uint256"}],name:"punkBids",outputs:[{name:"hasBid",type:"bool"},{name:"punkIndex",type:"uint256"},{name:"bidder",type:"address"},{name:"value",type:"uint256"}],payable:!1,type:"function",stateMutability:"view"},{constant:!0,inputs:[{name:"",type:"address"}],name:"balanceOf",outputs:[{name:"",type:"uint256"}],payable:!1,type:"function",stateMutability:"view"},{constant:!1,inputs:[],name:"allInitialOwnersAssigned",outputs:[],payable:!1,type:"function",stateMutability:"nonpayable"},{constant:!0,inputs:[],name:"allPunksAssigned",outputs:[{name:"",type:"bool"}],payable:!1,type:"function",stateMutability:"view"},{constant:!1,inputs:[{name:"punkIndex",type:"uint256"}],name:"buyPunk",outputs:[],payable:!0,type:"function",stateMutability:"payable"},{constant:!1,inputs:[{name:"to",type:"address"},{name:"punkIndex",type:"uint256"}],name:"transferPunk",outputs:[],payable:!1,type:"function",stateMutability:"nonpayable"},{constant:!0,inputs:[],name:"symbol",outputs:[{name:"",type:"string"}],payable:!1,type:"function",stateMutability:"view"},{constant:!1,inputs:[{name:"punkIndex",type:"uint256"}],name:"withdrawBidForPunk",outputs:[],payable:!1,type:"function",stateMutability:"nonpayable"},{constant:!1,inputs:[{name:"to",type:"address"},{name:"punkIndex",type:"uint256"}],name:"setInitialOwner",outputs:[],payable:!1,type:"function",stateMutability:"nonpayable"},{constant:!1,inputs:[{name:"punkIndex",type:"uint256"},{name:"minSalePriceInWei",type:"uint256"},{name:"toAddress",type:"address"}],name:"offerPunkForSaleToAddress",outputs:[],payable:!1,type:"function",stateMutability:"nonpayable"},{constant:!0,inputs:[],name:"punksRemainingToAssign",outputs:[{name:"",type:"uint256"}],payable:!1,type:"function",stateMutability:"view"},{constant:!1,inputs:[{name:"punkIndex",type:"uint256"},{name:"minSalePriceInWei",type:"uint256"}],name:"offerPunkForSale",outputs:[],payable:!1,type:"function",stateMutability:"nonpayable"},{constant:!1,inputs:[{name:"punkIndex",type:"uint256"}],name:"getPunk",outputs:[],payable:!1,type:"function",stateMutability:"nonpayable"},{constant:!0,inputs:[{name:"",type:"address"}],name:"pendingWithdrawals",outputs:[{name:"",type:"uint256"}],payable:!1,type:"function",stateMutability:"view"},{constant:!1,inputs:[{name:"punkIndex",type:"uint256"}],name:"punkNoLongerForSale",outputs:[],payable:!1,type:"function",stateMutability:"nonpayable"},{inputs:[],payable:!0,type:"constructor",stateMutability:"payable"},{anonymous:!1,inputs:[{indexed:!0,name:"to",type:"address"},{indexed:!1,name:"punkIndex",type:"uint256"}],name:"Assign",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"from",type:"address"},{indexed:!0,name:"to",type:"address"},{indexed:!1,name:"value",type:"uint256"}],name:"Transfer",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"from",type:"address"},{indexed:!0,name:"to",type:"address"},{indexed:!1,name:"punkIndex",type:"uint256"}],name:"PunkTransfer",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"punkIndex",type:"uint256"},{indexed:!1,name:"minValue",type:"uint256"},{indexed:!0,name:"toAddress",type:"address"}],name:"PunkOffered",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"punkIndex",type:"uint256"},{indexed:!1,name:"value",type:"uint256"},{indexed:!0,name:"fromAddress",type:"address"}],name:"PunkBidEntered",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"punkIndex",type:"uint256"},{indexed:!1,name:"value",type:"uint256"},{indexed:!0,name:"fromAddress",type:"address"}],name:"PunkBidWithdrawn",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"punkIndex",type:"uint256"},{indexed:!1,name:"value",type:"uint256"},{indexed:!0,name:"fromAddress",type:"address"},{indexed:!0,name:"toAddress",type:"address"}],name:"PunkBought",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"punkIndex",type:"uint256"}],name:"PunkNoLongerForSale",type:"event"}];var k=class extends f{constructor({walletClient:e}){let{CryptoPunksAddress:t}=T(e.chain);super({walletClient:e,address:t,abi:ye})}async encodeBuyPunk(e){return He({abi:this.abi,functionName:"buyPunk",args:[e]})}};l(k,"CryptoPunks");import{encodeFunctionData as Te}from"viem";var L=l((s,e)=>s&&e&&s.toLowerCase()===e.toLowerCase(),"areSameAddress"),A=l((s,e)=>{let t=T({id:s});return{name:"GONDI_MULTI_SOURCE_LOAN",version:L(e,t.MultiSourceLoanV4Address)?"1":"2",chainId:s,verifyingContract:e}},"getDomain"),ue=l(s=>Number(s.valueOf()),"toInteger"),x=l(s=>Math.ceil(ue(s)/1e3),"millisToSeconds"),ce=60*60*24,me=l(s=>ue(s)/1e4,"bpsToPercentage"),fe="MarketPlace.Native";var E=class extends f{mslAddress;constructor({walletClient:e,mslAddress:t}){let{LeverageAddress:a}=T(e.chain);super({walletClient:e,address:a,abi:se}),this.mslAddress=t}async signExecutionData(e){return this.wallet.signTypedData({domain:A(this.wallet.chain.id,this.mslAddress),primaryType:"ExecutionData",types:{ExecutionData:[{name:"offer",type:"LoanOffer"},{name:"tokenId",type:"uint256"},{name:"amount",type:"uint256"},{name:"expirationTime",type:"uint256"},{name:"callbackData",type:"bytes"}],LoanOffer:[{name:"offerId",type:"uint256"},{name:"lender",type:"address"},{name:"fee",type:"uint256"},{name:"borrower",type:"address"},{name:"capacity",type:"uint256"},{name:"nftCollateralAddress",type:"address"},{name:"nftCollateralTokenId",type:"uint256"},{name:"principalAddress",type:"address"},{name:"principalAmount",type:"uint256"},{name:"aprBps",type:"uint256"},{name:"expirationTime",type:"uint256"},{name:"duration",type:"uint256"},{name:"validators",type:"OfferValidator[]"}],OfferValidator:[{name:"validator",type:"address"},{name:"arguments",type:"bytes"}]},message:e})}async signRepaymentData(e){return this.wallet.signTypedData({domain:A(this.wallet.chain.id,this.mslAddress),primaryType:"SignableRepaymentData",types:{SignableRepaymentData:[{name:"loanId",type:"uint256"},{name:"callbackData",type:"bytes"},{name:"shouldDelegate",type:"bool"}]},message:e})}async buy({leverageBuyData:e,ethToSend:t}){let a=await this.safeContractWrite.buy([await Promise.all(e.map(async n=>{let i={offer:n.offer,tokenId:n.nft.tokenId,amount:n.amount,expirationTime:n.expirationTime,callbackData:n.callbackData};return Te({abi:B,functionName:"emitLoan",args:[{executionData:i,lender:n.offer.lender,borrower:this.wallet.account.address,lenderOfferSignature:n.offer.signature,borrowerOfferSignature:await this.signExecutionData(i)}]})}))],{value:t});return{txHash:a,waitTxInBlock:async()=>{let n=await this.bcClient.waitForTransactionReceipt({hash:a}),i=await this.contract.createEventFilter.BNPLLoansStarted(),r=y(n,i);if(r.length==0)throw new Error("BNPL Loans not started");return{...r[0].args,...n}}}}async sell({loan:e,callbackData:t,shouldDelegate:a}){let n={loanId:e.source[0].loanId,callbackData:t,shouldDelegate:a},i=await this.safeContractWrite.sell([[Te({abi:B,functionName:"repayLoan",args:[{data:n,loan:e,borrowerSignature:await this.signRepaymentData(n)}]})]]);return{txHash:i,waitTxInBlock:async()=>{let r=await this.bcClient.waitForTransactionReceipt({hash:i}),o=await this.contract.createEventFilter.SellAndRepayExecuted(),p=y(r,o);if(p.length==0)throw new Error("Sell and repay not executed");return{...p[0].args,...r}}}}};l(E,"Leverage");var D=class extends f{constructor({walletClient:e}){let{MultiSourceLoanV4Address:t}=T(e.chain);super({walletClient:e,address:t,abi:de})}async signOffer({verifyingContract:e,structToSign:t}){return this.wallet.signTypedData({domain:A(this.wallet.chain.id,e),primaryType:"LoanOffer",types:{LoanOffer:[{name:"offerId",type:"uint256"},{name:"lender",type:"address"},{name:"fee",type:"uint256"},{name:"borrower",type:"address"},{name:"capacity",type:"uint256"},{name:"signer",type:"address"},{name:"requiresLiquidation",type:"bool"},{name:"nftCollateralAddress",type:"address"},{name:"nftCollateralTokenId",type:"uint256"},{name:"principalAddress",type:"address"},{name:"principalAmount",type:"uint256"},{name:"aprBps",type:"uint256"},{name:"expirationTime",type:"uint256"},{name:"duration",type:"uint256"},{name:"validators",type:"OfferValidator[]"}],OfferValidator:[{name:"validator",type:"address"},{name:"arguments",type:"bytes"}]},message:t})}async signRenegotiationOffer({verifyingContract:e,structToSign:t}){return this.wallet.signTypedData({domain:A(this.wallet.chain.id,e),primaryType:"RenegotiationOffer",types:{RenegotiationOffer:[{name:"renegotiationId",type:"uint256"},{name:"loanId",type:"uint256"},{name:"lender",type:"address"},{name:"fee",type:"uint256"},{name:"signer",type:"address"},{name:"targetPrincipal",type:"uint256[]"},{name:"principalAmount",type:"uint256"},{name:"aprBps",type:"uint256"},{name:"expirationTime",type:"uint256"},{name:"duration",type:"uint256"},{name:"strictImprovement",type:"bool"}]},message:t})}async cancelOffer({id:e}){let t=await this.safeContractWrite.cancelOffer([this.wallet.account.address,e]);return{txHash:t,waitTxInBlock:async()=>{let a=await this.bcClient.waitForTransactionReceipt({hash:t}),n=await this.contract.createEventFilter.OfferCancelled(),i=y(a,n);if(i.length==0)throw new Error("Offer not cancelled");return{...i[0].args,...a}}}}async cancelAllOffers({minId:e}){let t=await this.safeContractWrite.cancelAllOffers([this.wallet.account.address,e]);return{txHash:t,waitTxInBlock:async()=>{let a=await this.bcClient.waitForTransactionReceipt({hash:t}),n=await this.contract.createEventFilter.AllOffersCancelled(),i=y(a,n);if(i.length==0)throw new Error("Offers not cancelled");return{...i[0].args,...a}}}}async cancelRefinanceOffer({id:e}){let t=await this.safeContractWrite.cancelRenegotiationOffer([this.wallet.account.address,e]);return{txHash:t,waitTxInBlock:async()=>{let a=await this.bcClient.waitForTransactionReceipt({hash:t}),n=await this.contract.createEventFilter.RenegotiationOfferCancelled(),i=y(a,n);if(i.length==0)throw new Error("Offer not cancelled");return{...i[0].args,...a}}}}async cancelAllRenegotiations({minId:e}){let t=await this.safeContractWrite.cancelAllRenegotiationOffers([this.wallet.account.address,e]);return{txHash:t,waitTxInBlock:async()=>{let a=await this.bcClient.waitForTransactionReceipt({hash:t}),n=await this.contract.createEventFilter.RenegotiationOfferCancelled(),i=y(a,n);if(i.length==0)throw new Error("Offer not cancelled");return{...i[0].args,...a}}}}async emitLoan({offer:e,signature:t,tokenId:a}){let n=await this.safeContractWrite.emitLoan([e,a,t,!1]);return{txHash:n,waitTxInBlock:async()=>{let i=await this.bcClient.waitForTransactionReceipt({hash:n}),r=await this.contract.createEventFilter.LoanEmitted(),o=y(i,r);if(o.length==0)throw new Error("Loan not emitted");let p=o[0].args;return{loan:{id:`${this.contract.address.toLowerCase()}.${p.loanId}`,...p.loan,contractAddress:this.contract.address},offerId:`${this.contract.address.toLowerCase()}.${e.lender.toLowerCase()}.${p.offerId}`,...i}}}}async repayLoan({loan:e,nftReceiver:t}){let a=t??this.wallet.account.address,n=await this.safeContractWrite.repayLoan([a,e.source[0].loanId,e,!1]);return{txHash:n,waitTxInBlock:async()=>{let i=await this.bcClient.waitForTransactionReceipt({hash:n}),r=await this.contract.createEventFilter.LoanRepaid(),o=y(i,r);if(o.length==0)throw new Error("Loan not repaid");return{...o[0].args,...i}}}}getRemainingLockupSeconds(){return 0}async refinanceFullLoan({offer:e,signature:t,loan:a}){let n=await this.safeContractWrite.refinanceFull([e,a,t]);return{txHash:n,waitTxInBlock:async()=>{let i=await this.bcClient.waitForTransactionReceipt({hash:n}),r=await this.contract.createEventFilter.LoanRefinanced(),o=y(i,r);if(o.length==0)throw new Error("Loan not refinanced");let p=o[0].args;return{loan:{id:`${this.contract.address.toLowerCase()}.${p.newLoanId}`,...p.loan,contractAddress:this.address},renegotiationId:`${this.contract.address.toLowerCase()}.${e.lender.toLowerCase()}.${p.renegotiationId}`,...i}}}}async refinancePartialLoan({offer:e,loan:t}){let a=await this.safeContractWrite.refinancePartial([e,t]);return{txHash:a,waitTxInBlock:async()=>{let n=await this.bcClient.waitForTransactionReceipt({hash:a}),i=await this.contract.createEventFilter.LoanRefinanced(),r=y(n,i);if(r.length==0)throw new Error("Loan not refinanced");let o=r[0].args;return{loan:{id:`${this.contract.address.toLowerCase()}.${o.newLoanId}`,...o.loan,contractAddress:this.contract.address},renegotiationId:`${this.contract.address.toLowerCase()}.${e.lender.toLowerCase()}.${o.renegotiationId}`,...n}}}}async liquidateLoan({loan:e}){let t=await this.safeContractWrite.liquidateLoan([e.source[0].loanId,e]);return{txHash:t,waitTxInBlock:async()=>{let a=await this.bcClient.waitForTransactionReceipt({hash:t}),n=await this.contract.createEventFilter.LoanForeclosed(),i=await this.contract.createEventFilter.LoanSentToLiquidator(),r=y(a,n),o=y(a,i);if(r.length===0&&o.length===0)throw new Error("Loan not liquidated");return{...r?.[0]?.args??o?.[0]?.args,...a}}}}};l(D,"MslV4");var H=class extends f{constructor({walletClient:e}){let{MultiSourceLoanV5Address:t}=T(e.chain);super({walletClient:e,address:t,abi:B})}async signOffer({verifyingContract:e,structToSign:t}){return this.wallet.signTypedData({domain:A(this.wallet.chain.id,e),primaryType:"LoanOffer",types:{LoanOffer:[{name:"offerId",type:"uint256"},{name:"lender",type:"address"},{name:"fee",type:"uint256"},{name:"borrower",type:"address"},{name:"capacity",type:"uint256"},{name:"nftCollateralAddress",type:"address"},{name:"nftCollateralTokenId",type:"uint256"},{name:"principalAddress",type:"address"},{name:"principalAmount",type:"uint256"},{name:"aprBps",type:"uint256"},{name:"expirationTime",type:"uint256"},{name:"duration",type:"uint256"},{name:"validators",type:"OfferValidator[]"}],OfferValidator:[{name:"validator",type:"address"},{name:"arguments",type:"bytes"}]},message:t})}async signRenegotiationOffer({verifyingContract:e,structToSign:t}){return this.wallet.signTypedData({domain:A(this.wallet.chain.id,e),primaryType:"RenegotiationOffer",types:{RenegotiationOffer:[{name:"renegotiationId",type:"uint256"},{name:"loanId",type:"uint256"},{name:"lender",type:"address"},{name:"fee",type:"uint256"},{name:"targetPrincipal",type:"uint256[]"},{name:"principalAmount",type:"uint256"},{name:"aprBps",type:"uint256"},{name:"expirationTime",type:"uint256"},{name:"duration",type:"uint256"}]},message:t})}async cancelOffer({id:e}){let t=await this.safeContractWrite.cancelOffer([e]);return{txHash:t,waitTxInBlock:async()=>{let a=await this.bcClient.waitForTransactionReceipt({hash:t}),n=await this.contract.createEventFilter.OfferCancelled(),i=y(a,n);if(i.length==0)throw new Error("Offer not cancelled");return{...i[0].args,...a}}}}async cancelAllOffers({minId:e}){let t=await this.safeContractWrite.cancelAllOffers([e]);return{txHash:t,waitTxInBlock:async()=>{let a=await this.bcClient.waitForTransactionReceipt({hash:t}),n=await this.contract.createEventFilter.AllOffersCancelled(),i=y(a,n);if(i.length==0)throw new Error("Offers not cancelled");return{...i[0].args,...a}}}}async cancelRefinanceOffer({id:e}){let t=await this.safeContractWrite.cancelRenegotiationOffer([e]);return{txHash:t,waitTxInBlock:async()=>{let a=await this.bcClient.waitForTransactionReceipt({hash:t}),n=await this.contract.createEventFilter.RenegotiationOfferCancelled(),i=y(a,n);if(i.length==0)throw new Error("Renegotiation offer not cancelled");return{...i[0].args,...a}}}}async cancelAllRenegotiations({minId:e}){let t=await this.safeContractWrite.cancelAllRenegotiationOffers([e]);return{txHash:t,waitTxInBlock:async()=>{let a=await this.bcClient.waitForTransactionReceipt({hash:t}),n=await this.contract.createEventFilter.AllRenegotiationOffersCancelled(),i=y(a,n);if(i.length==0)throw new Error("Renegotiation offers not cancelled");return{...i[0].args,...a}}}}async emitLoan({offer:e,signature:t,tokenId:a,amount:n,expirationTime:i}){let r={offer:e,tokenId:a,amount:n,expirationTime:i,callbackData:"0x"},o=await this.safeContractWrite.emitLoan([{executionData:r,lender:e.lender,borrower:this.wallet.account.address,lenderOfferSignature:t,borrowerOfferSignature:"0x"}]);return{txHash:o,waitTxInBlock:async()=>{let p=await this.bcClient.waitForTransactionReceipt({hash:o}),u=await this.contract.createEventFilter.LoanEmitted(),d=y(p,u);if(d.length==0)throw new Error("Loan not emitted");let m=d[0].args;return{loan:{id:`${this.contract.address.toLowerCase()}.${m.loanId}`,...m.loan,contractAddress:this.contract.address},offerId:`${this.contract.address.toLowerCase()}.${e.lender.toLowerCase()}.${m.offerId}`,...p}}}}async repayLoan({loan:e}){let t={loanId:e.source[0].loanId,callbackData:"0x",shouldDelegate:!1},a=await this.safeContractWrite.repayLoan([{data:t,loan:e,borrowerSignature:"0x"}]);return{txHash:a,waitTxInBlock:async()=>{let n=await this.bcClient.waitForTransactionReceipt({hash:a}),i=await this.contract.createEventFilter.LoanRepaid(),r=y(n,i);if(r.length==0)throw new Error("Loan not repaid");return{...r[0].args,...n}}}}async getRemainingLockupSeconds({loan:e}){let t=e.source[0],n=e.startTime+e.duration-t.startTime,i=await this.contract.read.getMinLockPeriod(),r=me(i),o=Math.ceil(Number(n)*r),p=Math.ceil(x(Date.now())-Number(t.startTime));return p>=o?0:o-p}async refinanceFullLoan({offer:e,signature:t,loan:a}){let n=await this.safeContractWrite.refinanceFull([e,a,t]);return{txHash:n,waitTxInBlock:async()=>{let i=await this.bcClient.waitForTransactionReceipt({hash:n}),r=await this.contract.createEventFilter.LoanRefinanced(),o=y(i,r);if(o.length==0)throw new Error("Loan not refinanced");let p=o[0].args;return{loan:{id:`${this.contract.address.toLowerCase()}.${p.newLoanId}`,...p.loan,contractAddress:this.contract.address},renegotiationId:`${this.contract.address.toLowerCase()}.${e.lender.toLowerCase()}.${p.renegotiationId}`,...i}}}}async refinancePartialLoan({offer:e,loan:t}){let a=await this.safeContractWrite.refinancePartial([e,t]);return{txHash:a,waitTxInBlock:async()=>{let n=await this.bcClient.waitForTransactionReceipt({hash:a}),i=await this.contract.createEventFilter.LoanRefinanced(),r=y(n,i);if(r.length==0)throw new Error("Loan not refinanced");let o=r[0].args;return{loan:{id:`${this.contract.address.toLowerCase()}.${o.newLoanId}`,...o.loan,contractAddress:this.contract.address},renegotiationId:`${this.contract.address.toLowerCase()}.${e.lender.toLowerCase()}.${o.renegotiationId}`,...n}}}}async liquidateLoan({loan:e}){let t=await this.safeContractWrite.liquidateLoan([e.source[0].loanId,e]);return{txHash:t,waitTxInBlock:async()=>{let a=await this.bcClient.waitForTransactionReceipt({hash:t}),n=await this.contract.createEventFilter.LoanForeclosed(),i=await this.contract.createEventFilter.LoanSentToLiquidator(),r=y(a,n),o=y(a,i);if(r.length===0&&o.length===0)throw new Error("Loan not liquidated");return{...r?.[0]?.args??o?.[0]?.args,...a}}}}};l(H,"MslV5");import{zeroAddress as h}from"viem";var R=[{inputs:[{internalType:"address",name:"conduitController",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"BadContractSignature",type:"error"},{inputs:[],name:"BadFraction",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"BadReturnValueFromERC20OnTransfer",type:"error"},{inputs:[{internalType:"uint8",name:"v",type:"uint8"}],name:"BadSignatureV",type:"error"},{inputs:[],name:"CannotCancelOrder",type:"error"},{inputs:[],name:"ConsiderationCriteriaResolverOutOfRange",type:"error"},{inputs:[],name:"ConsiderationLengthNotEqualToTotalOriginal",type:"error"},{inputs:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"considerationIndex",type:"uint256"},{internalType:"uint256",name:"shortfallAmount",type:"uint256"}],name:"ConsiderationNotMet",type:"error"},{inputs:[],name:"CriteriaNotEnabledForItem",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256[]",name:"identifiers",type:"uint256[]"},{internalType:"uint256[]",name:"amounts",type:"uint256[]"}],name:"ERC1155BatchTransferGenericFailure",type:"error"},{inputs:[],name:"InexactFraction",type:"error"},{inputs:[],name:"InsufficientNativeTokensSupplied",type:"error"},{inputs:[],name:"Invalid1155BatchTransferEncoding",type:"error"},{inputs:[],name:"InvalidBasicOrderParameterEncoding",type:"error"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"InvalidCallToConduit",type:"error"},{inputs:[{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"address",name:"conduit",type:"address"}],name:"InvalidConduit",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"InvalidContractOrder",type:"error"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"InvalidERC721TransferAmount",type:"error"},{inputs:[],name:"InvalidFulfillmentComponentData",type:"error"},{inputs:[{internalType:"uint256",name:"value",type:"uint256"}],name:"InvalidMsgValue",type:"error"},{inputs:[],name:"InvalidNativeOfferItem",type:"error"},{inputs:[],name:"InvalidProof",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"InvalidRestrictedOrder",type:"error"},{inputs:[],name:"InvalidSignature",type:"error"},{inputs:[],name:"InvalidSigner",type:"error"},{inputs:[{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"}],name:"InvalidTime",type:"error"},{inputs:[{internalType:"uint256",name:"fulfillmentIndex",type:"uint256"}],name:"MismatchedFulfillmentOfferAndConsiderationComponents",type:"error"},{inputs:[{internalType:"enum Side",name:"side",type:"uint8"}],name:"MissingFulfillmentComponentOnAggregation",type:"error"},{inputs:[],name:"MissingItemAmount",type:"error"},{inputs:[],name:"MissingOriginalConsiderationItems",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"NativeTokenTransferGenericFailure",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"NoContract",type:"error"},{inputs:[],name:"NoReentrantCalls",type:"error"},{inputs:[],name:"NoSpecifiedOrdersAvailable",type:"error"},{inputs:[],name:"OfferAndConsiderationRequiredOnFulfillment",type:"error"},{inputs:[],name:"OfferCriteriaResolverOutOfRange",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderAlreadyFilled",type:"error"},{inputs:[{internalType:"enum Side",name:"side",type:"uint8"}],name:"OrderCriteriaResolverOutOfRange",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderIsCancelled",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderPartiallyFilled",type:"error"},{inputs:[],name:"PartialFillsNotEnabledForOrder",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"TokenTransferGenericFailure",type:"error"},{inputs:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"considerationIndex",type:"uint256"}],name:"UnresolvedConsiderationCriteria",type:"error"},{inputs:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"offerIndex",type:"uint256"}],name:"UnresolvedOfferCriteria",type:"error"},{inputs:[],name:"UnusedItemParameters",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"newCounter",type:"uint256"},{indexed:!0,internalType:"address",name:"offerer",type:"address"}],name:"CounterIncremented",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{indexed:!0,internalType:"address",name:"offerer",type:"address"},{indexed:!0,internalType:"address",name:"zone",type:"address"}],name:"OrderCancelled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{indexed:!0,internalType:"address",name:"offerer",type:"address"},{indexed:!0,internalType:"address",name:"zone",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],indexed:!1,internalType:"struct SpentItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],indexed:!1,internalType:"struct ReceivedItem[]",name:"consideration",type:"tuple[]"}],name:"OrderFulfilled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],indexed:!1,internalType:"struct OrderParameters",name:"orderParameters",type:"tuple"}],name:"OrderValidated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32[]",name:"orderHashes",type:"bytes32[]"}],name:"OrdersMatched",type:"event"},{inputs:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"counter",type:"uint256"}],internalType:"struct OrderComponents[]",name:"orders",type:"tuple[]"}],name:"cancel",outputs:[{internalType:"bool",name:"cancelled",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"uint120",name:"numerator",type:"uint120"},{internalType:"uint120",name:"denominator",type:"uint120"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"bytes",name:"extraData",type:"bytes"}],internalType:"struct AdvancedOrder",name:"",type:"tuple"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"enum Side",name:"side",type:"uint8"},{internalType:"uint256",name:"index",type:"uint256"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"bytes32[]",name:"criteriaProof",type:"bytes32[]"}],internalType:"struct CriteriaResolver[]",name:"",type:"tuple[]"},{internalType:"bytes32",name:"fulfillerConduitKey",type:"bytes32"},{internalType:"address",name:"recipient",type:"address"}],name:"fulfillAdvancedOrder",outputs:[{internalType:"bool",name:"fulfilled",type:"bool"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"uint120",name:"numerator",type:"uint120"},{internalType:"uint120",name:"denominator",type:"uint120"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"bytes",name:"extraData",type:"bytes"}],internalType:"struct AdvancedOrder[]",name:"",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"enum Side",name:"side",type:"uint8"},{internalType:"uint256",name:"index",type:"uint256"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"bytes32[]",name:"criteriaProof",type:"bytes32[]"}],internalType:"struct CriteriaResolver[]",name:"",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[][]",name:"",type:"tuple[][]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[][]",name:"",type:"tuple[][]"},{internalType:"bytes32",name:"fulfillerConduitKey",type:"bytes32"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"maximumFulfilled",type:"uint256"}],name:"fulfillAvailableAdvancedOrders",outputs:[{internalType:"bool[]",name:"",type:"bool[]"},{components:[{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ReceivedItem",name:"item",type:"tuple"},{internalType:"address",name:"offerer",type:"address"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"}],internalType:"struct Execution[]",name:"",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct Order[]",name:"",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[][]",name:"",type:"tuple[][]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[][]",name:"",type:"tuple[][]"},{internalType:"bytes32",name:"fulfillerConduitKey",type:"bytes32"},{internalType:"uint256",name:"maximumFulfilled",type:"uint256"}],name:"fulfillAvailableOrders",outputs:[{internalType:"bool[]",name:"",type:"bool[]"},{components:[{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ReceivedItem",name:"item",type:"tuple"},{internalType:"address",name:"offerer",type:"address"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"}],internalType:"struct Execution[]",name:"",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"considerationToken",type:"address"},{internalType:"uint256",name:"considerationIdentifier",type:"uint256"},{internalType:"uint256",name:"considerationAmount",type:"uint256"},{internalType:"address payable",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{internalType:"address",name:"offerToken",type:"address"},{internalType:"uint256",name:"offerIdentifier",type:"uint256"},{internalType:"uint256",name:"offerAmount",type:"uint256"},{internalType:"enum BasicOrderType",name:"basicOrderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"offererConduitKey",type:"bytes32"},{internalType:"bytes32",name:"fulfillerConduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalAdditionalRecipients",type:"uint256"},{components:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct AdditionalRecipient[]",name:"additionalRecipients",type:"tuple[]"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct BasicOrderParameters",name:"parameters",type:"tuple"}],name:"fulfillBasicOrder",outputs:[{internalType:"bool",name:"fulfilled",type:"bool"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"considerationToken",type:"address"},{internalType:"uint256",name:"considerationIdentifier",type:"uint256"},{internalType:"uint256",name:"considerationAmount",type:"uint256"},{internalType:"address payable",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{internalType:"address",name:"offerToken",type:"address"},{internalType:"uint256",name:"offerIdentifier",type:"uint256"},{internalType:"uint256",name:"offerAmount",type:"uint256"},{internalType:"enum BasicOrderType",name:"basicOrderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"offererConduitKey",type:"bytes32"},{internalType:"bytes32",name:"fulfillerConduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalAdditionalRecipients",type:"uint256"},{components:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct AdditionalRecipient[]",name:"additionalRecipients",type:"tuple[]"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct BasicOrderParameters",name:"parameters",type:"tuple"}],name:"fulfillBasicOrder_efficient_6GL6yc",outputs:[{internalType:"bool",name:"fulfilled",type:"bool"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct Order",name:"",type:"tuple"},{internalType:"bytes32",name:"fulfillerConduitKey",type:"bytes32"}],name:"fulfillOrder",outputs:[{internalType:"bool",name:"fulfilled",type:"bool"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"contractOfferer",type:"address"}],name:"getContractOffererNonce",outputs:[{internalType:"uint256",name:"nonce",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"offerer",type:"address"}],name:"getCounter",outputs:[{internalType:"uint256",name:"counter",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"counter",type:"uint256"}],internalType:"struct OrderComponents",name:"",type:"tuple"}],name:"getOrderHash",outputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"getOrderStatus",outputs:[{internalType:"bool",name:"isValidated",type:"bool"},{internalType:"bool",name:"isCancelled",type:"bool"},{internalType:"uint256",name:"totalFilled",type:"uint256"},{internalType:"uint256",name:"totalSize",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"incrementCounter",outputs:[{internalType:"uint256",name:"newCounter",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"information",outputs:[{internalType:"string",name:"version",type:"string"},{internalType:"bytes32",name:"domainSeparator",type:"bytes32"},{internalType:"address",name:"conduitController",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"uint120",name:"numerator",type:"uint120"},{internalType:"uint120",name:"denominator",type:"uint120"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"bytes",name:"extraData",type:"bytes"}],internalType:"struct AdvancedOrder[]",name:"",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"enum Side",name:"side",type:"uint8"},{internalType:"uint256",name:"index",type:"uint256"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"bytes32[]",name:"criteriaProof",type:"bytes32[]"}],internalType:"struct CriteriaResolver[]",name:"",type:"tuple[]"},{components:[{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[]",name:"offerComponents",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[]",name:"considerationComponents",type:"tuple[]"}],internalType:"struct Fulfillment[]",name:"",type:"tuple[]"},{internalType:"address",name:"recipient",type:"address"}],name:"matchAdvancedOrders",outputs:[{components:[{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ReceivedItem",name:"item",type:"tuple"},{internalType:"address",name:"offerer",type:"address"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"}],internalType:"struct Execution[]",name:"",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct Order[]",name:"",type:"tuple[]"},{components:[{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[]",name:"offerComponents",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[]",name:"considerationComponents",type:"tuple[]"}],internalType:"struct Fulfillment[]",name:"",type:"tuple[]"}],name:"matchOrders",outputs:[{components:[{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ReceivedItem",name:"item",type:"tuple"},{internalType:"address",name:"offerer",type:"address"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"}],internalType:"struct Execution[]",name:"",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"pure",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct Order[]",name:"",type:"tuple[]"}],name:"validate",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}];var V=class extends f{constructor({walletClient:e}){let{SeaportAddress:t}=T(e.chain);super({walletClient:e,address:t,abi:R})}async getOrderHash(e){return this.contract.read.getOrderHash([e])}async getCounter(){return this.contract.read.getCounter([this.wallet.account.address])}async signOrder(e){let t={name:"Seaport",version:"1.5",chainId:this.wallet.chain?.id,verifyingContract:this.address},a={OrderComponents:[{name:"offerer",type:"address"},{name:"zone",type:"address"},{name:"offer",type:"OfferItem[]"},{name:"consideration",type:"ConsiderationItem[]"},{name:"orderType",type:"uint8"},{name:"startTime",type:"uint256"},{name:"endTime",type:"uint256"},{name:"zoneHash",type:"bytes32"},{name:"salt",type:"uint256"},{name:"conduitKey",type:"bytes32"},{name:"counter",type:"uint256"}],OfferItem:[{name:"itemType",type:"uint8"},{name:"token",type:"address"},{name:"identifierOrCriteria",type:"uint256"},{name:"startAmount",type:"uint256"},{name:"endAmount",type:"uint256"}],ConsiderationItem:[{name:"itemType",type:"uint8"},{name:"token",type:"address"},{name:"identifierOrCriteria",type:"uint256"},{name:"startAmount",type:"uint256"},{name:"endAmount",type:"uint256"},{name:"recipient",type:"address"}]};return this.wallet.signTypedData({domain:t,types:a,primaryType:"OrderComponents",message:e})}async generateOrderFromSaleOffer({collectionContractAddress:e,tokenId:t,price:a,expirationTime:n}){let{WETH_ADDRESS:i}=I(),r={offerer:this.wallet.account.address,zone:h,offer:[{itemType:1,token:i,identifierOrCriteria:0n,startAmount:a,endAmount:a}],consideration:[{itemType:2,token:e,identifierOrCriteria:t,startAmount:1n,endAmount:1n,recipient:this.wallet.account.address}],orderType:0,startTime:BigInt(Math.floor(x(Date.now()))),endTime:n,zoneHash:b,salt:0n,conduitKey:b,counter:await this.getCounter(),totalOriginalConsiderationItems:1n},o=await this.signOrder(r);return{parameters:r,signature:o}}async recoverOrderFromNativeBid(e){let{WETH_ADDRESS:t}=I();return{offerer:e.maker,zone:h,offer:[{itemType:1,token:t,identifierOrCriteria:0n,startAmount:e.netAmount,endAmount:e.netAmount}],consideration:[{itemType:2,token:e.nft.collection?.contractData?.contractAddress??h,identifierOrCriteria:e.nft.tokenId,startAmount:1n,endAmount:1n,recipient:e.maker}],orderType:0,startTime:BigInt(Math.floor(x(e.startTime.getTime()))),endTime:BigInt(Math.floor(x(e.expiration?.getTime()??Date.now()))),zoneHash:b,salt:0n,conduitKey:b,counter:await this.getCounter(),totalOriginalConsiderationItems:1n}}async generateInverseOrder(e){return{offerer:this.wallet.account?.address??h,zone:h,offer:e.consideration,consideration:e.offer.map(t=>({...t,recipient:this.wallet.account?.address??h})),orderType:0,startTime:e.startTime,endTime:e.endTime,zoneHash:b,salt:0n,conduitKey:b,counter:await this.getCounter(),totalOriginalConsiderationItems:BigInt(e.offer.length)}}generateFulfillmentsForOrderAndInverse(e){let t=[];return e.offer.forEach((a,n)=>{t.push({offerComponents:[{orderIndex:0n,itemIndex:BigInt(n)}],considerationComponents:[{orderIndex:1n,itemIndex:BigInt(n)}]})}),e.consideration.forEach((a,n)=>{t.push({offerComponents:[{orderIndex:1n,itemIndex:BigInt(n)}],considerationComponents:[{orderIndex:0n,itemIndex:BigInt(n)}]})}),t}async cancel({orderComponents:e}){let t=await this.safeContractWrite.cancel([[e]]);return{txHash:t,waitTxInBlock:async()=>{let a=await this.bcClient.waitForTransactionReceipt({hash:t}),n=await this.contract.createEventFilter.OrderCancelled({offerer:e.offerer}),i=y(a,n);if(i.length==0)throw new Error("Order not cancelled");return{...i[0].args,...a}}}}};l(V,"Seaport");var K=class{walletClient;publicClient;MultiSourceLoanV4;MultiSourceLoanV5;AuctionLoanLiquidatorV4;AuctionLoanLiquidatorV5;Leverage;Seaport;CryptoPunks;constructor(e,t){this.walletClient=t,this.publicClient=e,this.MultiSourceLoanV4=new D({walletClient:t}),this.MultiSourceLoanV5=new H({walletClient:t}),this.AuctionLoanLiquidatorV4=new v({walletClient:t}),this.AuctionLoanLiquidatorV5=new N({walletClient:t}),this.Leverage=new E({walletClient:t,mslAddress:this.MultiSourceLoanV5.address}),this.Seaport=new V({walletClient:t}),this.CryptoPunks=new k({walletClient:t})}Msl(e){if(L(e,this.MultiSourceLoanV4.address))return this.MultiSourceLoanV4;if(L(e,this.MultiSourceLoanV5.address))return this.MultiSourceLoanV5;throw new Error(`Invalid Contract Address ${e}`)}All(e){if(L(e,this.MultiSourceLoanV4.address))return this.AuctionLoanLiquidatorV4;if(L(e,this.MultiSourceLoanV5.address))return this.AuctionLoanLiquidatorV5;throw new Error(`Invalid Contract Address ${e}`)}ERC721(e){return ge({address:e,abi:$,walletClient:this.walletClient,publicClient:this.publicClient})}ERC20(e){return ge({address:e,abi:re,walletClient:this.walletClient,publicClient:this.publicClient})}};l(K,"Contracts");var F=Ue,b=`0x${"0".repeat(64)}`,be="0x0";function y(s,e){return s.logs.filter(t=>Ke(e)[0]==t.topics[0]).map(t=>Ve({abi:e.abi,data:t.data,topics:t.topics,eventName:e.eventName})).filter(t=>t.eventName==e.eventName)}l(y,"filterLogs");import{ApolloClient as Ze,ApolloLink as xe,createHttpLink as je,InMemoryCache as Ye}from"@apollo/client/core/index.js";import{setContext as Je}from"@apollo/client/link/context/index.js";import{withScalars as et}from"apollo-link-scalars";import{buildSchema as tt}from"graphql";import{ApolloClient as qe,ApolloLink as Ie,createHttpLink as We,InMemoryCache as $e}from"@apollo/client/core/index.js";import{gql as Ae}from"graphql-tag";import{SiweMessage as Qe}from"siwe";var Fe=l(()=>process.env.GONDI_URL??"https://api.gondi.xyz","gondiUrl"),Z=l(()=>`${Fe()}/graphql`,"authApiUrl"),Se=l(()=>`${Fe()}/lending/graphql`,"apiUrl");var ze=l(async()=>{let s=Ie.from([We({uri:({operationName:e})=>`${Z()}?operation=${encodeURIComponent(e)}`})]);return new qe({link:Ie.from([s]),defaultOptions:{query:{errorPolicy:"all"},mutate:{errorPolicy:"all"}},cache:new $e({})})},"getAuthClient"),Ge=l(async({wallet:s})=>{let e=await ze(),{data:t,errors:a}=await e.mutate({mutation:Ae`
|
|
2
2
|
mutation GenerateSignInNonce($nonceInput: NonceInput!) {
|
|
3
3
|
generateSignInNonce(nonceInput: $nonceInput)
|
|
4
4
|
}
|
|
5
|
-
`,variables:{nonceInput:{walletAddress:s.account.address,blockchain:"ETHEREUM"}}});if(a)throw new Error(a.map(d=>d.message).join(", "));let n=t?.generateSignInNonce,i=new
|
|
5
|
+
`,variables:{nonceInput:{walletAddress:s.account.address,blockchain:"ETHEREUM"}}});if(a)throw new Error(a.map(d=>d.message).join(", "));let n=t?.generateSignInNonce,i=new Qe({domain:"gondi.xyz",address:s.account.address,chainId:s.chain.id,statement:"Sign in with Ethereum to the app.",uri:Z(),version:"1",nonce:n}),r=await s.signMessage({message:i.prepareMessage()}),{data:o,errors:p}=await e.mutate({mutation:Ae`
|
|
6
6
|
mutation SignInWithEthereum($siweInput: SiweInput!) {
|
|
7
7
|
signInWithEthereum(siweInput: $siweInput)
|
|
8
8
|
}
|
|
9
|
-
`,variables:{siweInput:{message:i.prepareMessage(),signature:r}}});if(p)throw new Error(p.map(d=>d.message).join(", "));let u=o?.signInWithEthereum;if(!u)throw new Error("Couldn't generate Access Token, please try again later");return u},"signIn"),
|
|
9
|
+
`,variables:{siweInput:{message:i.prepareMessage(),signature:r}}});if(p)throw new Error(p.map(d=>d.message).join(", "));let u=o?.signInWithEthereum;if(!u)throw new Error("Couldn't generate Access Token, please try again later");return u},"signIn"),U=class{token;wallet;constructor({token:e,wallet:t}){this.token=e,this.wallet=t}async authorizeRequest(e){await this.signIn();let{headers:t={}}=e.context||{headers:{}};return{...e,headers:{...t,authorization:`Bearer ${this.token}`}}}async signIn(){this.token||(this.token=await Ge({wallet:this.wallet}))}};l(U,"SessionToken");var Oe=`type ActiveOfferNotification implements Node & Notification {
|
|
10
10
|
createdOn: DateTime!
|
|
11
11
|
id: String!
|
|
12
12
|
notificationType: String!
|
|
@@ -36,10 +36,11 @@ type Auction implements Node {
|
|
|
36
36
|
highestBid: Bid
|
|
37
37
|
id: String!
|
|
38
38
|
loan: MultiSourceLoan!
|
|
39
|
-
originator:
|
|
40
|
-
settler:
|
|
39
|
+
originator: Address
|
|
40
|
+
settler: Address
|
|
41
41
|
startTime: DateTime
|
|
42
42
|
status: String!
|
|
43
|
+
triggerFee: BigInt
|
|
43
44
|
}
|
|
44
45
|
|
|
45
46
|
type AuctionBidConfirmationNotification implements Node & Notification {
|
|
@@ -233,15 +234,19 @@ type CollectionOrder implements Activity & Node & Order {
|
|
|
233
234
|
createdDate: DateTime!
|
|
234
235
|
currency: Currency!
|
|
235
236
|
currencyAddress: Address!
|
|
236
|
-
executionData: String!
|
|
237
237
|
expiration: DateTime
|
|
238
|
+
fees: BigInt!
|
|
239
|
+
hidden: Boolean!
|
|
238
240
|
id: String!
|
|
239
241
|
isAsk: Boolean!
|
|
240
|
-
maker:
|
|
242
|
+
maker: Address!
|
|
241
243
|
marketPlace: String!
|
|
242
|
-
|
|
244
|
+
netAmount: BigInt!
|
|
245
|
+
nonce: BigInt!
|
|
243
246
|
orderType: String!
|
|
244
|
-
price:
|
|
247
|
+
price: BigInt!
|
|
248
|
+
signature: Hash!
|
|
249
|
+
startTime: DateTime!
|
|
245
250
|
status: String!
|
|
246
251
|
timestamp: DateTime!
|
|
247
252
|
txHash: Hash
|
|
@@ -275,6 +280,7 @@ type CollectionStatistics {
|
|
|
275
280
|
lastSale: Sale
|
|
276
281
|
nftsCount: Float
|
|
277
282
|
numberOfOffers(currencyAddress: Address!): Float!
|
|
283
|
+
numberOfPricedNfts: Int!
|
|
278
284
|
percentageInOutstandingLoans: Float!
|
|
279
285
|
repaymentRate: Float!
|
|
280
286
|
totalLoanVolume(currencyAddress: Address!): BigInt!
|
|
@@ -295,6 +301,15 @@ type CollectionStatistics {
|
|
|
295
301
|
totalVolume4m: Float
|
|
296
302
|
}
|
|
297
303
|
|
|
304
|
+
input ConsiderationInput {
|
|
305
|
+
endAmount: BigInt!
|
|
306
|
+
identifierOrCriteria: BigInt!
|
|
307
|
+
itemType: Int!
|
|
308
|
+
recipient: Address!
|
|
309
|
+
startAmount: BigInt!
|
|
310
|
+
token: Address!
|
|
311
|
+
}
|
|
312
|
+
|
|
298
313
|
type ContractData implements Node {
|
|
299
314
|
blockchain: String!
|
|
300
315
|
contractAddress: Address!
|
|
@@ -672,6 +687,7 @@ type Mutation {
|
|
|
672
687
|
contractAddress: Address = "0x5FC8d32690cc91D4c39d9d3abcBD16989F875707"
|
|
673
688
|
renegotiationId: String!
|
|
674
689
|
): Renegotiation!
|
|
690
|
+
hideSaleOffer(saleOfferId: String!): SingleNFTOrder!
|
|
675
691
|
markNotificationIdsAsRead(ids: [Int!]): Void
|
|
676
692
|
markNotificationsAsRead: Void
|
|
677
693
|
removeListing(nftId: Int!): Listing!
|
|
@@ -682,6 +698,7 @@ type Mutation {
|
|
|
682
698
|
saveSignedCollectionOffer(
|
|
683
699
|
signedOfferInput: CollectionSignedOfferInput!
|
|
684
700
|
): CollectionOffer!
|
|
701
|
+
saveSignedSaleOffer(signedOfferInput: SignedOrderInput!): SingleNFTOrder!
|
|
685
702
|
saveSignedSingleNftOffer(
|
|
686
703
|
signedOfferInput: SingleNFTSignedOfferInput!
|
|
687
704
|
): SingleNFTOffer!
|
|
@@ -691,6 +708,7 @@ type Mutation {
|
|
|
691
708
|
contractAddress: Address = "0x5FC8d32690cc91D4c39d9d3abcBD16989F875707"
|
|
692
709
|
renegotiationId: String!
|
|
693
710
|
): Renegotiation!
|
|
711
|
+
showSaleOffer(saleOfferId: String!): SingleNFTOrder!
|
|
694
712
|
}
|
|
695
713
|
|
|
696
714
|
type NFT implements Node {
|
|
@@ -716,18 +734,6 @@ type NFT implements Node {
|
|
|
716
734
|
url: String
|
|
717
735
|
}
|
|
718
736
|
|
|
719
|
-
type NFTBidSample implements Node {
|
|
720
|
-
bidderAddress: Address!
|
|
721
|
-
currency: Currency
|
|
722
|
-
currencyAddress: Address!
|
|
723
|
-
expiration: DateTime!
|
|
724
|
-
fees: BigInt!
|
|
725
|
-
id: String!
|
|
726
|
-
marketPlace: String!
|
|
727
|
-
netAmount: BigInt!
|
|
728
|
-
status: String!
|
|
729
|
-
}
|
|
730
|
-
|
|
731
737
|
type NFTConnection {
|
|
732
738
|
edges: [NFTEdge!]!
|
|
733
739
|
pageInfo: PageInfo!
|
|
@@ -932,15 +938,19 @@ interface Order implements Activity & Node {
|
|
|
932
938
|
createdDate: DateTime!
|
|
933
939
|
currency: Currency!
|
|
934
940
|
currencyAddress: Address!
|
|
935
|
-
executionData: String!
|
|
936
941
|
expiration: DateTime
|
|
942
|
+
fees: BigInt!
|
|
943
|
+
hidden: Boolean!
|
|
937
944
|
id: String!
|
|
938
945
|
isAsk: Boolean!
|
|
939
|
-
maker:
|
|
946
|
+
maker: Address!
|
|
940
947
|
marketPlace: String!
|
|
941
|
-
|
|
948
|
+
netAmount: BigInt!
|
|
949
|
+
nonce: BigInt!
|
|
942
950
|
orderType: String!
|
|
943
|
-
price:
|
|
951
|
+
price: BigInt!
|
|
952
|
+
signature: Hash!
|
|
953
|
+
startTime: DateTime!
|
|
944
954
|
status: String!
|
|
945
955
|
timestamp: DateTime!
|
|
946
956
|
txHash: Hash
|
|
@@ -1014,7 +1024,7 @@ type Query {
|
|
|
1014
1024
|
sortBy: [AuctionSortInput!] = null
|
|
1015
1025
|
statuses: [AuctionStatus!] = null
|
|
1016
1026
|
): AuctionConnection!
|
|
1017
|
-
listBestBidsForNft(currencyAddress: String!, nftId: Int!): [
|
|
1027
|
+
listBestBidsForNft(currencyAddress: String!, nftId: Int!): [SingleNFTOrder!]!
|
|
1018
1028
|
listBids(
|
|
1019
1029
|
after: String
|
|
1020
1030
|
auctionId: String = null
|
|
@@ -1059,6 +1069,7 @@ type Query {
|
|
|
1059
1069
|
after: String
|
|
1060
1070
|
borrowerAddress: String = null
|
|
1061
1071
|
collections: [Int!] = null
|
|
1072
|
+
contractAddresses: [Address!] = null
|
|
1062
1073
|
currencyAddress: Address = null
|
|
1063
1074
|
first: Int! = 10
|
|
1064
1075
|
nfts: [Int!] = null
|
|
@@ -1077,12 +1088,14 @@ type Query {
|
|
|
1077
1088
|
statuses: [OfferStatus!] = null
|
|
1078
1089
|
terms: TermsFilter = null
|
|
1079
1090
|
): OffersAndRenegotiationsConnection!
|
|
1080
|
-
|
|
1091
|
+
listNftsFromCollections(
|
|
1081
1092
|
after: String
|
|
1082
|
-
|
|
1093
|
+
collections: [Int!]!
|
|
1083
1094
|
first: Int = 10
|
|
1084
|
-
|
|
1095
|
+
onlyListed: Boolean = null
|
|
1085
1096
|
searchTerm: String = null
|
|
1097
|
+
traitRanges: [TraitRangeOptionsInput!] = null
|
|
1098
|
+
traits: [TraitKeyValueOptionsInput!] = null
|
|
1086
1099
|
): NFTConnection!
|
|
1087
1100
|
listNftsFromUser(
|
|
1088
1101
|
after: String
|
|
@@ -1134,6 +1147,7 @@ type Query {
|
|
|
1134
1147
|
statuses: [LoanStatusType!] = null
|
|
1135
1148
|
terms: TermsFilter = null
|
|
1136
1149
|
): SourcesAndLostSourcesConnection!
|
|
1150
|
+
listUserSaleOffers(after: String, first: Int = 10): SingleNFTOrderConnection!
|
|
1137
1151
|
me: User
|
|
1138
1152
|
}
|
|
1139
1153
|
|
|
@@ -1214,6 +1228,14 @@ type Sale implements Activity & Node {
|
|
|
1214
1228
|
txHash: Hash
|
|
1215
1229
|
}
|
|
1216
1230
|
|
|
1231
|
+
input SaleOfferInput {
|
|
1232
|
+
endAmount: BigInt!
|
|
1233
|
+
identifierOrCriteria: BigInt!
|
|
1234
|
+
itemType: Int!
|
|
1235
|
+
startAmount: BigInt!
|
|
1236
|
+
token: Address!
|
|
1237
|
+
}
|
|
1238
|
+
|
|
1217
1239
|
type Set implements Node {
|
|
1218
1240
|
collection: Collection
|
|
1219
1241
|
collections(after: String, first: Int! = 10): CollectionConnection!
|
|
@@ -1257,6 +1279,21 @@ type SetNftNotification implements Node & Notification {
|
|
|
1257
1279
|
|
|
1258
1280
|
scalar Signature
|
|
1259
1281
|
|
|
1282
|
+
input SignedOrderInput {
|
|
1283
|
+
conduitKey: Hash!
|
|
1284
|
+
consideration: [ConsiderationInput!]!
|
|
1285
|
+
counter: BigInt!
|
|
1286
|
+
endTime: BigInt!
|
|
1287
|
+
offer: [SaleOfferInput!]!
|
|
1288
|
+
offerer: Address!
|
|
1289
|
+
orderType: Int!
|
|
1290
|
+
salt: BigInt!
|
|
1291
|
+
signature: Signature!
|
|
1292
|
+
startTime: BigInt!
|
|
1293
|
+
zone: Address!
|
|
1294
|
+
zoneHash: Hash!
|
|
1295
|
+
}
|
|
1296
|
+
|
|
1260
1297
|
input SignedRenegotiationOfferInput {
|
|
1261
1298
|
aprBps: BigInt!
|
|
1262
1299
|
duration: BigInt!
|
|
@@ -1322,21 +1359,36 @@ type SingleNFTOrder implements Activity & Node & Order {
|
|
|
1322
1359
|
createdDate: DateTime!
|
|
1323
1360
|
currency: Currency!
|
|
1324
1361
|
currencyAddress: Address!
|
|
1325
|
-
executionData: String!
|
|
1326
1362
|
expiration: DateTime
|
|
1363
|
+
fees: BigInt!
|
|
1364
|
+
hidden: Boolean!
|
|
1327
1365
|
id: String!
|
|
1328
1366
|
isAsk: Boolean!
|
|
1329
|
-
maker:
|
|
1367
|
+
maker: Address!
|
|
1330
1368
|
marketPlace: String!
|
|
1331
|
-
|
|
1369
|
+
netAmount: BigInt!
|
|
1332
1370
|
nft: NFT!
|
|
1371
|
+
nonce: BigInt!
|
|
1333
1372
|
orderType: String!
|
|
1334
|
-
price:
|
|
1373
|
+
price: BigInt!
|
|
1374
|
+
signature: Hash!
|
|
1375
|
+
startTime: DateTime!
|
|
1335
1376
|
status: String!
|
|
1336
1377
|
timestamp: DateTime!
|
|
1337
1378
|
txHash: Hash
|
|
1338
1379
|
}
|
|
1339
1380
|
|
|
1381
|
+
type SingleNFTOrderConnection {
|
|
1382
|
+
edges: [SingleNFTOrderEdge!]!
|
|
1383
|
+
pageInfo: PageInfo!
|
|
1384
|
+
totalCount: Int
|
|
1385
|
+
}
|
|
1386
|
+
|
|
1387
|
+
type SingleNFTOrderEdge {
|
|
1388
|
+
cursor: String!
|
|
1389
|
+
node: SingleNFTOrder!
|
|
1390
|
+
}
|
|
1391
|
+
|
|
1340
1392
|
input SingleNFTSignedOfferInput {
|
|
1341
1393
|
aprBps: BigInt!
|
|
1342
1394
|
borrowerAddress: Address!
|
|
@@ -1454,6 +1506,16 @@ type Trait {
|
|
|
1454
1506
|
value: String!
|
|
1455
1507
|
}
|
|
1456
1508
|
|
|
1509
|
+
input TraitKeyValueOptionsInput {
|
|
1510
|
+
key: String!
|
|
1511
|
+
values: [String!]!
|
|
1512
|
+
}
|
|
1513
|
+
|
|
1514
|
+
input TraitRangeOptionsInput {
|
|
1515
|
+
key: String!
|
|
1516
|
+
range: RangeInput!
|
|
1517
|
+
}
|
|
1518
|
+
|
|
1457
1519
|
type UnderfundedOfferNotification implements Node & Notification {
|
|
1458
1520
|
createdOn: DateTime!
|
|
1459
1521
|
id: String!
|
|
@@ -1495,19 +1557,45 @@ input UserFilter {
|
|
|
1495
1557
|
Represents NULL values
|
|
1496
1558
|
"""
|
|
1497
1559
|
scalar Void
|
|
1498
|
-
`;var
|
|
1560
|
+
`;var nt=tt(Oe);Object.assign(BigInt.prototype,{toJSON(){return this.toString()}});var at={datetime:{serialize:s=>s instanceof Date?s.toISOString():null,parseValue:s=>typeof s=="string"?new Date(s):s instanceof Date?s:null},BigInt:{serialize:s=>typeof s=="bigint"?String(s):null,parseValue:s=>typeof s=="string"?BigInt(s):null},DateTime:{serialize:s=>s instanceof Date?s.toISOString():null,parseValue:s=>typeof s=="string"?new Date(s):s instanceof Date?s:null}},it=l(s=>Je(async e=>await s.authorizeRequest(e)),"authLink"),rt=xe.from([et({schema:nt,typesMap:at}),je({uri:({operationName:s})=>`${Se()}?operation=${encodeURIComponent(s)}`})]),Me=l(s=>{let e=new U({wallet:s});return new Ze({link:xe.from([it(e),rt]),defaultOptions:{query:{errorPolicy:"all",fetchPolicy:"no-cache"},mutate:{errorPolicy:"all",fetchPolicy:"no-cache"},watchQuery:{fetchPolicy:"no-cache",nextFetchPolicy:"no-cache",errorPolicy:"ignore"}},cache:new Ye({})})},"apolloClient");import c from"graphql-tag";var j=(t=>(t.Gondi="GONDI",t.Nftfi="NFTFI",t))(j||{});var Pe=(r=>(r.Active="ACTIVE",r.Cancelled="CANCELLED",r.Executed="EXECUTED",r.Expired="EXPIRED",r.Inactive="INACTIVE",r.Outperformed="OUTPERFORMED",r))(Pe||{}),Y=(d=>(d.AprBps="APR_BPS",d.CreatedDate="CREATED_DATE",d.DailyInterest="DAILY_INTEREST",d.Duration="DURATION",d.Expiration="EXPIRATION",d.NetPrincipal="NET_PRINCIPAL",d.PrincipalAmount="PRINCIPAL_AMOUNT",d.Repayment="REPAYMENT",d.Status="STATUS",d.TotalInterest="TOTAL_INTEREST",d))(Y||{}),J=(t=>(t.Asc="ASC",t.Desc="DESC",t))(J||{});var Li=c`
|
|
1561
|
+
fragment SaleOfferInfo on SingleNFTOrder {
|
|
1562
|
+
id
|
|
1563
|
+
netAmount
|
|
1564
|
+
status
|
|
1565
|
+
marketPlace
|
|
1566
|
+
fees
|
|
1567
|
+
maker
|
|
1568
|
+
expiration
|
|
1569
|
+
createdDate
|
|
1570
|
+
startTime
|
|
1571
|
+
hidden
|
|
1572
|
+
signature
|
|
1573
|
+
currencyAddress
|
|
1574
|
+
nonce
|
|
1575
|
+
nft {
|
|
1576
|
+
id
|
|
1577
|
+
tokenId
|
|
1578
|
+
collection {
|
|
1579
|
+
id
|
|
1580
|
+
contractData {
|
|
1581
|
+
contractAddress
|
|
1582
|
+
}
|
|
1583
|
+
}
|
|
1584
|
+
}
|
|
1585
|
+
}
|
|
1586
|
+
`,st=c`
|
|
1499
1587
|
mutation listNft($nftId: Int!) {
|
|
1500
1588
|
addOrUpdateListing(nftId: $nftId) {
|
|
1501
1589
|
id
|
|
1502
1590
|
}
|
|
1503
1591
|
}
|
|
1504
|
-
`,
|
|
1592
|
+
`,ot=c`
|
|
1505
1593
|
mutation unlistNft($nftId: Int!) {
|
|
1506
1594
|
removeListing(nftId: $nftId) {
|
|
1507
1595
|
id
|
|
1508
1596
|
}
|
|
1509
1597
|
}
|
|
1510
|
-
`,
|
|
1598
|
+
`,lt=c`
|
|
1511
1599
|
mutation generateCollectionOfferHash($offerInput: CollectionOfferInput!) {
|
|
1512
1600
|
offer: generateCollectionOfferToBeSigned(offerInput: $offerInput) {
|
|
1513
1601
|
offerHash
|
|
@@ -1526,7 +1614,7 @@ scalar Void
|
|
|
1526
1614
|
}
|
|
1527
1615
|
}
|
|
1528
1616
|
}
|
|
1529
|
-
`,
|
|
1617
|
+
`,pt=c`
|
|
1530
1618
|
mutation saveCollectionOffer($offer: CollectionSignedOfferInput!) {
|
|
1531
1619
|
offer: saveSignedCollectionOffer(signedOfferInput: $offer) {
|
|
1532
1620
|
id
|
|
@@ -1538,13 +1626,13 @@ scalar Void
|
|
|
1538
1626
|
}
|
|
1539
1627
|
}
|
|
1540
1628
|
}
|
|
1541
|
-
`,
|
|
1629
|
+
`,dt=c`
|
|
1542
1630
|
mutation hideOffer($contract: Address!, $id: String!) {
|
|
1543
1631
|
hideOffer(contractAddress: $contract, offerId: $id) {
|
|
1544
1632
|
id
|
|
1545
1633
|
}
|
|
1546
1634
|
}
|
|
1547
|
-
`,
|
|
1635
|
+
`,yt=c`
|
|
1548
1636
|
mutation generateSingleNftOfferHash($offerInput: SingleNFTOfferInput!) {
|
|
1549
1637
|
offer: generateSingleNftOfferToBeSigned(offerInput: $offerInput) {
|
|
1550
1638
|
offerHash
|
|
@@ -1566,7 +1654,7 @@ scalar Void
|
|
|
1566
1654
|
}
|
|
1567
1655
|
}
|
|
1568
1656
|
}
|
|
1569
|
-
`,
|
|
1657
|
+
`,ut=c`
|
|
1570
1658
|
mutation saveSingleNftOffer($offer: SingleNFTSignedOfferInput!) {
|
|
1571
1659
|
offer: saveSignedSingleNftOffer(signedOfferInput: $offer) {
|
|
1572
1660
|
id
|
|
@@ -1581,13 +1669,13 @@ scalar Void
|
|
|
1581
1669
|
}
|
|
1582
1670
|
}
|
|
1583
1671
|
}
|
|
1584
|
-
`,
|
|
1672
|
+
`,ct=c`
|
|
1585
1673
|
mutation unhideOffer($contract: Address!, $id: String!) {
|
|
1586
1674
|
showOffer(contractAddress: $contract, offerId: $id) {
|
|
1587
1675
|
id
|
|
1588
1676
|
}
|
|
1589
1677
|
}
|
|
1590
|
-
`,
|
|
1678
|
+
`,mt=c`
|
|
1591
1679
|
mutation generateRenegotiationOfferHash(
|
|
1592
1680
|
$renegotiationInput: RenegotiationOfferInput!
|
|
1593
1681
|
) {
|
|
@@ -1609,26 +1697,73 @@ scalar Void
|
|
|
1609
1697
|
}
|
|
1610
1698
|
}
|
|
1611
1699
|
}
|
|
1612
|
-
`,
|
|
1700
|
+
`,ft=c`
|
|
1613
1701
|
mutation hideRenegotiationOffer($id: String!, $contractAddress: Address!) {
|
|
1614
1702
|
hideRenegotiation(renegotiationId: $id, contractAddress: $contractAddress) {
|
|
1615
1703
|
id
|
|
1616
1704
|
}
|
|
1617
1705
|
}
|
|
1618
|
-
`,
|
|
1706
|
+
`,Tt=c`
|
|
1619
1707
|
mutation saveRenegotiationOffer($offer: SignedRenegotiationOfferInput!) {
|
|
1620
1708
|
offer: saveRenegotiationSignedOffer(signedRenegotiationInput: $offer) {
|
|
1621
1709
|
id
|
|
1622
1710
|
status
|
|
1623
1711
|
}
|
|
1624
1712
|
}
|
|
1625
|
-
`,
|
|
1713
|
+
`,gt=c`
|
|
1626
1714
|
mutation unhideRenegotiationOffer($id: String!, $contractAddress: Address!) {
|
|
1627
1715
|
showRenegotiation(renegotiationId: $id, contractAddress: $contractAddress) {
|
|
1628
1716
|
id
|
|
1629
1717
|
}
|
|
1630
1718
|
}
|
|
1631
|
-
`,
|
|
1719
|
+
`,bt=c`
|
|
1720
|
+
mutation hideSaleOffer($id: String!) {
|
|
1721
|
+
hideSaleOffer(saleOfferId: $id) {
|
|
1722
|
+
id
|
|
1723
|
+
}
|
|
1724
|
+
}
|
|
1725
|
+
`,Ft=c`
|
|
1726
|
+
query listBestBidsForNft($nftId: Int!, $currencyAddress: String!) {
|
|
1727
|
+
bids: listBestBidsForNft(nftId: $nftId, currencyAddress: $currencyAddress) {
|
|
1728
|
+
id
|
|
1729
|
+
netAmount
|
|
1730
|
+
status
|
|
1731
|
+
marketPlace
|
|
1732
|
+
fees
|
|
1733
|
+
maker
|
|
1734
|
+
expiration
|
|
1735
|
+
createdDate
|
|
1736
|
+
hidden
|
|
1737
|
+
signature
|
|
1738
|
+
currencyAddress
|
|
1739
|
+
startTime
|
|
1740
|
+
nonce
|
|
1741
|
+
nft {
|
|
1742
|
+
id
|
|
1743
|
+
tokenId
|
|
1744
|
+
collection {
|
|
1745
|
+
id
|
|
1746
|
+
contractData {
|
|
1747
|
+
contractAddress
|
|
1748
|
+
}
|
|
1749
|
+
}
|
|
1750
|
+
}
|
|
1751
|
+
}
|
|
1752
|
+
}
|
|
1753
|
+
`,St=c`
|
|
1754
|
+
mutation saveSignedSaleOffer($offer: SignedOrderInput!) {
|
|
1755
|
+
offer: saveSignedSaleOffer(signedOfferInput: $offer) {
|
|
1756
|
+
id
|
|
1757
|
+
status
|
|
1758
|
+
}
|
|
1759
|
+
}
|
|
1760
|
+
`,It=c`
|
|
1761
|
+
mutation unhideSaleOffer($id: String!) {
|
|
1762
|
+
showSaleOffer(saleOfferId: $id) {
|
|
1763
|
+
id
|
|
1764
|
+
}
|
|
1765
|
+
}
|
|
1766
|
+
`,At=c`
|
|
1632
1767
|
query collectionsIdByContractAddress($contractAddress: Address!) {
|
|
1633
1768
|
collections: getCollectionsByContractAddress(
|
|
1634
1769
|
contractAddress: $contractAddress
|
|
@@ -1636,13 +1771,13 @@ scalar Void
|
|
|
1636
1771
|
id
|
|
1637
1772
|
}
|
|
1638
1773
|
}
|
|
1639
|
-
`,
|
|
1774
|
+
`,Ot=c`
|
|
1640
1775
|
query collectionIdBySlug($slug: String!) {
|
|
1641
1776
|
collection: getCollectionBySlug(slug: $slug) {
|
|
1642
1777
|
id
|
|
1643
1778
|
}
|
|
1644
1779
|
}
|
|
1645
|
-
`,
|
|
1780
|
+
`,xt=c`
|
|
1646
1781
|
query listListings(
|
|
1647
1782
|
$collections: [Int!]
|
|
1648
1783
|
$userFilter: UserFilter
|
|
@@ -1683,7 +1818,7 @@ scalar Void
|
|
|
1683
1818
|
}
|
|
1684
1819
|
}
|
|
1685
1820
|
}
|
|
1686
|
-
`,
|
|
1821
|
+
`,Mt=c`
|
|
1687
1822
|
query listLoans(
|
|
1688
1823
|
$borrowerAddress: String = ""
|
|
1689
1824
|
$collections: [Int!] = []
|
|
@@ -1778,7 +1913,7 @@ scalar Void
|
|
|
1778
1913
|
}
|
|
1779
1914
|
}
|
|
1780
1915
|
}
|
|
1781
|
-
`,
|
|
1916
|
+
`,Pt=c`
|
|
1782
1917
|
query nftIdByContractAddressAndTokenId(
|
|
1783
1918
|
$contractAddress: Address!
|
|
1784
1919
|
$tokenId: BigInt!
|
|
@@ -1790,13 +1925,13 @@ scalar Void
|
|
|
1790
1925
|
id
|
|
1791
1926
|
}
|
|
1792
1927
|
}
|
|
1793
|
-
`,
|
|
1928
|
+
`,Ct=c`
|
|
1794
1929
|
query nftIdBySlugTokenId($slug: String!, $tokenId: BigInt!) {
|
|
1795
1930
|
nft: getNftBySlugAndTokenId(slug: $slug, tokenId: $tokenId) {
|
|
1796
1931
|
id
|
|
1797
1932
|
}
|
|
1798
1933
|
}
|
|
1799
|
-
`,
|
|
1934
|
+
`,vt=c`
|
|
1800
1935
|
query listOffers(
|
|
1801
1936
|
$lenderAddress: String
|
|
1802
1937
|
$sortBy: OffersSortInput!
|
|
@@ -1881,5 +2016,5 @@ scalar Void
|
|
|
1881
2016
|
}
|
|
1882
2017
|
}
|
|
1883
2018
|
}
|
|
1884
|
-
`;function Pe(s){return{listNft(e,t){return s(it,e,t)},unlistNft(e,t){return s(rt,e,t)},generateCollectionOfferHash(e,t){return s(st,e,t)},saveCollectionOffer(e,t){return s(ot,e,t)},hideOffer(e,t){return s(lt,e,t)},generateSingleNftOfferHash(e,t){return s(pt,e,t)},saveSingleNftOffer(e,t){return s(dt,e,t)},unhideOffer(e,t){return s(yt,e,t)},generateRenegotiationOfferHash(e,t){return s(ut,e,t)},hideRenegotiationOffer(e,t){return s(ct,e,t)},saveRenegotiationOffer(e,t){return s(mt,e,t)},unhideRenegotiationOffer(e,t){return s(ft,e,t)},collectionsIdByContractAddress(e,t){return s(Tt,e,t)},collectionIdBySlug(e,t){return s(gt,e,t)},listListings(e,t){return s(bt,e,t)},listLoans(e,t){return s(Ft,e,t)},nftIdByContractAddressAndTokenId(e,t){return s(It,e,t)},nftIdBySlugTokenId(e,t){return s(St,e,t)},listOffers(e,t){return s(At,e,t)}}}l(Pe,"getSdk");var Ot=["mutation","query","subscription"];function Ce(s){return Pe(l(async(t,a,n)=>{if(n={...n,context:{...n?.context,clientName:"lending"}},t.definitions.filter(r=>r.kind==="OperationDefinition"&&Ot.includes(r.operation)).length!==1)throw new Error("DocumentNode passed to Apollo Client must contain single query or mutation");let i=t.definitions[0];if(i.kind!=="OperationDefinition")throw new Error("DocumentNode passed to Apollo Client must contain single query or mutation");switch(i.operation){case"mutation":{let r=await s.mutate({mutation:t,variables:a,...n,fetchPolicy:"no-cache"});if(r.errors)throw new Error(JSON.stringify(r.errors));if(r.data===void 0||r.data===null)throw new Error("No data presented in the GraphQL response");return r.data}case"query":{let r=await s.query({query:t,variables:a,...n});if(r.errors)throw new Error(JSON.stringify(r.errors));if(r.data===void 0||r.data===null)throw new Error("No data presented in the GraphQL response");return r.data}case"subscription":throw new Error("Subscription requests through SDK interface are not supported");default:throw new Error("Operation not supported")}},"requester"))}l(Ce,"getSdkApollo");var U=class{api;generateSingleNftOfferHash;generateCollectionOfferHash;generateRenegotiationOfferHash;listListings;nftIdBySlugTokenId;nftIdByContractAddressAndTokenId;collectionIdBySlug;collectionsIdByContractAddress;listNft;unlistNft;hideOffer;hideRenegotiationOffer;unhideOffer;unhideRenegotiationOffer;constructor({apiClient:e,wallet:t}){let a=e??xe(t);this.api=Ce(a),this.generateSingleNftOfferHash=this.api.generateSingleNftOfferHash,this.generateCollectionOfferHash=this.api.generateCollectionOfferHash,this.generateRenegotiationOfferHash=this.api.generateRenegotiationOfferHash,this.listListings=this.api.listListings,this.nftIdBySlugTokenId=this.api.nftIdBySlugTokenId,this.nftIdByContractAddressAndTokenId=this.api.nftIdByContractAddressAndTokenId,this.collectionIdBySlug=this.api.collectionIdBySlug,this.collectionsIdByContractAddress=this.api.collectionsIdByContractAddress,this.listNft=this.api.listNft,this.unlistNft=this.api.unlistNft,this.hideOffer=this.api.hideOffer,this.hideRenegotiationOffer=this.api.hideRenegotiationOffer,this.unhideOffer=this.api.unhideOffer,this.unhideRenegotiationOffer=this.api.unhideRenegotiationOffer}async saveSingleNftOffer(e){let t={...e,borrowerAddress:e.borrowerAddress||b},a=await this.api.saveSingleNftOffer({offer:t}),n=a.offer.nft.collection?.contractData?.contractAddress||b;return{id:a.offer.id,nftCollateralAddress:n,nftCollateralTokenId:a.offer.nft.tokenId,...e}}async saveCollectionOffer(e){let t={...e,borrowerAddress:e.borrowerAddress||b},a=await this.api.saveCollectionOffer({offer:t}),n=a.offer.collection?.contractData?.contractAddress||b;return{id:a.offer.id,nftCollateralAddress:n,nftCollateralTokenId:0n,...e}}async saveRefinanceOffer(e){return{id:(await this.api.saveRenegotiationOffer({offer:e})).offer.id,...e}}async listOffers(e){let{result:{edges:t,pageInfo:a}}=await this.api.listOffers({...e}),n=t.map(i=>{let{__typename:r,lenderAddress:o,borrowerAddress:p,signerAddress:u,...d}=i.node;return{type:r,lender:o,borrower:p,signer:u,...d}});return{cursor:a.endCursor,offers:n}}async listLoans(e){let{loans:{edges:t,pageInfo:a}}=await this.api.listLoans({...e}),n=t.map(i=>{let{__typename:r,...o}=i.node;return{type:r,...o}});return{cursor:a.endCursor,loans:n}}};l(U,"Api");var ve=115792089237316195423570985008687907853269984665640564039457584007913129639935n;import{createClient as Lt}from"@reservoir0x/reservoir-sdk";import{createPublicClient as Rt,encodeAbiParameters as wt,encodeFunctionData as ht,getContract as _t,http as Bt}from"viem";import{mainnet as Nt}from"viem/chains";var w=class{orderId;to;callbackData;value;constructor({orderId:e,to:t,callbackData:a,value:n}){this.orderId=e,this.to=t,this.callbackData=a,this.value=n}};l(w,"InterruptedSendTransactionStepError");var O=class extends w{signature;constructor({orderId:e,to:t,callbackData:a,value:n,signature:i}){super({orderId:e,to:t,callbackData:a,value:n}),this.signature=i}};l(O,"InterruptedSeaportSendTransactionStepError");var M=class extends w{};l(M,"InterruptedCryptoPunksSendTransactionStepError");var x=class extends w{};l(x,"InterruptedGenericSendTransactionStepError");import{adaptViemWallet as Mt}from"@reservoir0x/reservoir-sdk";import{decodeFunctionData as Pt,zeroAddress as Ct}from"viem";var ee=l(s=>s==="opensea.io","isOpensea"),vt=l(s=>s==="cryptopunks.app","isCryptopunks"),te=l((s,e)=>({...Mt(s),transport:void 0,handleSendTransactionStep:async(n,i,r)=>{if(r.id!=="sale")return console.log(r),oe;let o=i.orderIds?.[0]??"",p=i.data.to,u=i.data.data,d=BigInt(i.data.value??0);if(ee(e)){let g=Pt({abi:R,data:i.data.data})?.args?.[0],F=Array.isArray(g)?g[0].signature:typeof g=="object"?g.signature:Ct;throw new O({orderId:o,to:p,callbackData:u,value:d,signature:F})}else throw vt(e)?new M({orderId:o,to:p,callbackData:u,value:d}):new x({orderId:o,to:p,callbackData:u,value:d})}}),"adaptWalletToCaptureTxData");var q=class{baseApiUrl;mainnetClient;wallet;Seaport;CryptoPunks;client;EXECUTION_INFO_ABI=[{name:"ExecutionInfo",type:"tuple",components:[{name:"module",type:"address"},{name:"data",type:"bytes"},{name:"value",type:"uint256"}]}];constructor({baseApiUrl:e="https://api.reservoir.tools",wallet:t,Seaport:a,CryptoPunks:n}){this.baseApiUrl=e,this.wallet=t,this.Seaport=a,this.CryptoPunks=n;let{reservoirApiKey:i,infuraApiKey:r}=le();this.client=Lt({chains:[{id:t.chain.id,name:t.chain.name,baseApiUrl:e,active:!0}],apiKey:i,source:"gondi.xyz"}),this.mainnetClient=Rt({chain:Nt,transport:Bt(`https://mainnet.infura.io/v3/${r}`)})}async getAsk({orderId:e}){return fetch(`${this.baseApiUrl}/orders/asks/v5?ids=${e}&includeRawData=true`).then(t=>t.json()).then(({orders:t})=>{if(!t)throw new Error(`Order ${e} is not available anymore`);return t[0]})}async getBid({orderId:e}){return fetch(`${this.baseApiUrl}/orders/bids/v6?ids=${e}&includeRawData=true`).then(t=>t.json()).then(({orders:t})=>{if(!t)throw new Error(`Order ${e} is not available anymore`);return t[0]})}generateExpectedCurrencyPriceObject(e,t){return{[t]:{raw:e,currencyAddress:t,currencyDecimals:18}}}encodeExecutionData({module:e,data:t,value:a}){return wt(this.EXECUTION_INFO_ABI,[{module:e,data:t,value:a}])}async generateMatchOrdersExecutionData({askOrBid:e,signature:t,side:a="ask"}){let n={parameters:{...e.rawData,totalOriginalConsiderationItems:BigInt(e.rawData.consideration.length)},signature:t},i=this.Seaport.generateInverseOrder(n.parameters),r={parameters:i,signature:await this.Seaport.signOrder(i)},o=this.Seaport.generateFulfillmentsForOrderAndInverse(n.parameters),p=ht({abi:R,functionName:"matchOrders",args:[[n,r],o]}),u=a==="ask"?n.parameters.consideration.reduce((d,m)=>d+(m.itemType===0?BigInt(m.endAmount):0n),0n):BigInt(e.price.netAmount.raw);return{callbackData:this.encodeExecutionData({module:this.Seaport.address,data:p,value:u}),value:u,isSeaportCall:!0}}async buyTokens(e){let{ETH_ADDRESS:t}=P(),a=e.reduce((n,i)=>n+i.price,0n);return this.client?.actions.buyToken({items:e.map(n=>({token:`${n.collectionContractAddress}:${n.tokenId}`,quantity:1,exactOrderSource:n.orderSource})),expectedPrice:this.generateExpectedCurrencyPriceObject(a,t),wallet:this.wallet,onProgress:()=>null,precheck:!1,options:{excludeEOA:!0,skipBalanceCheck:!0}})}async getExecutionDataForBuyToken({collectionContractAddress:e,tokenId:t,price:a,exactOrderSource:n}){let i=te(this.wallet,n),{ETH_ADDRESS:r}=P();try{throw await this.client?.actions.buyToken({items:[{token:`${e}:${t}`,quantity:1,exactOrderSource:n}],expectedPrice:this.generateExpectedCurrencyPriceObject(a,r),wallet:i,onProgress:()=>null,precheck:!1,options:{excludeEOA:!0,skipBalanceCheck:!0}}),new Error("This should never happen since we will throw inside the wallet tx")}catch(o){if(o instanceof O){let{orderId:p,signature:u}=o,d=await this.getAsk({orderId:p});return this.generateMatchOrdersExecutionData({askOrBid:d,signature:u})}else if(o instanceof M){let{value:p}=o,u=await this.CryptoPunks.encodeBuyPunk(t);return{callbackData:this.encodeExecutionData({module:this.CryptoPunks.address,data:u,value:p}),value:p,isSeaportCall:!1}}else if(o instanceof x){let{to:p,callbackData:u,value:d}=o;return{callbackData:this.encodeExecutionData({module:p,data:u,value:d}),value:d,isSeaportCall:!1}}else throw new Error(`No available offer for price ${a}`)}}async getCallbackDataForSellToken({collectionContractAddress:e,tokenId:t,price:a,exactOrderSource:n,leverageAddress:i}){let r=te(this.wallet,n),{WETH_ADDRESS:o}=P(),u=await _t({abi:W,address:e,publicClient:this.mainnetClient}).read.ownerOf([t]);try{throw await this.client?.actions.acceptOffer({items:[{token:`${e}:${t}`,quantity:1,exactOrderSource:n}],expectedPrice:this.generateExpectedCurrencyPriceObject(a,o),wallet:r,onProgress:()=>null,precheck:!1,options:{excludeEOA:!0,taker:ee(n)?u:i}}),new Error("This should never happen since we will throw inside the wallet tx")}catch(d){if(d instanceof O){let{orderId:m,signature:g}=d,F=await this.getBid({orderId:m});return this.generateMatchOrdersExecutionData({askOrBid:F,signature:g,side:"bid"})}else if(d instanceof x){let{orderId:m,to:g,callbackData:F}=d,A=await this.getBid({orderId:m});return{callbackData:this.encodeExecutionData({module:g,data:F,value:BigInt(A.price?.netAmount?.raw??0n)}),value:BigInt(A.price?.netAmount?.raw??0n),isSeaportCall:!1}}else throw new Error(`No available offer for price ${a}`)}}};l(q,"Reservoir");var z=class{contracts;wallet;bcClient;api;reservoir;constructor({wallet:e,apiClient:t,reservoirBaseApiUrl:a}){this.wallet=e,this.bcClient=kt({chain:e.chain,transport:()=>Et(e.transport)}),this.contracts=new V(this.bcClient,e),this.api=new U({wallet:e,apiClient:t}),this.reservoir=new q({baseApiUrl:a,wallet:e,Seaport:this.contracts.Seaport,CryptoPunks:this.contracts.CryptoPunks})}async makeSingleNftOffer(e){return await this._makeSingleNftOffer(e)}async _makeSingleNftOffer(e,t){let a=t?this.contracts.Msl(t):this.contracts.MultiSourceLoanV5,n=a.address,i={...e,lenderAddress:this.wallet.account?.address,signerAddress:this.wallet.account?.address,borrowerAddress:e.borrowerAddress??b,requiresLiquidation:!!e.requiresLiquidation,contractAddress:n,offerValidators:[]},r=await this.api.generateSingleNftOfferHash({offerInput:i}),{offerHash:o,offerId:p,validators:u,lenderAddress:d,signerAddress:m,borrowerAddress:g}=r.offer,F=r.offer.nft.collection?.contractData?.contractAddress;if(F===void 0)throw new Error("Invalid nft");let A={...i,lender:d??i.lenderAddress,signer:m??i.signerAddress,borrower:g??i.borrowerAddress,nftCollateralTokenId:r.offer.nft.tokenId,nftCollateralAddress:F,validators:u,offerId:p},Q=await a.signOffer({verifyingContract:i.contractAddress,structToSign:A}),G={...i,offerValidators:u.map(h=>({arguments:h.arguments,validator:h.validator})),offerHash:o??I,offerId:p,signature:Q};return await this.api.saveSingleNftOffer(G)}async makeCollectionOffer(e){return await this._makeCollectionOffer(e)}async _makeCollectionOffer(e,t){let a=t?this.contracts.Msl(t):this.contracts.MultiSourceLoanV5,n=a.address,i={...e,lenderAddress:this.wallet.account?.address,signerAddress:this.wallet.account?.address,borrowerAddress:e.borrowerAddress??b,requiresLiquidation:!!e.requiresLiquidation,contractAddress:n,offerValidators:[{validator:b,arguments:ge}]},r=await this.api.generateCollectionOfferHash({offerInput:i}),o=r.offer.collection.contractData?.contractAddress;if(o===void 0)throw new Error("Invalid collection");let{offerHash:p,offerId:u,validators:d,lenderAddress:m,signerAddress:g,borrowerAddress:F}=r.offer,A={...i,lender:m??i.lenderAddress,signer:g??i.signerAddress,borrower:F??i.borrowerAddress,nftCollateralTokenId:0n,nftCollateralAddress:o,validators:d,offerId:u},Q=await a.signOffer({verifyingContract:i.contractAddress,structToSign:A}),G={...i,offerValidators:d.map(h=>({arguments:h.arguments,validator:h.validator})),offerHash:p??I,offerId:u,signature:Q};return await this.api.saveCollectionOffer(G)}async makeSaleOffer({collectionContractAddress:e,tokenId:t,price:a,expirationTime:n}){this.contracts.Seaport.generateOrderFromSaleOffer({collectionContractAddress:e,tokenId:t,price:a,expirationTime:n})}async cancelSaleOffer({saleOffer:e}){return this.contracts.Seaport.cancel({orderComponents:e})}async cancelOffer({id:e,contractAddress:t}){return this.contracts.Msl(t).cancelOffer({id:e})}async cancelAllOffers({minId:e,contractAddress:t}){return this.contracts.Msl(t).cancelAllOffers({minId:e})}async hideOffer({id:e,contractAddress:t}){return this.api.hideOffer({contract:t,id:e.toString()})}async unhideOffer({id:e,contractAddress:t}){return this.api.unhideOffer({contract:t,id:e.toString()})}async makeRefinanceOffer({renegotiation:e,contractAddress:t,skipSignature:a}){let n={lenderAddress:this.wallet.account?.address,signerAddress:this.wallet.account?.address,...e},i=await this.api.generateRenegotiationOfferHash({renegotiationInput:n}),{renegotiationId:r,offerHash:o,loanId:p,lenderAddress:u,signerAddress:d}=i.offer,m={...n,fee:n.feeAmount,lender:u??n.lenderAddress,signer:d??n.signerAddress??b,strictImprovement:!1,loanId:p,renegotiationId:r};if(a)return{...n,offerHash:o??I,signature:I,renegotiationId:r};let F=await this.contracts.Msl(t).signRenegotiationOffer({verifyingContract:t,structToSign:m}),A={...n,signature:F,offerHash:o??I,renegotiationId:r};return await this.api.saveRefinanceOffer(A)}async cancelRefinanceOffer({id:e,contractAddress:t}){return this.contracts.Msl(t).cancelRefinanceOffer({id:e})}async hideRenegotiationOffer({id:e,contractAddress:t}){return this.api.hideRenegotiationOffer({id:e.toString(),contractAddress:t})}async unhideRenegotiationOffer({id:e,contractAddress:t}){return this.api.unhideRenegotiationOffer({id:e.toString(),contractAddress:t})}async cancelAllRenegotiations({minId:e,contractAddress:t}){return this.contracts.Msl(t).cancelAllRenegotiations({minId:e})}async emitLoan({offer:e,tokenId:t,amount:a,expirationTime:n}){let i={...e,lender:e.lenderAddress,borrower:e.borrowerAddress,signer:e.signerAddress??b,validators:e.offerValidators,requiresLiquidation:!!e.requiresLiquidation};return this.contracts.Msl(e.contractAddress).emitLoan({offer:i,signature:i.signature,tokenId:t,amount:a??i.principalAmount,expirationTime:n??BigInt(L(Date.now())+ce)})}async repayLoan({loan:e,nftReceiver:t}){return this.contracts.Msl(e.contractAddress).repayLoan({loan:e,nftReceiver:t})}async offers({limit:e=20,cursor:t,sortBy:a={field:"CREATED_DATE",order:"DESC"},filterBy:n={}}){let{status:i,...r}=n;return await this.api.listOffers({first:e,after:t,sortBy:a,statuses:i,...r})}async loans({limit:e=20,...t}){return await this.api.listLoans({first:e,...t})}async list({nft:e}){return await this.api.listNft({nftId:e})}async unlist({nft:e}){return await this.api.unlistNft({nftId:e})}async listings({collections:e,user:t,marketPlaces:a=["GONDI"],limit:n=20,cursor:i}){let{result:{edges:r,pageInfo:o}}=await this.api.listListings({collections:e,userFilter:t,marketplaceNames:a,after:i,first:n});return{cursor:o.endCursor,listings:r.map(p=>p.node)}}async nftId(e){let t;if(e.slug&&(t=await this.api.nftIdBySlugTokenId(e)),e.contractAddress&&(t=await this.api.nftIdByContractAddressAndTokenId(e)),!t?.nft)throw new Error(`invalid nft ${e}`);return Number(t.nft.id)}async collectionId(e){let t;if(e.slug){if(t=await this.api.collectionIdBySlug(e),!t?.collection)throw new Error(`invalid collection ${e}`);return Number(t.collection.id)}if(e.contractAddress){if(t=await this.api.collectionsIdByContractAddress(e),!t?.collections)throw new Error(`invalid collection ${e}`);return t.collections.map(a=>Number(a.id))}}async getRemainingLockupSeconds({loan:e}){return this.contracts.Msl(e.contractAddress).getRemainingLockupSeconds({loan:e})}async refinanceFullLoan({offer:e,loan:t}){let a={...e,loanId:t.source[0].loanId,strictImprovement:e.strictImprovement??!1,lender:e.lenderAddress,signer:e.signerAddress??b,fee:e.feeAmount};return this.contracts.Msl(t.contractAddress).refinanceFullLoan({offer:a,loan:t,signature:e.signature})}async refinancePartialLoan({offer:e,loan:t}){let a={...e,loanId:t.source[0].loanId,strictImprovement:e.strictImprovement??!1,lender:e.lenderAddress,signer:e.signerAddress??b,fee:e.feeAmount};return this.contracts.Msl(t.contractAddress).refinancePartialLoan({offer:a,loan:t})}async liquidateLoan(e){return this.contracts.Msl(e.contractAddress).liquidateLoan({loan:e})}async placeBid({collectionContractAddress:e,tokenId:t,bid:a,auction:n}){return this.contracts.All(n.loanAddress).placeBid({collectionContractAddress:e,tokenId:t,bid:a,auction:n})}async settleAuction({loan:e,auction:t}){return this.contracts.All(t.loanAddress).settleAuction({loan:e,auction:t})}async buy(e){return this.reservoir.buyTokens(e)}async leverageBuy({leverageBuyData:e}){let t=await Promise.all(e.map(i=>this.reservoir.getExecutionDataForBuyToken({collectionContractAddress:i.nft.collectionContractAddress,tokenId:i.nft.tokenId,price:i.nft.price,exactOrderSource:i.nft.orderSource}))),a=t.reduce((i,{value:r},o)=>i+r-e[o].amount+e[o].offer.fee,0n),n=e.map((i,r)=>({...i,callbackData:t[r].callbackData}));return this.contracts.Leverage.buy({leverageBuyData:n,ethToSend:a<0n?0n:a})}async leverageSell({loan:e,price:t,orderSource:a}){let n=await this.reservoir.getCallbackDataForSellToken({collectionContractAddress:e.nftCollateralAddress,tokenId:e.nftCollateralTokenId,price:t,exactOrderSource:a,leverageAddress:this.contracts.Leverage.address}),i=n.isSeaportCall;return this.contracts.Leverage.sell({loan:e,callbackData:n.callbackData,shouldDelegate:i})}async getOwner({nftAddress:e,tokenId:t}){return this.contracts.ERC721(e).read.ownerOf([t])}async isApprovedNFTForAll({nftAddress:e,to:t=this.contracts.MultiSourceLoanV5.address}){return this.contracts.ERC721(e).read.isApprovedForAll([this.wallet.account?.address,t])}async approveNFTForAll({nftAddress:e,to:t=this.contracts.MultiSourceLoanV5.address}){let a=this.contracts.ERC721(e),n=await a.write.setApprovalForAll([t,!0]);return{txHash:n,waitTxInBlock:async()=>{let i=await this.bcClient.waitForTransactionReceipt({hash:n}),r=await a.createEventFilter.ApprovalForAll({}),o=y(i,r);if(o.length==0)throw new Error("ERC721 approval for all not set");return{...o[0].args,...i}}}}async isApprovedToken({tokenAddress:e,amount:t,to:a=this.contracts.MultiSourceLoanV5.address}){return await this.contracts.ERC20(e).read.allowance([this.wallet.account?.address,a])>=t}async approveToken({tokenAddress:e,amount:t=ve,to:a=this.contracts.MultiSourceLoanV5.address}){let n=this.contracts.ERC20(e),i=await n.write.approve([a,t]);return{txHash:i,waitTxInBlock:async()=>{let r=await this.bcClient.waitForTransactionReceipt({hash:i}),o=await n.createEventFilter.Approval({}),p=y(r,o);if(p.length==0)throw new Error("ERC20 approval not set");return{...p[0].args,...r}}}}};l(z,"Gondi");export{z as Gondi,j as MarketplaceEnum,Me as OfferStatus,Y as OffersSortField,J as Ordering};
|
|
2019
|
+
`;function Ce(s){return{listNft(e,t){return s(st,e,t)},unlistNft(e,t){return s(ot,e,t)},generateCollectionOfferHash(e,t){return s(lt,e,t)},saveCollectionOffer(e,t){return s(pt,e,t)},hideOffer(e,t){return s(dt,e,t)},generateSingleNftOfferHash(e,t){return s(yt,e,t)},saveSingleNftOffer(e,t){return s(ut,e,t)},unhideOffer(e,t){return s(ct,e,t)},generateRenegotiationOfferHash(e,t){return s(mt,e,t)},hideRenegotiationOffer(e,t){return s(ft,e,t)},saveRenegotiationOffer(e,t){return s(Tt,e,t)},unhideRenegotiationOffer(e,t){return s(gt,e,t)},hideSaleOffer(e,t){return s(bt,e,t)},listBestBidsForNft(e,t){return s(Ft,e,t)},saveSignedSaleOffer(e,t){return s(St,e,t)},unhideSaleOffer(e,t){return s(It,e,t)},collectionsIdByContractAddress(e,t){return s(At,e,t)},collectionIdBySlug(e,t){return s(Ot,e,t)},listListings(e,t){return s(xt,e,t)},listLoans(e,t){return s(Mt,e,t)},nftIdByContractAddressAndTokenId(e,t){return s(Pt,e,t)},nftIdBySlugTokenId(e,t){return s(Ct,e,t)},listOffers(e,t){return s(vt,e,t)}}}l(Ce,"getSdk");var Lt=["mutation","query","subscription"];function ve(s){return Ce(l(async(t,a,n)=>{if(n={...n,context:{...n?.context,clientName:"lending"}},t.definitions.filter(r=>r.kind==="OperationDefinition"&&Lt.includes(r.operation)).length!==1)throw new Error("DocumentNode passed to Apollo Client must contain single query or mutation");let i=t.definitions[0];if(i.kind!=="OperationDefinition")throw new Error("DocumentNode passed to Apollo Client must contain single query or mutation");switch(i.operation){case"mutation":{let r=await s.mutate({mutation:t,variables:a,...n,fetchPolicy:"no-cache"});if(r.errors)throw new Error(JSON.stringify(r.errors));if(r.data===void 0||r.data===null)throw new Error("No data presented in the GraphQL response");return r.data}case"query":{let r=await s.query({query:t,variables:a,...n});if(r.errors)throw new Error(JSON.stringify(r.errors));if(r.data===void 0||r.data===null)throw new Error("No data presented in the GraphQL response");return r.data}case"subscription":throw new Error("Subscription requests through SDK interface are not supported");default:throw new Error("Operation not supported")}},"requester"))}l(ve,"getSdkApollo");var q=class{api;generateSingleNftOfferHash;generateCollectionOfferHash;generateRenegotiationOfferHash;listListings;nftIdBySlugTokenId;nftIdByContractAddressAndTokenId;collectionIdBySlug;collectionsIdByContractAddress;listNft;unlistNft;hideOffer;hideRenegotiationOffer;unhideOffer;unhideRenegotiationOffer;saveSignedSaleOffer;hideSaleOffer;unhideSaleOffer;listBestBidsForNft;constructor({apiClient:e,wallet:t}){let a=e??Me(t);this.api=ve(a),this.generateSingleNftOfferHash=this.api.generateSingleNftOfferHash,this.generateCollectionOfferHash=this.api.generateCollectionOfferHash,this.generateRenegotiationOfferHash=this.api.generateRenegotiationOfferHash,this.listListings=this.api.listListings,this.nftIdBySlugTokenId=this.api.nftIdBySlugTokenId,this.nftIdByContractAddressAndTokenId=this.api.nftIdByContractAddressAndTokenId,this.collectionIdBySlug=this.api.collectionIdBySlug,this.collectionsIdByContractAddress=this.api.collectionsIdByContractAddress,this.listNft=this.api.listNft,this.unlistNft=this.api.unlistNft,this.saveSignedSaleOffer=this.api.saveSignedSaleOffer,this.hideOffer=this.api.hideOffer,this.hideRenegotiationOffer=this.api.hideRenegotiationOffer,this.unhideOffer=this.api.unhideOffer,this.unhideRenegotiationOffer=this.api.unhideRenegotiationOffer,this.hideSaleOffer=this.api.hideSaleOffer,this.unhideSaleOffer=this.api.unhideSaleOffer,this.listBestBidsForNft=this.api.listBestBidsForNft}async saveSingleNftOffer(e){let t={...e,borrowerAddress:e.borrowerAddress||F},a=await this.api.saveSingleNftOffer({offer:t}),n=a.offer.nft.collection?.contractData?.contractAddress||F;return{id:a.offer.id,nftCollateralAddress:n,nftCollateralTokenId:a.offer.nft.tokenId,...e}}async saveCollectionOffer(e){let t={...e,borrowerAddress:e.borrowerAddress||F},a=await this.api.saveCollectionOffer({offer:t}),n=a.offer.collection?.contractData?.contractAddress||F;return{id:a.offer.id,nftCollateralAddress:n,nftCollateralTokenId:0n,...e}}async saveRefinanceOffer(e){return{id:(await this.api.saveRenegotiationOffer({offer:e})).offer.id,...e}}async listOffers(e){let{result:{edges:t,pageInfo:a}}=await this.api.listOffers({...e}),n=t.map(i=>{let{__typename:r,lenderAddress:o,borrowerAddress:p,signerAddress:u,...d}=i.node;return{type:r,lender:o,borrower:p,signer:u,...d}});return{cursor:a.endCursor,offers:n}}async listLoans(e){let{loans:{edges:t,pageInfo:a}}=await this.api.listLoans({...e}),n=t.map(i=>{let{__typename:r,...o}=i.node;return{type:r,...o}});return{cursor:a.endCursor,loans:n}}};l(q,"Api");var Le=115792089237316195423570985008687907853269984665640564039457584007913129639935n;import{createClient as Nt}from"@reservoir0x/reservoir-sdk";import{createPublicClient as kt,encodeAbiParameters as Et,encodeFunctionData as Dt,getContract as Ht,http as Vt}from"viem";import{mainnet as Kt}from"viem/chains";var w=class{orderId;to;callbackData;value;constructor({orderId:e,to:t,callbackData:a,value:n}){this.orderId=e,this.to=t,this.callbackData=a,this.value=n}};l(w,"InterruptedSendTransactionStepError");var M=class extends w{signature;constructor({orderId:e,to:t,callbackData:a,value:n,signature:i}){super({orderId:e,to:t,callbackData:a,value:n}),this.signature=i}};l(M,"InterruptedSeaportSendTransactionStepError");var C=class extends w{};l(C,"InterruptedCryptoPunksSendTransactionStepError");var P=class extends w{};l(P,"InterruptedGenericSendTransactionStepError");import{adaptViemWallet as ht}from"@reservoir0x/reservoir-sdk";import{decodeFunctionData as wt,zeroAddress as _t}from"viem";var ee=l(s=>s==="opensea.io","isOpensea"),Bt=l(s=>s==="cryptopunks.app","isCryptopunks"),Re=l(s=>s==="gondi.xyz","isNative"),te=l((s,e)=>({...ht(s),transport:void 0,handleSendTransactionStep:async(n,i,r)=>{if(r.id!=="sale")return console.log(r),oe;let o=i.orderIds?.[0]??"",p=i.data.to,u=i.data.data,d=BigInt(i.data.value??0);if(ee(e)){let g=wt({abi:R,data:i.data.data})?.args?.[0],S=Array.isArray(g)?g[0].signature:typeof g=="object"?g.signature:_t;throw new M({orderId:o,to:p,callbackData:u,value:d,signature:S})}else throw Bt(e)?new C({orderId:o,to:p,callbackData:u,value:d}):new P({orderId:o,to:p,callbackData:u,value:d})}}),"adaptWalletToCaptureTxData");var W=class{baseApiUrl;mainnetClient;wallet;Seaport;CryptoPunks;client;EXECUTION_INFO_ABI=[{name:"ExecutionInfo",type:"tuple",components:[{name:"module",type:"address"},{name:"data",type:"bytes"},{name:"value",type:"uint256"}]}];constructor({baseApiUrl:e="https://api.reservoir.tools",wallet:t,Seaport:a,CryptoPunks:n}){this.baseApiUrl=e,this.wallet=t,this.Seaport=a,this.CryptoPunks=n;let{reservoirApiKey:i,infuraApiKey:r}=le();this.client=Nt({chains:[{id:t.chain.id,name:t.chain.name,baseApiUrl:e,active:!0}],apiKey:i,source:"gondi.xyz"}),this.mainnetClient=kt({chain:Kt,transport:Vt(`https://mainnet.infura.io/v3/${r}`)})}async getAsk({orderId:e}){return fetch(`${this.baseApiUrl}/orders/asks/v5?ids=${e}&includeRawData=true`).then(t=>t.json()).then(({orders:t})=>{if(!t)throw new Error(`Order ${e} is not available anymore`);return t[0]})}async getBid({orderId:e}){return fetch(`${this.baseApiUrl}/orders/bids/v6?ids=${e}&includeRawData=true`).then(t=>t.json()).then(({orders:t})=>{if(!t)throw new Error(`Order ${e} is not available anymore`);return t[0]})}generateExpectedCurrencyPriceObject(e,t){return{[t]:{raw:e,currencyAddress:t,currencyDecimals:18}}}encodeExecutionData({module:e,data:t,value:a}){return Et(this.EXECUTION_INFO_ABI,[{module:e,data:t,value:a}])}async generateMatchOrdersExecutionData({askOrBid:e,signature:t,side:a="ask"}){let n={parameters:{...e.rawData,totalOriginalConsiderationItems:BigInt(e.rawData.consideration.length)},signature:t},i=await this.Seaport.generateInverseOrder(n.parameters),r={parameters:i,signature:await this.Seaport.signOrder(i)},o=this.Seaport.generateFulfillmentsForOrderAndInverse(n.parameters),p=Dt({abi:R,functionName:"matchOrders",args:[[n,r],o]}),u=a==="ask"?n.parameters.consideration.reduce((d,m)=>d+(m.itemType===0?BigInt(m.endAmount):0n),0n):BigInt(e.price.netAmount.raw);return{callbackData:this.encodeExecutionData({module:this.Seaport.address,data:p,value:u}),value:u,isSeaportCall:!0}}async buyTokens(e){let{ETH_ADDRESS:t}=I(),a=e.reduce((n,i)=>n+i.price,0n);return this.client?.actions.buyToken({items:e.map(n=>({token:`${n.collectionContractAddress}:${n.tokenId}`,quantity:1,exactOrderSource:n.orderSource})),expectedPrice:this.generateExpectedCurrencyPriceObject(a,t),wallet:this.wallet,onProgress:()=>null,precheck:!1,options:{excludeEOA:!0,skipBalanceCheck:!0}})}async getExecutionDataForBuyToken({collectionContractAddress:e,tokenId:t,price:a,exactOrderSource:n}){let i=te(this.wallet,n),{ETH_ADDRESS:r}=I();try{throw await this.client?.actions.buyToken({items:[{token:`${e}:${t}`,quantity:1,exactOrderSource:n}],expectedPrice:this.generateExpectedCurrencyPriceObject(a,r),wallet:i,onProgress:()=>null,precheck:!1,options:{excludeEOA:!0,skipBalanceCheck:!0}}),new Error("This should never happen since we will throw inside the wallet tx")}catch(o){if(o instanceof M){let{orderId:p,signature:u}=o,d=await this.getAsk({orderId:p});return this.generateMatchOrdersExecutionData({askOrBid:d,signature:u})}else if(o instanceof C){let{value:p}=o,u=await this.CryptoPunks.encodeBuyPunk(t);return{callbackData:this.encodeExecutionData({module:this.CryptoPunks.address,data:u,value:p}),value:p,isSeaportCall:!1}}else if(o instanceof P){let{to:p,callbackData:u,value:d}=o;return{callbackData:this.encodeExecutionData({module:p,data:u,value:d}),value:d,isSeaportCall:!1}}else throw new Error(`No available offer for price ${a}`)}}async getCallbackDataForSellToken({collectionContractAddress:e,tokenId:t,price:a,exactOrderSource:n,leverageAddress:i}){let r=te(this.wallet,n),{WETH_ADDRESS:o}=I(),u=await Ht({abi:$,address:e,publicClient:this.mainnetClient}).read.ownerOf([t]);try{throw await this.client?.actions.acceptOffer({items:[{token:`${e}:${t}`,quantity:1,exactOrderSource:n}],expectedPrice:this.generateExpectedCurrencyPriceObject(a,o),wallet:r,onProgress:()=>null,precheck:!1,options:{excludeEOA:!0,taker:ee(n)?u:i}}),new Error("This should never happen since we will throw inside the wallet tx")}catch(d){if(d instanceof M){let{orderId:m,signature:g}=d,S=await this.getBid({orderId:m});return this.generateMatchOrdersExecutionData({askOrBid:S,signature:g,side:"bid"})}else if(d instanceof P){let{orderId:m,to:g,callbackData:S}=d,O=await this.getBid({orderId:m});return{callbackData:this.encodeExecutionData({module:g,data:S,value:BigInt(O.price?.netAmount?.raw??0n)}),value:BigInt(O.price?.netAmount?.raw??0n),isSeaportCall:!1}}else throw new Error(`No available offer for price ${a}`)}}};l(W,"Reservoir");var Q=class{contracts;wallet;bcClient;api;reservoir;constructor({wallet:e,apiClient:t,reservoirBaseApiUrl:a}){this.wallet=e,this.bcClient=Ut({chain:e.chain,transport:()=>qt(e.transport)}),this.contracts=new K(this.bcClient,e),this.api=new q({wallet:e,apiClient:t}),this.reservoir=new W({baseApiUrl:a,wallet:e,Seaport:this.contracts.Seaport,CryptoPunks:this.contracts.CryptoPunks})}async makeSingleNftOffer(e){return await this._makeSingleNftOffer(e)}async _makeSingleNftOffer(e,t){let a=t?this.contracts.Msl(t):this.contracts.MultiSourceLoanV5,n=a.address,i={...e,lenderAddress:this.wallet.account?.address,signerAddress:this.wallet.account?.address,borrowerAddress:e.borrowerAddress??F,requiresLiquidation:!!e.requiresLiquidation,contractAddress:n,offerValidators:[]},r=await this.api.generateSingleNftOfferHash({offerInput:i}),{offerHash:o,offerId:p,validators:u,lenderAddress:d,signerAddress:m,borrowerAddress:g}=r.offer,S=r.offer.nft.collection?.contractData?.contractAddress;if(S===void 0)throw new Error("Invalid nft");let O={...i,lender:d??i.lenderAddress,signer:m??i.signerAddress,borrower:g??i.borrowerAddress,nftCollateralTokenId:r.offer.nft.tokenId,nftCollateralAddress:S,validators:u,offerId:p},z=await a.signOffer({verifyingContract:i.contractAddress,structToSign:O}),G={...i,offerValidators:u.map(_=>({arguments:_.arguments,validator:_.validator})),offerHash:o??b,offerId:p,signature:z};return await this.api.saveSingleNftOffer(G)}async makeCollectionOffer(e){return await this._makeCollectionOffer(e)}async _makeCollectionOffer(e,t){let a=t?this.contracts.Msl(t):this.contracts.MultiSourceLoanV5,n=a.address,i={...e,lenderAddress:this.wallet.account?.address,signerAddress:this.wallet.account?.address,borrowerAddress:e.borrowerAddress??F,requiresLiquidation:!!e.requiresLiquidation,contractAddress:n,offerValidators:[{validator:F,arguments:be}]},r=await this.api.generateCollectionOfferHash({offerInput:i}),o=r.offer.collection.contractData?.contractAddress;if(o===void 0)throw new Error("Invalid collection");let{offerHash:p,offerId:u,validators:d,lenderAddress:m,signerAddress:g,borrowerAddress:S}=r.offer,O={...i,lender:m??i.lenderAddress,signer:g??i.signerAddress,borrower:S??i.borrowerAddress,nftCollateralTokenId:0n,nftCollateralAddress:o,validators:d,offerId:u},z=await a.signOffer({verifyingContract:i.contractAddress,structToSign:O}),G={...i,offerValidators:d.map(_=>({arguments:_.arguments,validator:_.validator})),offerHash:p??b,offerId:u,signature:z};return await this.api.saveCollectionOffer(G)}async makeSaleOffer({collectionContractAddress:e,tokenId:t,price:a,expirationTime:n}){let{parameters:{totalOriginalConsiderationItems:i,...r},signature:o}=await this.contracts.Seaport.generateOrderFromSaleOffer({collectionContractAddress:e,tokenId:t,price:a,expirationTime:n});return this.api.saveSignedSaleOffer({offer:{...r,signature:o}})}async cancelSaleOffer({saleOffer:e}){return this.contracts.Seaport.cancel({orderComponents:e})}async cancelOffer({id:e,contractAddress:t}){return this.contracts.Msl(t).cancelOffer({id:e})}async cancelAllOffers({minId:e,contractAddress:t}){return this.contracts.Msl(t).cancelAllOffers({minId:e})}async hideOffer({id:e,contractAddress:t}){return this.api.hideOffer({contract:t,id:e.toString()})}async unhideOffer({id:e,contractAddress:t}){return this.api.unhideOffer({contract:t,id:e.toString()})}async makeRefinanceOffer({renegotiation:e,contractAddress:t,skipSignature:a}){let n={lenderAddress:this.wallet.account?.address,signerAddress:this.wallet.account?.address,...e},i=await this.api.generateRenegotiationOfferHash({renegotiationInput:n}),{renegotiationId:r,offerHash:o,loanId:p,lenderAddress:u,signerAddress:d}=i.offer,m={...n,fee:n.feeAmount,lender:u??n.lenderAddress,signer:d??n.signerAddress??F,strictImprovement:!1,loanId:p,renegotiationId:r};if(a)return{...n,offerHash:o??b,signature:b,renegotiationId:r};let S=await this.contracts.Msl(t).signRenegotiationOffer({verifyingContract:t,structToSign:m}),O={...n,signature:S,offerHash:o??b,renegotiationId:r};return await this.api.saveRefinanceOffer(O)}async cancelRefinanceOffer({id:e,contractAddress:t}){return this.contracts.Msl(t).cancelRefinanceOffer({id:e})}async hideRenegotiationOffer({id:e,contractAddress:t}){return this.api.hideRenegotiationOffer({id:e.toString(),contractAddress:t})}async unhideRenegotiationOffer({id:e,contractAddress:t}){return this.api.unhideRenegotiationOffer({id:e.toString(),contractAddress:t})}async hideSaleOffer({id:e}){return this.api.hideSaleOffer({id:e})}async unhideSaleOffer({id:e}){return this.api.unhideSaleOffer({id:e})}async cancelAllRenegotiations({minId:e,contractAddress:t}){return this.contracts.Msl(t).cancelAllRenegotiations({minId:e})}async emitLoan({offer:e,tokenId:t,amount:a,expirationTime:n}){let i={...e,lender:e.lenderAddress,borrower:e.borrowerAddress,signer:e.signerAddress??F,validators:e.offerValidators,requiresLiquidation:!!e.requiresLiquidation};return this.contracts.Msl(e.contractAddress).emitLoan({offer:i,signature:i.signature,tokenId:t,amount:a??i.principalAmount,expirationTime:n??BigInt(x(Date.now())+ce)})}async repayLoan({loan:e,nftReceiver:t}){return this.contracts.Msl(e.contractAddress).repayLoan({loan:e,nftReceiver:t})}async offers({limit:e=20,cursor:t,sortBy:a={field:"CREATED_DATE",order:"DESC"},filterBy:n={}}){let{status:i,...r}=n;return await this.api.listOffers({first:e,after:t,sortBy:a,statuses:i,...r})}async loans({limit:e=20,...t}){return await this.api.listLoans({first:e,...t})}async list({nft:e}){return await this.api.listNft({nftId:e})}async unlist({nft:e}){return await this.api.unlistNft({nftId:e})}async listings({collections:e,user:t,marketPlaces:a=["GONDI"],limit:n=20,cursor:i}){let{result:{edges:r,pageInfo:o}}=await this.api.listListings({collections:e,userFilter:t,marketplaceNames:a,after:i,first:n});return{cursor:o.endCursor,listings:r.map(p=>p.node)}}async nftId(e){let t;if(e.slug&&(t=await this.api.nftIdBySlugTokenId(e)),e.contractAddress&&(t=await this.api.nftIdByContractAddressAndTokenId(e)),!t?.nft)throw new Error(`invalid nft ${e}`);return Number(t.nft.id)}async collectionId(e){let t;if(e.slug){if(t=await this.api.collectionIdBySlug(e),!t?.collection)throw new Error(`invalid collection ${e}`);return Number(t.collection.id)}if(e.contractAddress){if(t=await this.api.collectionsIdByContractAddress(e),!t?.collections)throw new Error(`invalid collection ${e}`);return t.collections.map(a=>Number(a.id))}}async getRemainingLockupSeconds({loan:e}){return this.contracts.Msl(e.contractAddress).getRemainingLockupSeconds({loan:e})}async getBestNativeSaleOffer({contractAddress:e,tokenId:t}){let{WETH_ADDRESS:a}=I(),n=await this.nftId({contractAddress:e,tokenId:t}),{bids:i}=await this.api.listBestBidsForNft({nftId:n,currencyAddress:a});return i.find(o=>o.marketPlace===fe)??null}async refinanceFullLoan({offer:e,loan:t}){let a={...e,loanId:t.source[0].loanId,strictImprovement:e.strictImprovement??!1,lender:e.lenderAddress,signer:e.signerAddress??F,fee:e.feeAmount};return this.contracts.Msl(t.contractAddress).refinanceFullLoan({offer:a,loan:t,signature:e.signature})}async refinancePartialLoan({offer:e,loan:t}){let a={...e,loanId:t.source[0].loanId,strictImprovement:e.strictImprovement??!1,lender:e.lenderAddress,signer:e.signerAddress??F,fee:e.feeAmount};return this.contracts.Msl(t.contractAddress).refinancePartialLoan({offer:a,loan:t})}async liquidateLoan(e){return this.contracts.Msl(e.contractAddress).liquidateLoan({loan:e})}async placeBid({collectionContractAddress:e,tokenId:t,bid:a,auction:n}){return this.contracts.All(n.loanAddress).placeBid({collectionContractAddress:e,tokenId:t,bid:a,auction:n})}async settleAuction({loan:e,auction:t}){return this.contracts.All(t.loanAddress).settleAuction({loan:e,auction:t})}async buy(e){return this.reservoir.buyTokens(e)}async leverageBuy({leverageBuyData:e}){let t=await Promise.all(e.map(i=>this.reservoir.getExecutionDataForBuyToken({collectionContractAddress:i.nft.collectionContractAddress,tokenId:i.nft.tokenId,price:i.nft.price,exactOrderSource:i.nft.orderSource}))),a=t.reduce((i,{value:r},o)=>i+r-e[o].amount+e[o].offer.fee,0n),n=e.map((i,r)=>({...i,callbackData:t[r].callbackData}));return this.contracts.Leverage.buy({leverageBuyData:n,ethToSend:a<0n?0n:a})}async leverageSell({loan:e,price:t,orderSource:a}){let n=null;if(Re(a)){let r=await this.getBestNativeSaleOffer({contractAddress:e.nftCollateralAddress,tokenId:e.nftCollateralTokenId});if(!r||r.netAmount<t)throw new Error(`No native bid for price ${t}`);n=await this.reservoir.generateMatchOrdersExecutionData({askOrBid:{rawData:await this.contracts.Seaport.recoverOrderFromNativeBid(r),price:{netAmount:{raw:String(t)}}},signature:r.signature,side:"bid"})}else n=await this.reservoir.getCallbackDataForSellToken({collectionContractAddress:e.nftCollateralAddress,tokenId:e.nftCollateralTokenId,price:t,exactOrderSource:a,leverageAddress:this.contracts.Leverage.address});let i=n.isSeaportCall;return this.contracts.Leverage.sell({loan:e,callbackData:n.callbackData,shouldDelegate:i})}async getOwner({nftAddress:e,tokenId:t}){return this.contracts.ERC721(e).read.ownerOf([t])}async isApprovedNFTForAll({nftAddress:e,to:t=this.contracts.MultiSourceLoanV5.address}){return this.contracts.ERC721(e).read.isApprovedForAll([this.wallet.account?.address,t])}async approveNFTForAll({nftAddress:e,to:t=this.contracts.MultiSourceLoanV5.address}){let a=this.contracts.ERC721(e),n=await a.write.setApprovalForAll([t,!0]);return{txHash:n,waitTxInBlock:async()=>{let i=await this.bcClient.waitForTransactionReceipt({hash:n}),r=await a.createEventFilter.ApprovalForAll({}),o=y(i,r);if(o.length==0)throw new Error("ERC721 approval for all not set");return{...o[0].args,...i}}}}async isApprovedToken({tokenAddress:e,amount:t,to:a=this.contracts.MultiSourceLoanV5.address}){return await this.contracts.ERC20(e).read.allowance([this.wallet.account?.address,a])>=t}async approveToken({tokenAddress:e,amount:t=Le,to:a=this.contracts.MultiSourceLoanV5.address}){let n=this.contracts.ERC20(e),i=await n.write.approve([a,t]);return{txHash:i,waitTxInBlock:async()=>{let r=await this.bcClient.waitForTransactionReceipt({hash:i}),o=await n.createEventFilter.Approval({}),p=y(r,o);if(p.length==0)throw new Error("ERC20 approval not set");return{...p[0].args,...r}}}}};l(Q,"Gondi");export{Q as Gondi,j as MarketplaceEnum,Pe as OfferStatus,Y as OffersSortField,J as Ordering};
|
|
1885
2020
|
//# sourceMappingURL=index.mjs.map
|