gondi 0.4.0 → 0.6.0

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.
Files changed (34) hide show
  1. package/dist/index.mjs +622 -708
  2. package/dist/index.mjs.map +4 -4
  3. package/dist/src/{auth.d.ts → api/auth.d.ts} +1 -1
  4. package/dist/src/{graphql → api}/client.d.ts +1 -1
  5. package/dist/src/{api.d.ts → api/index.d.ts} +173 -68
  6. package/dist/src/{graphql → api}/sdk.d.ts +8 -1
  7. package/dist/src/blockchain.d.ts +16 -37
  8. package/dist/src/contracts/AllV4.d.ts +4 -4
  9. package/dist/src/contracts/AllV5.d.ts +4 -4
  10. package/dist/src/contracts/AllV6.d.ts +71 -0
  11. package/dist/src/contracts/{Contract.d.ts → BaseContract.d.ts} +2 -2
  12. package/dist/src/contracts/CryptoPunks.d.ts +3 -4
  13. package/dist/src/contracts/{Leverage.d.ts → LeverageV5.d.ts} +5 -4
  14. package/dist/src/contracts/MslV4.d.ts +12 -12
  15. package/dist/src/contracts/MslV5.d.ts +14 -17
  16. package/dist/src/contracts/MslV6.d.ts +446 -0
  17. package/dist/src/contracts/Seaport.d.ts +4 -4
  18. package/dist/src/contracts/{UserVaultV5.d.ts → UserVault.d.ts} +3 -3
  19. package/dist/src/contracts/index.d.ts +38 -0
  20. package/dist/src/deploys.d.ts +11 -5
  21. package/dist/src/generated/blockchain/v6.d.ts +26979 -0
  22. package/dist/src/generated/graphql/index.d.ts +1531 -1334
  23. package/dist/src/gondi.d.ts +544 -38
  24. package/dist/src/model.d.ts +17 -8
  25. package/dist/src/reservoir/Reservoir.d.ts +1 -1
  26. package/dist/src/reservoir/utils.d.ts +1 -1
  27. package/dist/src/utils/loan.d.ts +109 -0
  28. package/dist/src/utils/number.d.ts +3 -0
  29. package/dist/src/utils/string.d.ts +4 -0
  30. package/dist/src/utils/types.d.ts +5 -0
  31. package/dist/tsconfig.tsbuildinfo +1 -1
  32. package/package.json +2 -2
  33. package/dist/src/const.d.ts +0 -2
  34. package/dist/src/utils.d.ts +0 -73
package/dist/index.mjs CHANGED
@@ -1,12 +1,12 @@
1
- var oe=Object.defineProperty;var De=(s,e,t)=>e in s?oe(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t;var d=(s,e)=>oe(s,"name",{value:e,configurable:!0});var le=(s,e,t)=>(De(s,typeof e!="symbol"?e+"":e,t),t);import{createPublicClient as jt,createTransport as Yt}from"viem";import{decodeEventLog as Xe,encodeEventTopics as Ze,getContract as Ae,zeroAddress as je}from"viem";var de=[{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 pe=[{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"}]}],z=[{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 ye=[{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 x=[{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:[]}];var ue=[{stateMutability:"nonpayable",type:"constructor",inputs:[{name:"currencyManager",internalType:"address",type:"address"},{name:"collectionManager",internalType:"address",type:"address"}]},{type:"error",inputs:[],name:"AssetNotOwnedError"},{type:"error",inputs:[],name:"CollectionNotWhitelistedError"},{type:"error",inputs:[],name:"CurrencyNotWhitelistedError"},{type:"error",inputs:[],name:"LengthMismatchError"},{type:"error",inputs:[{name:"vaultId",internalType:"uint256",type:"uint256"}],name:"NotApprovedError"},{type:"error",inputs:[{name:"vaultId",internalType:"uint256",type:"uint256"}],name:"VaultNotExistsError"},{type:"error",inputs:[],name:"WithdrawingETHError"},{type:"error",inputs:[],name:"WrongMethodError"},{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:"vaultId",internalType:"uint256",type:"uint256",indexed:!1},{name:"token",internalType:"address",type:"address",indexed:!1},{name:"amount",internalType:"uint256",type:"uint256",indexed:!1}],name:"ERC20Deposited"},{type:"event",anonymous:!1,inputs:[{name:"vaultId",internalType:"uint256",type:"uint256",indexed:!1},{name:"token",internalType:"address",type:"address",indexed:!1},{name:"amount",internalType:"uint256",type:"uint256",indexed:!1}],name:"ERC20Withdrawn"},{type:"event",anonymous:!1,inputs:[{name:"vaultId",internalType:"uint256",type:"uint256",indexed:!1},{name:"collection",internalType:"address",type:"address",indexed:!1},{name:"tokenId",internalType:"uint256",type:"uint256",indexed:!1}],name:"ERC721Deposited"},{type:"event",anonymous:!1,inputs:[{name:"vaultId",internalType:"uint256",type:"uint256",indexed:!1},{name:"collection",internalType:"address",type:"address",indexed:!1},{name:"tokenId",internalType:"uint256",type:"uint256",indexed:!1}],name:"ERC721Withdrawn"},{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:"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:"view",type:"function",inputs:[{name:"_vaultId",internalType:"uint256",type:"uint256"},{name:"_token",internalType:"address",type:"address"}],name:"ERC20BalanceOf",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"view",type:"function",inputs:[{name:"_collection",internalType:"address",type:"address"},{name:"_tokenId",internalType:"uint256",type:"uint256"}],name:"ERC721OwnerOf",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"view",type:"function",inputs:[],name:"ETH",outputs:[{name:"",internalType:"address",type:"address"}]},{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:"nonpayable",type:"function",inputs:[{name:"_vaultId",internalType:"uint256",type:"uint256"},{name:"_assetRecipient",internalType:"address",type:"address"}],name:"burn",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_vaultId",internalType:"uint256",type:"uint256"},{name:"_collections",internalType:"address[]",type:"address[]"},{name:"_tokenIds",internalType:"uint256[]",type:"uint256[]"},{name:"_tokens",internalType:"address[]",type:"address[]"}],name:"burnAndWithdraw",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_vaultId",internalType:"uint256",type:"uint256"},{name:"_token",internalType:"address",type:"address"},{name:"_amount",internalType:"uint256",type:"uint256"}],name:"depositERC20",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_vaultId",internalType:"uint256",type:"uint256"},{name:"_collection",internalType:"address",type:"address"},{name:"_tokenId",internalType:"uint256",type:"uint256"}],name:"depositERC721",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_vaultId",internalType:"uint256",type:"uint256"},{name:"_collection",internalType:"address",type:"address"},{name:"_tokenIds",internalType:"uint256[]",type:"uint256[]"}],name:"depositERC721s",outputs:[]},{stateMutability:"payable",type:"function",inputs:[{name:"_vaultId",internalType:"uint256",type:"uint256"}],name:"depositEth",outputs:[]},{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:"nonpayable",type:"function",inputs:[],name:"mint",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{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:"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:"pure",type:"function",inputs:[{name:"_vaultId",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:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"newOwner",internalType:"address",type:"address"}],name:"transferOwnership",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_vaultId",internalType:"uint256",type:"uint256"},{name:"_token",internalType:"address",type:"address"}],name:"withdrawERC20",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_vaultId",internalType:"uint256",type:"uint256"},{name:"_tokens",internalType:"address[]",type:"address[]"}],name:"withdrawERC20s",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_vaultId",internalType:"uint256",type:"uint256"},{name:"_collection",internalType:"address",type:"address"},{name:"_tokenId",internalType:"uint256",type:"uint256"}],name:"withdrawERC721",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_vaultId",internalType:"uint256",type:"uint256"},{name:"_collections",internalType:"address[]",type:"address[]"},{name:"_tokenIds",internalType:"uint256[]",type:"uint256[]"}],name:"withdrawERC721s",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_vaultId",internalType:"uint256",type:"uint256"}],name:"withdrawEth",outputs:[]}];import{encodeAbiParameters as Qe}from"viem";import{isAddress as Ve,zeroAddress as He}from"viem";import{goerli as Ke}from"viem/chains";var Ue=31337,M=d(s=>!s||!Ve(s)?null:s,"ensureAddress"),ce="0xb6dfcbc1661d0c0bced9591d06e964f97d41a35984704ffe61f8e062e43919c8",f=d(s=>s?.id===Ue?{MultiSourceLoanV4Address:M(process.env.GONDI_MULTI_SOURCE_LOAN_V4)??"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9",MultiSourceLoanV5Address:M(process.env.GONDI_MULTI_SOURCE_LOAN_V5)??"0x610178dA211FEF7D417bC0e6FeD39F05609AD788",AuctionLoanLiquidatorV4Address:M(process.env.GONDI_AUCTION_LOAN_LIQUIDATOR_V4)??"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0",AuctionLoanLiquidatorV5Address:M(process.env.GONDI_AUCTION_LOAN_LIQUIDATOR_V5)??"0x8A791620dd6260079BF849Dc5567aDC3F2FdC318",UserVaultV5Address:M(process.env.GONDI_USER_VAULT_V5)??"0x0DCd1Bf9A1b36cE34237eEaFef220932846BCD82",LeverageAddress:M(process.env.GONDI_LEVERAGE)??"0xA51c1fc2f0D1a1b8494Ed1FE312d7C3a78Ed91C0",SeaportAddress:M(process.env.SEAPORT)??"0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",CryptoPunksAddress:M(process.env.CRYPTO_PUNKS)??"0xb47e3cd837ddf8e4c57f05d70ab865de6e193bbb"}:s?.id===Ke.id?{MultiSourceLoanV4Address:"0x60C20627429668F267b5cF55c6605c665C69887D",MultiSourceLoanV5Address:"0xTODO",AuctionLoanLiquidatorV4Address:"0x29C73faa2f9180ea5a7B0bEC243ebc63a5B4f280",AuctionLoanLiquidatorV5Address:"0xTODO",UserVaultV5Address:"0xTODO",LeverageAddress:"0xTODO",SeaportAddress:"0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",CryptoPunksAddress:"0xb47e3cd837ddf8e4c57f05d70ab865de6e193bbb"}:{MultiSourceLoanV4Address:"0xCa5a494Ca20483e21ec1E41FE1D9461Da77595Bd",MultiSourceLoanV5Address:"0x478f6F994C6fb3cf3e444a489b3AD9edB8cCaE16",AuctionLoanLiquidatorV4Address:"0x237e4421C742d843Fdd96D22294D338507e17091",AuctionLoanLiquidatorV5Address:"0x97d34635b605c2f1630d6b4c6c5d222b8a2ca47d",UserVaultV5Address:"0x14a6Dcebb2Bb73aae1b199CCAadA75247b81976D",LeverageAddress:"0x87Ce6e8124fFd68fa721FcC7f35fdA14A11E233e",SeaportAddress:"0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",CryptoPunksAddress:"0xb47e3cd837ddf8e4c57f05d70ab865de6e193bbb"},"getContracts"),me=d(()=>({reservoirApiKey:"5b472f8c-b471-531a-a450-56e428e5a00a",infuraApiKey:"9b7006cb0b0b42f1813ae9418741fbb5"}),"getApiKeys"),A=d(()=>({WETH_ADDRESS:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",ETH_ADDRESS:He,USDC_ADDRESS:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"}),"getCurrencies");var fe=[{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 Te=[{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 qe,createTransport as We,getContract as $e}from"viem";var T=class{abi;address;bcClient;wallet;contract;safeContractWrite;constructor({walletClient:e,address:t,abi:n}){this.wallet=e;let a=qe({transport:()=>We(e.transport)});this.bcClient=a,this.address=t,this.abi=n,this.contract=$e({address:this.address,abi:this.abi,walletClient:e,publicClient:this.bcClient}),this.safeContractWrite=new Proxy({},{get(i,r){return async(o,l={})=>{let{request:p}=await a.simulateContract({address:t,abi:n,functionName:r,args:o,account:e.account,...l});return e.writeContract(p)}}})}};d(T,"Contract");var j=class extends T{constructor({walletClient:e}){let{AuctionLoanLiquidatorV4Address:t}=f(e.chain);super({walletClient:e,address:t,abi:fe})}async placeBid({collectionContractAddress:e,tokenId:t,bid:n}){let a=await this.safeContractWrite.placeBid([e,t,n]);return{txHash:a,waitTxInBlock:async()=>{let i=await this.bcClient.waitForTransactionReceipt({hash:a}),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(a=>[Number(a.loanId),a.lender,a.principalAmount,a.accruedInterest,a.startTime,a.aprBps])},n=await this.safeContractWrite.settleAuction([e.nftCollateralAddress,e.nftCollateralTokenId,Qe(j.LOAN_SETTLEMENT_ENCODE_TYPES,[t])]);return{txHash:n,waitTxInBlock:async()=>{let a=await this.bcClient.waitForTransactionReceipt({hash:n}),i=await this.contract.createEventFilter.AuctionSettled(),r=y(a,i);if(r.length===0)throw new Error("Auction not settled");return{...r[0].args,...a}}}}},w=j;d(w,"AllV4"),le(w,"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 T{constructor({walletClient:e}){let{AuctionLoanLiquidatorV5Address:t}=f(e.chain);super({walletClient:e,address:t,abi:de})}async placeBid({collectionContractAddress:e,tokenId:t,bid:n,auction:a}){let i=await this.safeContractWrite.placeBid([e,t,a,n]);return{txHash:i,waitTxInBlock:async()=>{let r=await this.bcClient.waitForTransactionReceipt({hash:i}),o=await this.contract.createEventFilter.BidPlaced(),l=y(r,o);if(l.length===0)throw new Error("Bid not placed");return{...l[0].args,...r}}}}async settleAuction({auction:e,loan:t}){let n=await this.safeContractWrite.settleAuction([e,t]);return{txHash:n,waitTxInBlock:async()=>{let a=await this.bcClient.waitForTransactionReceipt({hash:n}),i=await this.contract.createEventFilter.AuctionSettled(),r=y(a,i);if(r.length===0)throw new Error("Auction not settled");return{...r[0].args,...a}}}}};d(N,"AllV5");import{encodeFunctionData as ze}from"viem";var ge=[{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 T{constructor({walletClient:e}){let{CryptoPunksAddress:t}=f(e.chain);super({walletClient:e,address:t,abi:ge})}async encodeBuyPunk(e){return ze({abi:this.abi,functionName:"buyPunk",args:[e]})}};d(k,"CryptoPunks");import{encodeFunctionData as Ie}from"viem";var v=d((s,e)=>s&&e&&s.toLowerCase()===e.toLowerCase(),"areSameAddress"),O=d((s,e)=>{let t=f({id:s});return{name:"GONDI_MULTI_SOURCE_LOAN",version:v(e,t.MultiSourceLoanV4Address)?"1":"2",chainId:s,verifyingContract:e}},"getDomain"),be=d(s=>Number(s.valueOf()),"toInteger"),R=d(s=>Math.ceil(be(s)/1e3),"millisToSeconds"),Ge=60*60*24,Fe=d(s=>be(s)/1e4,"bpsToPercentage"),Se="MarketPlace.Native",Y=d(({offer:s,tokenId:e,amount:t,expirationTime:n})=>{let a={...s,lender:s.lenderAddress,borrower:s.borrowerAddress,signer:s.signerAddress??S,validators:s.offerValidators,requiresLiquidation:!!s.requiresLiquidation};return{offer:a,signature:a.signature,tokenId:e,amount:t??a.principalAmount,expirationTime:n??BigInt(R(Date.now())+Ge)}},"emitLoanArgsToMslArgs");var E=class extends T{mslAddress;constructor({walletClient:e,mslAddress:t}){let{LeverageAddress:n}=f(e.chain);super({walletClient:e,address:n,abi:ye}),this.mslAddress=t}async signExecutionData(e){return this.wallet.signTypedData({domain:O(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:O(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 n=await this.safeContractWrite.buy([await Promise.all(e.map(async a=>{let i={offer:a.offer,tokenId:a.nft.tokenId,amount:a.amount,expirationTime:a.expirationTime,callbackData:a.callbackData};return Ie({abi:x,functionName:"emitLoan",args:[{executionData:i,lender:a.offer.lender,borrower:this.wallet.account.address,lenderOfferSignature:a.offer.signature,borrowerOfferSignature:await this.signExecutionData(i)}]})}))],{value:t});return{txHash:n,waitTxInBlock:async()=>{let a=await this.bcClient.waitForTransactionReceipt({hash:n}),i=await this.contract.createEventFilter.BNPLLoansStarted(),r=y(a,i);if(r.length===0)throw new Error("BNPL Loans not started");return{...r[0].args,...a}}}}async sell({loan:e,callbackData:t,shouldDelegate:n,loanId:a}){let i={loanId:a,callbackData:t,shouldDelegate:n},r=await this.safeContractWrite.sell([[Ie({abi:x,functionName:"repayLoan",args:[{data:i,loan:e,borrowerSignature:await this.signRepaymentData(i)}]})]]);return{txHash:r,waitTxInBlock:async()=>{let o=await this.bcClient.waitForTransactionReceipt({hash:r}),l=await this.contract.createEventFilter.SellAndRepayExecuted(),p=y(o,l);if(p.length===0)throw new Error("Sell and repay not executed");return{...p[0].args,...o}}}}};d(E,"Leverage");var D=class extends T{constructor({walletClient:e}){let{MultiSourceLoanV4Address:t}=f(e.chain);super({walletClient:e,address:t,abi:Te})}async signOffer({verifyingContract:e,structToSign:t}){return this.wallet.signTypedData({domain:O(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:O(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 n=await this.bcClient.waitForTransactionReceipt({hash:t}),a=await this.contract.createEventFilter.OfferCancelled(),i=y(n,a);if(i.length===0)throw new Error("Offer not cancelled");return{...i[0].args,...n}}}}async cancelAllOffers({minId:e}){let t=await this.safeContractWrite.cancelAllOffers([this.wallet.account.address,e]);return{txHash:t,waitTxInBlock:async()=>{let n=await this.bcClient.waitForTransactionReceipt({hash:t}),a=await this.contract.createEventFilter.AllOffersCancelled(),i=y(n,a);if(i.length===0)throw new Error("Offers not cancelled");return{...i[0].args,...n}}}}async cancelRefinanceOffer({id:e}){let t=await this.safeContractWrite.cancelRenegotiationOffer([this.wallet.account.address,e]);return{txHash:t,waitTxInBlock:async()=>{let n=await this.bcClient.waitForTransactionReceipt({hash:t}),a=await this.contract.createEventFilter.RenegotiationOfferCancelled(),i=y(n,a);if(i.length===0)throw new Error("Offer not cancelled");return{...i[0].args,...n}}}}async cancelAllRenegotiations({minId:e}){let t=await this.safeContractWrite.cancelAllRenegotiationOffers([this.wallet.account.address,e]);return{txHash:t,waitTxInBlock:async()=>{let n=await this.bcClient.waitForTransactionReceipt({hash:t}),a=await this.contract.createEventFilter.RenegotiationOfferCancelled(),i=y(n,a);if(i.length===0)throw new Error("Offer not cancelled");return{...i[0].args,...n}}}}async emitLoan({offer:e,signature:t,tokenId:n}){let a=await this.safeContractWrite.emitLoan([e,n,t,!1]);return{txHash:a,waitTxInBlock:async()=>{let i=await this.bcClient.waitForTransactionReceipt({hash:a}),r=await this.contract.createEventFilter.LoanEmitted(),o=y(i,r);if(o.length===0)throw new Error("Loan not emitted");let l=o[0].args;return{loan:{id:`${this.contract.address.toLowerCase()}.${l.loanId}`,...l.loan,contractAddress:this.contract.address},loanId:l.loanId,offerId:`${this.contract.address.toLowerCase()}.${e.lender.toLowerCase()}.${l.offerId}`,...i}}}}async repayLoan({loan:e,nftReceiver:t,loanId:n}){let a=t??this.wallet.account.address,i=await this.safeContractWrite.repayLoan([a,n,e,!1]);return{txHash:i,waitTxInBlock:async()=>{let r=await this.bcClient.waitForTransactionReceipt({hash:i}),o=await this.contract.createEventFilter.LoanRepaid(),l=y(r,o);if(l.length===0)throw new Error("Loan not repaid");return{...l[0].args,...r}}}}getRemainingLockupSeconds(){return 0}async refinanceFullLoan({offer:e,signature:t,loan:n}){let a=await this.safeContractWrite.refinanceFull([e,n,t]);return{txHash:a,waitTxInBlock:async()=>{let i=await this.bcClient.waitForTransactionReceipt({hash:a}),r=await this.contract.createEventFilter.LoanRefinanced(),o=y(i,r);if(o.length===0)throw new Error("Loan not refinanced");let l=o[0].args;return{loan:{id:`${this.contract.address.toLowerCase()}.${l.newLoanId}`,...l.loan,contractAddress:this.address},renegotiationId:`${this.contract.address.toLowerCase()}.${e.lender.toLowerCase()}.${l.renegotiationId}`,...i}}}}async refinancePartialLoan({offer:e,loan:t}){let n=await this.safeContractWrite.refinancePartial([e,t]);return{txHash:n,waitTxInBlock:async()=>{let a=await this.bcClient.waitForTransactionReceipt({hash:n}),i=await this.contract.createEventFilter.LoanRefinanced(),r=y(a,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}`,...a}}}}async extendLoan(){throw new Error("Not implemented for V1")}async delegateMulticall(){throw new Error("Not implemented for V1")}async delegate(){throw new Error("Not implemented for V1")}async revokeDelegate(){throw new Error("Not implemented for V1")}async revokeDelegationsAndEmitLoan(){throw new Error("Not implemented for V1")}async liquidateLoan({loan:e,loanId:t}){let n=await this.safeContractWrite.liquidateLoan([t,e]);return{txHash:n,waitTxInBlock:async()=>{let a=await this.bcClient.waitForTransactionReceipt({hash:n}),i=await this.contract.createEventFilter.LoanForeclosed(),r=await this.contract.createEventFilter.LoanSentToLiquidator(),o=y(a,i),l=y(a,r);if(o.length===0&&l.length===0)throw new Error("Loan not liquidated");return{...o?.[0]?.args??l?.[0]?.args,...a}}}}};d(D,"MslV4");import{encodeFunctionData as J}from"viem";var V=class extends T{constructor({walletClient:e}){let{MultiSourceLoanV5Address:t}=f(e.chain);super({walletClient:e,address:t,abi:x})}async signOffer({verifyingContract:e,structToSign:t}){return this.wallet.signTypedData({domain:O(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:O(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 n=await this.bcClient.waitForTransactionReceipt({hash:t}),a=await this.contract.createEventFilter.OfferCancelled(),i=y(n,a);if(i.length===0)throw new Error("Offer not cancelled");return{...i[0].args,...n}}}}async cancelAllOffers({minId:e}){let t=await this.safeContractWrite.cancelAllOffers([e]);return{txHash:t,waitTxInBlock:async()=>{let n=await this.bcClient.waitForTransactionReceipt({hash:t}),a=await this.contract.createEventFilter.AllOffersCancelled(),i=y(n,a);if(i.length===0)throw new Error("Offers not cancelled");return{...i[0].args,...n}}}}async cancelRefinanceOffer({id:e}){let t=await this.safeContractWrite.cancelRenegotiationOffer([e]);return{txHash:t,waitTxInBlock:async()=>{let n=await this.bcClient.waitForTransactionReceipt({hash:t}),a=await this.contract.createEventFilter.RenegotiationOfferCancelled(),i=y(n,a);if(i.length===0)throw new Error("Renegotiation offer not cancelled");return{...i[0].args,...n}}}}async cancelAllRenegotiations({minId:e}){let t=await this.safeContractWrite.cancelAllRenegotiationOffers([e]);return{txHash:t,waitTxInBlock:async()=>{let n=await this.bcClient.waitForTransactionReceipt({hash:t}),a=await this.contract.createEventFilter.AllRenegotiationOffersCancelled(),i=y(n,a);if(i.length===0)throw new Error("Renegotiation offers not cancelled");return{...i[0].args,...n}}}}mapEmitLoanToMslArgs({offer:e,tokenId:t,amount:n,expirationTime:a,signature:i}){return{executionData:{offer:e,tokenId:t,amount:n,expirationTime:a,callbackData:"0x"},lender:e.lender,borrower:this.wallet.account.address,lenderOfferSignature:i,borrowerOfferSignature:"0x"}}async emitLoan(e){let t=this.mapEmitLoanToMslArgs(e),n=await this.safeContractWrite.emitLoan([t]);return{txHash:n,waitTxInBlock:async()=>{let a=await this.bcClient.waitForTransactionReceipt({hash:n}),i=await this.contract.createEventFilter.LoanEmitted(),r=y(a,i);if(r.length===0)throw new Error("Loan not emitted");let o=r[0].args;return{loan:{id:`${this.contract.address.toLowerCase()}.${o.loanId}`,...o.loan,contractAddress:this.contract.address},loanId:o.loanId,offerId:`${this.contract.address.toLowerCase()}.${e.offer.lender.toLowerCase()}.${o.offerId}`,...a}}}}async revokeDelegationsAndEmitLoan({delegations:e,emit:t}){if(e.length===0)throw new Error("At least one delegation must be revoked");let n=e.map(o=>J({abi:x,functionName:"revokeDelegate",args:[o,t.offer.nftCollateralAddress,t.tokenId]})),a=this.mapEmitLoanToMslArgs(t),i=J({abi:x,functionName:"emitLoan",args:[a]}),r=await this.safeContractWrite.multicall([[...n,i]]);return{txHash:r,waitTxInBlock:async()=>{let o=await this.bcClient.waitForTransactionReceipt({hash:r}),l=await this.contract.createEventFilter.RevokeDelegate(),p=y(o,l);if(p.length!==e.length)throw new Error("Revoke delegations failed");let u=await this.contract.createEventFilter.LoanEmitted(),c=y(o,u);if(c.length===0)throw new Error("Loan not emitted");let F=[...p.map(({args:I})=>I),...c.map(({args:I})=>I)],b=c[0].args;return{loan:{id:`${this.contract.address.toLowerCase()}.${b.loanId}`,...b.loan,contractAddress:this.contract.address},loanId:b.loanId,...o,results:F}}}}async repayLoan({loan:e,loanId:t}){let n={loanId:t,callbackData:"0x",shouldDelegate:!1},a=await this.safeContractWrite.repayLoan([{data:n,loan:e,borrowerSignature:"0x"}]);return{txHash:a,waitTxInBlock:async()=>{let i=await this.bcClient.waitForTransactionReceipt({hash:a}),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}}}}async getRemainingLockupSeconds({loan:e}){let t=e.source[0],a=e.startTime+e.duration-t.startTime,i=await this.contract.read.getMinLockPeriod(),r=Fe(i),o=Math.ceil(Number(a)*r),l=Math.ceil(R(Date.now())-Number(t.startTime));return l>=o?0:o-l}async refinanceFullLoan({offer:e,signature:t,loan:n}){let a=await this.safeContractWrite.refinanceFull([e,n,t]);return{txHash:a,waitTxInBlock:async()=>{let i=await this.bcClient.waitForTransactionReceipt({hash:a}),r=await this.contract.createEventFilter.LoanRefinanced(),o=y(i,r);if(o.length===0)throw new Error("Loan not refinanced");let l=o[0].args;return{loan:{id:`${this.contract.address.toLowerCase()}.${l.newLoanId}`,...l.loan,contractAddress:this.contract.address},renegotiationId:`${this.contract.address.toLowerCase()}.${e.lender.toLowerCase()}.${l.renegotiationId}`,...i}}}}async refinancePartialLoan({offer:e,loan:t}){let n=await this.safeContractWrite.refinancePartial([e,t]);return{txHash:n,waitTxInBlock:async()=>{let a=await this.bcClient.waitForTransactionReceipt({hash:n}),i=await this.contract.createEventFilter.LoanRefinanced(),r=y(a,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}`,...a}}}}async extendLoan({loan:e,loanId:t,newDuration:n}){let a=await this.safeContractWrite.extendLoan([t,e,n-e.duration]);return{txHash:a,waitTxInBlock:async()=>{let i=await this.bcClient.waitForTransactionReceipt({hash:a}),r=await this.contract.createEventFilter.LoanExtended(),o=y(i,r);if(o.length===0)throw new Error("Loan not extended");let l=o[0].args;return{loan:{id:`${this.contract.address.toLowerCase()}.${l.newLoanId}`,...l.loan,contractAddress:this.contract.address},newLoanId:l.newLoanId,...i}}}}async delegateMulticall(e){if(e.length===0)throw new Error("At least one delegation must be revoked");let t=await this.safeContractWrite.multicall([e.map(n=>J({abi:x,functionName:"delegate",args:[n.loanId,n.loan,n.to,n.rights??g,n.enable]}))]);return{txHash:t,waitTxInBlock:async()=>{let n=await this.bcClient.waitForTransactionReceipt({hash:t}),a=await this.contract.createEventFilter.Delegated(),i=y(n,a);if(i.length!==e.length)throw new Error("Delegate multicall failed");return{...n,results:i.map(({args:r})=>r)}}}}async delegate({loan:e,loanId:t,to:n,rights:a=g,enable:i}){let r=await this.safeContractWrite.delegate([t,e,n,a,i]);return{txHash:r,waitTxInBlock:async()=>{let o=await this.bcClient.waitForTransactionReceipt({hash:r}),l=await this.contract.createEventFilter.Delegated(),p=y(o,l);if(p.length===0)throw new Error("Token not delegated");let u=p[0].args;return{loan:{...e,loanId:t,contractAddress:this.contract.address},value:u.value,...o}}}}async revokeDelegate({to:e,collection:t,tokenId:n}){let a=await this.safeContractWrite.revokeDelegate([e,t,n]);return{txHash:a,waitTxInBlock:async()=>{let i=await this.bcClient.waitForTransactionReceipt({hash:a}),r=await this.contract.createEventFilter.RevokeDelegate(),o=y(i,r);if(o.length===0)throw new Error("Token delegation not revoked");return{...o[0].args,...i}}}}async liquidateLoan({loan:e,loanId:t}){let n=await this.safeContractWrite.liquidateLoan([t,e]);return{txHash:n,waitTxInBlock:async()=>{let a=await this.bcClient.waitForTransactionReceipt({hash:n}),i=await this.contract.createEventFilter.LoanForeclosed(),r=await this.contract.createEventFilter.LoanSentToLiquidator(),o=y(a,i),l=y(a,r);if(o.length===0&&l.length===0)throw new Error("Loan not liquidated");return{...o?.[0]?.args??l?.[0]?.args,...a}}}}};d(V,"MslV5");import{zeroAddress as H}from"viem";var L=[{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 K=class extends T{constructor({walletClient:e}){let{SeaportAddress:t}=f(e.chain);super({walletClient:e,address:t,abi:L})}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},n={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:n,primaryType:"OrderComponents",message:e})}async generateOrderFromSaleOffer({collectionContractAddress:e,tokenId:t,price:n,expirationTime:a}){let{WETH_ADDRESS:i}=A(),r={offerer:this.wallet.account.address,zone:H,offer:[{itemType:1,token:i,identifierOrCriteria:0n,startAmount:n,endAmount:n}],consideration:[{itemType:2,token:e,identifierOrCriteria:t,startAmount:1n,endAmount:1n,recipient:this.wallet.account.address}],orderType:0,startTime:BigInt(Math.floor(R(Date.now()))),endTime:a,zoneHash:g,salt:0n,conduitKey:g,counter:await this.getCounter(),totalOriginalConsiderationItems:1n},o=await this.signOrder(r);return{parameters:r,signature:o}}async recoverOrderFromNativeBid({nativeBid:e,collectionContractAddress:t,tokenId:n}){let{WETH_ADDRESS:a}=A();return{offerer:e.maker,zone:H,offer:[{itemType:1,token:a,identifierOrCriteria:0n,startAmount:e.netAmount,endAmount:e.netAmount}],consideration:[{itemType:2,token:t,identifierOrCriteria:n,startAmount:1n,endAmount:1n,recipient:e.maker}],orderType:0,startTime:BigInt(Math.floor(R(e.startTime.getTime()))),endTime:BigInt(Math.floor(R(e.expiration?.getTime()??Date.now()))),zoneHash:g,salt:0n,conduitKey:g,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:g,salt:0n,conduitKey:g,counter:await this.getCounter(),totalOriginalConsiderationItems:BigInt(e.offer.length)}}generateFulfillmentsForOrderAndInverse(e){let t=[];return e.offer.forEach((n,a)=>{t.push({offerComponents:[{orderIndex:0n,itemIndex:BigInt(a)}],considerationComponents:[{orderIndex:1n,itemIndex:BigInt(a)}]})}),e.consideration.forEach((n,a)=>{t.push({offerComponents:[{orderIndex:1n,itemIndex:BigInt(a)}],considerationComponents:[{orderIndex:0n,itemIndex:BigInt(a)}]})}),t}async cancel({orderComponents:e}){let t=await this.safeContractWrite.cancel([[e]]);return{txHash:t,waitTxInBlock:async()=>{let n=await this.bcClient.waitForTransactionReceipt({hash:t}),a=await this.contract.createEventFilter.OrderCancelled({offerer:e.offerer}),i=y(n,a);if(i.length===0)throw new Error("Order not cancelled");return{...i[0].args,...n}}}}};d(K,"Seaport");var U=class extends T{constructor({walletClient:e}){let{UserVaultV5Address:t}=f(e.chain);super({walletClient:e,address:t,abi:ue})}async burnAndWithdraw({vaultId:e,collections:t,tokenIds:n,tokens:a=[]}){if(t.length!=n.length)throw new Error("collections and tokenIds must have the same length");let i=await this.safeContractWrite.burnAndWithdraw([e,t,n,a]);return{txHash:i,waitTxInBlock:async()=>{let r=await this.bcClient.waitForTransactionReceipt({hash:i}),o=await this.contract.createEventFilter.ERC721Withdrawn(),l=y(r,o);if(l.length!==n.length)throw new Error("Withdrawn count mismatch");return{events:l.map(p=>p.args),...r}}}}async createVault(e){let{id:t}=await this.#e(),n=[],a=e.reduce((i,r)=>{let{collection:o,tokenIds:l}=r,p=i.findIndex(u=>u.collection===o);return p===-1?i.push({collection:o,tokenIds:l}):i[p].tokenIds=[...i[p].tokenIds,...l],i},[]);for(let i=0;i<a.length;i++){let{collection:r,tokenIds:o}=a[i],p=await(await this.depositERC721s({vaultId:t,collection:r,tokenIds:o})).waitTxInBlock();n.push(p)}return{vaultId:t,receipts:n}}async depositERC721s({vaultId:e,collection:t,tokenIds:n}){let a=await this.safeContractWrite.depositERC721s([e,t,n]);return{txHash:a,waitTxInBlock:async()=>{let i=await this.bcClient.waitForTransactionReceipt({hash:a}),r=await this.contract.createEventFilter.ERC721Deposited(),o=y(i,r);if(o.length===0)throw new Error("Deposit not created");return{...o[0].args,...i}}}}async#e(){let e=await this.safeContractWrite.mint(void 0),t=await this.bcClient.waitForTransactionReceipt({hash:e}),n=await this.contract.createEventFilter.Transfer({}),a=y(t,n);if(a.length===0)throw new Error("Vault not created");return{...a[0].args,...t}}};d(U,"UserVaultV5");var q=class{walletClient;publicClient;MultiSourceLoanV4;MultiSourceLoanV5;AuctionLoanLiquidatorV4;AuctionLoanLiquidatorV5;UserVaultV5;Leverage;Seaport;CryptoPunks;constructor(e,t){this.walletClient=t,this.publicClient=e,this.MultiSourceLoanV4=new D({walletClient:t}),this.MultiSourceLoanV5=new V({walletClient:t}),this.AuctionLoanLiquidatorV4=new w({walletClient:t}),this.AuctionLoanLiquidatorV5=new N({walletClient:t}),this.UserVaultV5=new U({walletClient:t}),this.Leverage=new E({walletClient:t,mslAddress:this.MultiSourceLoanV5.address}),this.Seaport=new K({walletClient:t}),this.CryptoPunks=new k({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}`)}UserVault(e){if(v(e,this.UserVaultV5.address))return this.UserVaultV5;throw new Error(`Invalid Contract Address ${e}`)}ERC721(e){return Ae({address:e,abi:z,walletClient:this.walletClient,publicClient:this.publicClient})}ERC20(e){return Ae({address:e,abi:pe,walletClient:this.walletClient,publicClient:this.publicClient})}};d(q,"Contracts");var S=je,g=`0x${"0".repeat(64)}`,Oe="0x0";function y(s,e){return s.logs.filter(t=>Ze(e)[0]==t.topics[0]).map(t=>Xe({abi:e.abi,data:t.data,topics:t.topics,eventName:e.eventName})).filter(t=>t.eventName==e.eventName)}d(y,"filterLogs");import{ApolloClient as rt,ApolloLink as Re,createHttpLink as st,InMemoryCache as ot}from"@apollo/client/core/index.js";import{setContext as lt}from"@apollo/client/link/context/index.js";import{withScalars as dt}from"apollo-link-scalars";import{buildSchema as pt}from"graphql";import{ApolloClient as Ye,ApolloLink as Pe,createHttpLink as Je,InMemoryCache as et}from"@apollo/client/core/index.js";import{gql as Ce}from"graphql-tag";import{SiweMessage as tt}from"siwe";var xe=d(()=>process.env.GONDI_URL??"https://api.gondi.xyz","gondiUrl"),ee=d(()=>`${xe()}/graphql`,"authApiUrl"),Me=d(()=>`${xe()}/lending/graphql`,"apiUrl");var nt=d(async()=>{let s=Pe.from([Je({uri:({operationName:e})=>`${ee()}?operation=${encodeURIComponent(e)}`})]);return new Ye({link:Pe.from([s]),defaultOptions:{query:{errorPolicy:"all"},mutate:{errorPolicy:"all"}},cache:new et({})})},"getAuthClient"),at=d(async({wallet:s})=>{let e=await nt(),{data:t,errors:n}=await e.mutate({mutation:Ce`
1
+ var Te=Object.defineProperty;var ze=(p,e,t)=>e in p?Te(p,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):p[e]=t;var y=(p,e)=>Te(p,"name",{value:e,configurable:!0});var fe=(p,e,t)=>(ze(p,typeof e!="symbol"?e+"":e,t),t);import{createPublicClient as dn,createTransport as mn}from"viem";import{getAddress as Ut}from"viem";import{ApolloClient as tt,ApolloLink as Fe,createHttpLink as nt,InMemoryCache as at}from"@apollo/client/core/index.js";import{setContext as it}from"@apollo/client/link/context/index.js";import{withScalars as rt}from"apollo-link-scalars";import{buildSchema as st}from"graphql";import{ApolloClient as Ge,ApolloLink as be,createHttpLink as Xe,InMemoryCache as Ze}from"@apollo/client/core/index.js";import{gql as ge}from"graphql-tag";import{SiweMessage as je}from"siwe";var Ie=y(()=>`${ee()}/graphql`,"authApiUrl"),Ye=y(async()=>{let p=be.from([Xe({uri:({operationName:e})=>`${Ie()}?operation=${encodeURIComponent(e)}`})]);return new Ge({link:be.from([p]),defaultOptions:{query:{errorPolicy:"all"},mutate:{errorPolicy:"all"}},cache:new Ze({})})},"getAuthClient"),Je=y(async({wallet:p})=>{let e=await Ye(),{data:t,errors:n}=await e.mutate({mutation:ge`
2
2
  mutation GenerateSignInNonce($nonceInput: NonceInput!) {
3
3
  generateSignInNonce(nonceInput: $nonceInput)
4
4
  }
5
- `,variables:{nonceInput:{walletAddress:s.account.address,blockchain:"ETHEREUM"}}});if(n)throw new Error(n.map(u=>u.message).join(", "));let a=t?.generateSignInNonce,i=new tt({domain:"gondi.xyz",address:s.account.address,chainId:s.chain.id,statement:"Sign in with Ethereum to the app.",uri:ee(),version:"1",nonce:a}),r=await s.signMessage({message:i.prepareMessage()}),{data:o,errors:l}=await e.mutate({mutation:Ce`
5
+ `,variables:{nonceInput:{walletAddress:p.account.address,blockchain:"ETHEREUM"}}});if(n)throw new Error(n.map(d=>d.message).join(", "));let a=t?.generateSignInNonce,i=new je({domain:"gondi.xyz",address:p.account.address,chainId:p.chain.id,statement:"Sign in with Ethereum to the app.",uri:Ie(),version:"1",nonce:a}),r=await p.signMessage({message:i.prepareMessage()}),{data:s,errors:o}=await e.mutate({mutation:ge`
6
6
  mutation SignInWithEthereum($siweInput: SiweInput!) {
7
7
  signInWithEthereum(siweInput: $siweInput)
8
8
  }
9
- `,variables:{siweInput:{message:i.prepareMessage(),signature:r}}});if(l)throw new Error(l.map(u=>u.message).join(", "));let p=o?.signInWithEthereum;if(!p)throw new Error("Couldn't generate Access Token, please try again later");return p},"signIn"),W=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 at({wallet:this.wallet}))}};d(W,"SessionToken");var ve=`type ActiveOfferNotification implements Node & Notification {
9
+ `,variables:{siweInput:{message:i.prepareMessage(),signature:r}}});if(o)throw new Error(o.map(d=>d.message).join(", "));let u=s?.signInWithEthereum;if(!u)throw new Error("Couldn't generate Access Token, please try again later");return u},"signIn"),D=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 Je({wallet:this.wallet}))}};y(D,"SessionToken");var Ae=`type ActiveOfferNotification implements Node & Notification {
10
10
  createdOn: DateTime!
11
11
  id: String!
12
12
  notificationType: String!
@@ -57,7 +57,7 @@ type AuctionBidConfirmationNotification implements Node & Notification {
57
57
  type AuctionConnection {
58
58
  edges: [AuctionEdge!]!
59
59
  pageInfo: PageInfo!
60
- totalCount: Int
60
+ totalCount: Int!
61
61
  }
62
62
 
63
63
  type AuctionEdge {
@@ -125,7 +125,7 @@ type Bid implements Node {
125
125
  type BidConnection {
126
126
  edges: [BidEdge!]!
127
127
  pageInfo: PageInfo!
128
- totalCount: Int
128
+ totalCount: Int!
129
129
  }
130
130
 
131
131
  type BidEdge {
@@ -172,7 +172,7 @@ type Collection implements Node {
172
172
  type CollectionConnection {
173
173
  edges: [CollectionEdge!]!
174
174
  pageInfo: PageInfo!
175
- totalCount: Int
175
+ totalCount: Int!
176
176
  }
177
177
 
178
178
  type CollectionEdge {
@@ -185,6 +185,7 @@ type CollectionOffer implements Node & Offer {
185
185
  borrowerAddress: Address
186
186
  capacity: BigInt!
187
187
  collection: Collection!
188
+ consumedCapacity: BigInt!
188
189
  contractAddress: Address!
189
190
  createdDate: DateTime
190
191
  currency: Currency
@@ -194,6 +195,12 @@ type CollectionOffer implements Node & Offer {
194
195
  hidden: Boolean
195
196
  id: String!
196
197
  lenderAddress: Address
198
+ maxPrincipal: BigInt!
199
+ maxSeniorRepayment: BigInt!
200
+
201
+ """Deprecated field: use maxSeniorRepayment instead."""
202
+ maxTrancheFloor: BigInt! @deprecated(reason: "Use maxSeniorRepayment instead.")
203
+ netPrincipal: BigInt!
197
204
  offerHash: Hash
198
205
  offerId: BigInt!
199
206
  principalAddress: Address!
@@ -217,11 +224,13 @@ input CollectionOfferInput {
217
224
  expirationTime: BigInt!
218
225
  fee: BigInt!
219
226
  lenderAddress: Address!
227
+ maxSeniorRepayment: BigInt = null
228
+ maxTrancheFloor: BigInt = null
220
229
  offerValidators: [OfferValidatorInput!]!
221
230
  principalAddress: Address!
222
231
  principalAmount: BigInt!
223
- requiresLiquidation: Boolean
224
- signerAddress: Address
232
+ requiresLiquidation: Boolean = null
233
+ signerAddress: Address = null
225
234
  }
226
235
 
227
236
  type CollectionOfferStatistics {
@@ -262,14 +271,25 @@ input CollectionSignedOfferInput {
262
271
  expirationTime: BigInt!
263
272
  fee: BigInt!
264
273
  lenderAddress: Address!
274
+ maxSeniorRepayment: BigInt = null
275
+ maxTrancheFloor: BigInt = null
265
276
  offerHash: Hash!
266
277
  offerId: BigInt!
267
278
  offerValidators: [OfferValidatorInput!]!
268
279
  principalAddress: Address!
269
280
  principalAmount: BigInt!
270
- requiresLiquidation: Boolean
281
+ requiresLiquidation: Boolean = null
271
282
  signature: Signature!
272
- signerAddress: Address
283
+ signerAddress: Address = null
284
+ }
285
+
286
+ enum CollectionSortField {
287
+ TOTAL_VOLUME
288
+ }
289
+
290
+ input CollectionSortInput {
291
+ field: CollectionSortField!
292
+ order: Ordering!
273
293
  }
274
294
 
275
295
  type CollectionStatistics {
@@ -330,9 +350,7 @@ type CurrencyAmount {
330
350
  currency: Currency!
331
351
  }
332
352
 
333
- """
334
- Date with time (isoformat)
335
- """
353
+ """Date with time (isoformat)"""
336
354
  scalar DateTime
337
355
 
338
356
  type Delegation implements Node {
@@ -346,7 +364,7 @@ type Delegation implements Node {
346
364
  type DelegationConnection {
347
365
  edges: [DelegationEdge!]!
348
366
  pageInfo: PageInfo!
349
- totalCount: Int
367
+ totalCount: Int!
350
368
  }
351
369
 
352
370
  type DelegationEdge {
@@ -363,6 +381,13 @@ input Interval {
363
381
  min: Float = null
364
382
  }
365
383
 
384
+ type LinkedWallets implements Node {
385
+ id: String!
386
+ pending: Boolean!
387
+ shouldAccept: Boolean!
388
+ walletAddress: String!
389
+ }
390
+
366
391
  type Listing implements Node {
367
392
  createdDate: DateTime!
368
393
  desiredDuration: Int
@@ -376,7 +401,7 @@ type Listing implements Node {
376
401
  type ListingConnection {
377
402
  edges: [ListingEdge!]!
378
403
  pageInfo: PageInfo!
379
- totalCount: Int
404
+ totalCount: Int!
380
405
  }
381
406
 
382
407
  type ListingEdge {
@@ -393,7 +418,10 @@ interface Loan implements Node {
393
418
  id: String!
394
419
  indexInBlock: Int!
395
420
  loanId: Int!
396
- offer: Offer!
421
+
422
+ """Deprecated field. Use offerIds to return loan offer ids instead."""
423
+ offer: Offer! @deprecated(reason: "Use offerIds to return loan offer ids instead.")
424
+ offerIds: [String!]!
397
425
  principalAddress: Address!
398
426
  repaidActivity: LoanRepaid
399
427
  startTime: DateTime!
@@ -415,7 +443,7 @@ interface LoanActivity implements Node {
415
443
  type LoanActivityConnection {
416
444
  edges: [LoanActivityEdge!]!
417
445
  pageInfo: PageInfo!
418
- totalCount: Int
446
+ totalCount: Int!
419
447
  }
420
448
 
421
449
  type LoanActivityEdge {
@@ -536,8 +564,10 @@ type LoanPayment implements Node {
536
564
  }
537
565
 
538
566
  type LoanRefinanced implements LoanActivity & Node {
567
+ addedNewTranche: Boolean!
539
568
  id: String!
540
569
  indexInBlock: Int!
570
+ isRenegotiation: Boolean!
541
571
  loan: Loan!
542
572
  loanId: String!
543
573
  multiSourceLoanHistory: MultiSourceLoanHistory
@@ -634,23 +664,6 @@ type LostSourceNotification implements Node & Notification {
634
664
  user: User!
635
665
  }
636
666
 
637
- type ManyNftsStatistics {
638
- bestOffer: CurrencyAmount
639
- floorPrice: CurrencyAmount
640
- floorPrice7d: Float
641
- floorPrice30d: Float
642
- lastSale: Sale
643
- nftsCount: Float
644
- totalVolume: Float
645
- totalVolume1d: Float
646
- totalVolume1m: Float
647
- totalVolume1w: Float
648
- totalVolume1y: Float
649
- totalVolume2m: Float
650
- totalVolume3m: Float
651
- totalVolume4m: Float
652
- }
653
-
654
667
  enum MarketplaceEnum {
655
668
  GONDI
656
669
  NFTFI
@@ -668,7 +681,10 @@ type MultiSourceLoan implements Loan & Node {
668
681
  indexInBlock: Int!
669
682
  loanId: Int!
670
683
  nft: NFT!
671
- offer: Offer!
684
+
685
+ """Deprecated field. Use offerIds to return loan offer ids instead."""
686
+ offer: Offer! @deprecated(reason: "Use offerIds to return loan offer ids instead.")
687
+ offerIds: [String!]!
672
688
  principalAddress: Address!
673
689
  principalAmount: BigInt!
674
690
  renegotiationRequest: RenegotiationRequest
@@ -684,7 +700,7 @@ type MultiSourceLoan implements Loan & Node {
684
700
  type MultiSourceLoanConnection {
685
701
  edges: [MultiSourceLoanEdge!]!
686
702
  pageInfo: PageInfo!
687
- totalCount: Int
703
+ totalCount: Int!
688
704
  }
689
705
 
690
706
  type MultiSourceLoanEdge {
@@ -697,7 +713,7 @@ type MultiSourceLoanHistory implements Node {
697
713
  borrowerAddress: String!
698
714
  duration: BigInt!
699
715
  id: String!
700
- offerId: String!
716
+ offerIds: [String!]!
701
717
  principalAddress: String!
702
718
  principalAmount: BigInt!
703
719
  sources: [SourceHistory!]!
@@ -705,58 +721,28 @@ type MultiSourceLoanHistory implements Node {
705
721
  }
706
722
 
707
723
  type Mutation {
708
- addListingsOfNftsFromUser(
709
- desiredDuration: Int = null
710
- desiredPrincipalAddress: Address = null
711
- ): Void
712
- addOrUpdateListing(
713
- desiredDuration: Int = null
714
- desiredPrincipalAddress: Address = null
715
- nftId: Int!
716
- ): Listing!
717
- addOrUpdateRenegotiationRequest(
718
- desiredAprBps: BigInt!
719
- desiredDuration: BigInt!
720
- desiredPrincipalAmount: BigInt!
721
- loanId: String!
722
- ): RenegotiationRequest!
723
- generateCollectionOfferToBeSigned(
724
- offerInput: CollectionOfferInput!
725
- ): CollectionOffer!
726
- generateRenegotiationOfferToBeSigned(
727
- renegotiationInput: RenegotiationOfferInput!
728
- ): Renegotiation!
729
- generateSingleNftOfferToBeSigned(
730
- offerInput: SingleNFTOfferInput!
731
- ): SingleNFTOffer!
724
+ addListingsOfNftsFromUser(desiredDuration: Int = null, desiredPrincipalAddress: Address = null): Void
725
+ addOrUpdateListing(desiredDuration: Int = null, desiredPrincipalAddress: Address = null, nftId: Int!): Listing!
726
+ addOrUpdateRenegotiationRequest(desiredAprBps: BigInt!, desiredDuration: BigInt!, desiredPrincipalAmount: BigInt!, loanId: String!): RenegotiationRequest!
727
+ generateCollectionOfferToBeSigned(offerInput: CollectionOfferInput!): CollectionOffer!
728
+ generateRenegotiationOfferToBeSigned(renegotiationInput: RenegotiationOfferInput!): Renegotiation!
729
+ generateSingleNftOfferToBeSigned(offerInput: SingleNFTOfferInput!): SingleNFTOffer!
732
730
  hideAllOffers(contractAddress: Address!, minOfferId: String!): [Offer!]!
733
731
  hideOffer(contractAddress: Address!, offerId: String!): Offer!
734
- hideRenegotiation(
735
- contractAddress: Address = "0xCa5a494Ca20483e21ec1E41FE1D9461Da77595Bd"
736
- renegotiationId: String!
737
- ): Renegotiation!
732
+ hideRenegotiation(contractAddress: Address = "0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9", renegotiationId: String!): Renegotiation!
738
733
  hideSaleOffer(saleOfferId: String!): SingleNFTOrder!
739
734
  markNotificationIdsAsRead(ids: [Int!]): Void
740
735
  markNotificationsAsRead: Void
741
736
  removeListing(nftId: Int!): Listing!
742
737
  removeListingsOfNftsFromUser: Void
743
738
  removeRenegotiationRequest(loanId: String!): RenegotiationRequest!
744
- saveRenegotiationSignedOffer(
745
- signedRenegotiationInput: SignedRenegotiationOfferInput!
746
- ): Renegotiation!
747
- saveSignedCollectionOffer(
748
- signedOfferInput: CollectionSignedOfferInput!
749
- ): CollectionOffer!
739
+ saveRenegotiationSignedOffer(signedRenegotiationInput: SignedRenegotiationOfferInput!): Renegotiation!
740
+ saveSignedCollectionOffer(signedOfferInput: CollectionSignedOfferInput!): CollectionOffer!
750
741
  saveSignedSaleOffer(signedOfferInput: SignedOrderInput!): SingleNFTOrder!
751
- saveSignedSingleNftOffer(
752
- signedOfferInput: SingleNFTSignedOfferInput!
753
- ): SingleNFTOffer!
742
+ saveSignedSingleNftOffer(signedOfferInput: SingleNFTSignedOfferInput!): SingleNFTOffer!
754
743
  setReferral(referrerId: Int!): Void
755
744
  showOffer(contractAddress: Address!, offerId: String!): Offer!
756
- showRenegotiation(
757
- contractAddress: Address = "0xCa5a494Ca20483e21ec1E41FE1D9461Da77595Bd"
758
- renegotiationId: String!
759
- ): Renegotiation!
745
+ showRenegotiation(contractAddress: Address = "0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9", renegotiationId: String!): Renegotiation!
760
746
  showSaleOffer(saleOfferId: String!): SingleNFTOrder!
761
747
  }
762
748
 
@@ -781,12 +767,13 @@ type NFT implements Node {
781
767
  tokenId: BigInt!
782
768
  traits: [Trait!]!
783
769
  url: String
770
+ wrapsNfts: [NFT!]
784
771
  }
785
772
 
786
773
  type NFTConnection {
787
774
  edges: [NFTEdge!]!
788
775
  pageInfo: PageInfo!
789
- totalCount: Int
776
+ totalCount: Int!
790
777
  }
791
778
 
792
779
  type NFTEdge {
@@ -860,7 +847,7 @@ interface Notification implements Node {
860
847
  type NotificationConnection {
861
848
  edges: [NotificationEdge!]!
862
849
  pageInfo: PageInfo!
863
- totalCount: Int
850
+ totalCount: Int!
864
851
  }
865
852
 
866
853
  type NotificationEdge {
@@ -885,6 +872,7 @@ interface Offer implements Node {
885
872
  aprBps: BigInt!
886
873
  borrowerAddress: Address
887
874
  capacity: BigInt!
875
+ consumedCapacity: BigInt!
888
876
  contractAddress: Address!
889
877
  createdDate: DateTime
890
878
  currency: Currency
@@ -894,6 +882,12 @@ interface Offer implements Node {
894
882
  hidden: Boolean
895
883
  id: String!
896
884
  lenderAddress: Address
885
+ maxPrincipal: BigInt!
886
+ maxSeniorRepayment: BigInt!
887
+
888
+ """Deprecated field: use maxSeniorRepayment instead."""
889
+ maxTrancheFloor: BigInt! @deprecated(reason: "Use maxSeniorRepayment instead.")
890
+ netPrincipal: BigInt!
897
891
  offerHash: Hash
898
892
  offerId: BigInt!
899
893
  principalAddress: Address!
@@ -919,7 +913,7 @@ type OfferAcceptedNotification implements Node & Notification {
919
913
  type OfferConnection {
920
914
  edges: [OfferEdge!]!
921
915
  pageInfo: PageInfo!
922
- totalCount: Int
916
+ totalCount: Int!
923
917
  }
924
918
 
925
919
  type OfferEdge {
@@ -952,25 +946,13 @@ input OfferValidatorInput {
952
946
  validator: Address!
953
947
  }
954
948
 
955
- union OffersAndRenegotiations = Renegotiation | SingleNFTOffer
956
-
957
- type OffersAndRenegotiationsConnection {
958
- edges: [OffersAndRenegotiationsEdge!]!
959
- pageInfo: PageInfo!
960
- totalCount: Int
961
- }
962
-
963
- type OffersAndRenegotiationsEdge {
964
- cursor: String!
965
- node: OffersAndRenegotiations!
966
- }
967
-
968
949
  enum OffersSortField {
969
950
  APR_BPS
970
951
  CREATED_DATE
971
952
  DAILY_INTEREST
972
953
  DURATION
973
954
  EXPIRATION
955
+ MAX_PRINCIPAL
974
956
  NET_INTEREST
975
957
  NET_PRINCIPAL
976
958
  PRINCIPAL_AMOUNT
@@ -1010,7 +992,7 @@ interface Order implements Activity & Node {
1010
992
  type OrderConnection {
1011
993
  edges: [OrderEdge!]!
1012
994
  pageInfo: PageInfo!
1013
- totalCount: Int
995
+ totalCount: Int!
1014
996
  }
1015
997
 
1016
998
  type OrderEdge {
@@ -1054,7 +1036,7 @@ type PointActivity implements Node {
1054
1036
  type PointActivityConnection {
1055
1037
  edges: [PointActivityEdge!]!
1056
1038
  pageInfo: PageInfo!
1057
- totalCount: Int
1039
+ totalCount: Int!
1058
1040
  }
1059
1041
 
1060
1042
  type PointActivityEdge {
@@ -1067,156 +1049,30 @@ type Query {
1067
1049
  getCollectionsByContractAddress(contractAddress: Address!): [Collection!]!
1068
1050
  getListingById(listingId: Int!): Listing
1069
1051
  getLoanById(address: String!, loanId: Int!): Loan
1070
- getNftByContractAddressAndTokenId(
1071
- contractAddress: Address!
1072
- tokenId: BigInt!
1073
- ): NFT
1052
+ getNftByContractAddressAndTokenId(contractAddress: Address!, tokenId: BigInt!): NFT
1074
1053
  getNftBySlugAndTokenId(slug: String!, tokenId: BigInt!): NFT
1075
1054
  getPointsFromReferrals: Int!
1076
1055
  getReferredWallets: Int!
1077
- getUserPointActivities(
1078
- after: String
1079
- first: Int = 10
1080
- ): PointActivityConnection!
1056
+ getUserPointActivities(after: String, first: Int = 10): PointActivityConnection!
1081
1057
  getUserPoints: Int!
1082
- listAuctions(
1083
- after: String
1084
- currencyAddress: Address = null
1085
- first: Int = 10
1086
- sortBy: [AuctionSortInput!] = null
1087
- statuses: [AuctionStatus!] = null
1088
- ): AuctionConnection!
1058
+ listAuctions(after: String, currencyAddress: Address = null, first: Int = 10, sortBy: [AuctionSortInput!] = null, statuses: [AuctionStatus!] = null): AuctionConnection!
1089
1059
  listBestBidsForNft(currencyAddress: String!, nftId: Int!): [Order!]!
1090
- listBids(
1091
- after: String
1092
- auctionId: String = null
1093
- bidder: String = null
1094
- currencyAddress: Address = null
1095
- first: Int = 10
1096
- onlyLatest: Boolean! = false
1097
- sortBy: [BidSortInput!] = null
1098
- ): BidConnection!
1099
- listCollections(
1100
- after: String
1101
- first: Int = 10
1102
- searchTerm: String = null
1103
- ): CollectionConnection!
1104
- listCollectionsWithListings(
1105
- after: String
1106
- first: Int! = 10
1107
- searchTerm: String = null
1108
- ): CollectionConnection!
1109
- listCollectionsWithLoans(
1110
- after: String
1111
- first: Int! = 10
1112
- searchTerm: String = null
1113
- ): CollectionConnection!
1114
- listListings(
1115
- after: String
1116
- collectionIds: [Int!] = null
1117
- first: Int = 10
1118
- marketplaceNames: [MarketplaceEnum!] = null
1119
- searchTerm: String = null
1120
- userFilter: UserFilter = null
1121
- withLoans: Boolean = false
1122
- ): ListingConnection!
1123
- listLoanActivities(
1124
- after: String
1125
- first: Int! = 10
1126
- loanId: String = null
1127
- sortBy: [LoanActivitySortInput!] = null
1128
- types: [LoanActivityType!] = null
1129
- ): LoanActivityConnection!
1130
- listLoans(
1131
- after: String
1132
- borrowerAddress: String = null
1133
- collections: [Int!] = null
1134
- contractAddresses: [Address!] = null
1135
- currencyAddress: Address = null
1136
- first: Int! = 10
1137
- nfts: [Int!] = null
1138
- orderByStatuses: Boolean = true
1139
- sortBy: [LoanSortInput!] = null
1140
- statuses: [LoanStatusType!] = null
1141
- terms: TermsFilter = null
1142
- ): MultiSourceLoanConnection!
1143
- listNftDelegations(
1144
- after: String
1145
- contractAddress: Address = null
1146
- first: Int! = 20
1147
- nftId: Int!
1148
- ): DelegationConnection!
1149
- listNftOffersAndRenegotiations(
1150
- after: String
1151
- collections: [Int!] = null
1152
- currencyAddress: Address = null
1153
- first: Int = 20
1154
- hidden: Boolean = null
1155
- lenderAddress: String = null
1156
- sortBy: OffersSortInput = null
1157
- statuses: [OfferStatus!] = null
1158
- terms: TermsFilter = null
1159
- ): OffersAndRenegotiationsConnection!
1160
- listNftsFromCollections(
1161
- after: String
1162
- collections: [Int!]!
1163
- first: Int = 10
1164
- onlyListed: Boolean = null
1165
- searchTerm: String = null
1166
- traitRanges: [TraitRangeOptionsInput!] = null
1167
- traits: [TraitKeyValueOptionsInput!] = null
1168
- ): NFTConnection!
1169
- listNftsFromUser(
1170
- after: String
1171
- first: Int = 10
1172
- searchTerm: String = null
1173
- sortBy: [NftSortInput!] = null
1174
- withLoans: Boolean = false
1175
- ): NFTConnection!
1176
- listNotifications(
1177
- after: String
1178
- first: Int = 50
1179
- notificationTypes: [NotificationType!] = null
1180
- onlyRead: Boolean! = false
1181
- onlyUnread: Boolean! = false
1182
- ): NotificationConnection!
1183
- listOffers(
1184
- after: String
1185
- borrowerAddress: String = null
1186
- collections: [Int!] = null
1187
- contractAddress: Address = null
1188
- currencyAddress: Address = null
1189
- first: Int = 10
1190
- hidden: Boolean = null
1191
- lenderAddress: String = null
1192
- nfts: [Int!] = null
1193
- onlyCollectionOffers: Boolean = false
1194
- onlySingleNftOffers: Boolean = false
1195
- sortBy: [OffersSortInput!] = null
1196
- statuses: [OfferStatus!] = null
1197
- terms: TermsFilter = null
1198
- worseOffers: Boolean = true
1199
- ): OfferConnection!
1200
- listRenegotiations(
1201
- after: String
1202
- collections: [Int!] = null
1203
- first: Int = 10
1204
- hidden: Boolean = null
1205
- loanId: String = null
1206
- sortBy: [OffersSortInput!] = null
1207
- statuses: [OfferStatus!] = null
1208
- terms: RefinanceTermsFilter = null
1209
- ): RenegotiationConnection!
1210
- listSources(
1211
- after: String
1212
- currencyAddress: Address = null
1213
- first: Int! = 10
1214
- includeLost: Boolean = false
1215
- lenderAddress: String = null
1216
- sortBy: [SourceSortInput!] = null
1217
- statuses: [LoanStatusType!] = null
1218
- terms: TermsFilter = null
1219
- ): SourcesAndLostSourcesConnection!
1060
+ listBids(after: String, auctionId: String = null, bidders: [String!] = null, currencyAddress: Address = null, first: Int = 10, onlyLatest: Boolean! = false, sortBy: [BidSortInput!] = null): BidConnection!
1061
+ listCollections(after: String, collections: [Int!] = null, first: Int = 10, searchTerm: String = null, sortBy: [CollectionSortInput!] = null): CollectionConnection!
1062
+ listCollectionsWithListings(after: String, collections: [Int!] = null, first: Int! = 10, searchTerm: String = null): CollectionConnection!
1063
+ listCollectionsWithLoans(after: String, collections: [Int!] = null, first: Int! = 10, searchTerm: String = null): CollectionConnection!
1064
+ listListings(after: String, collectionIds: [Int!] = null, currencyAddress: Address = null, first: Int = 10, marketplaceNames: [MarketplaceEnum!] = null, searchTerm: String = null, userFilter: UserFilter = null, withLoans: Boolean = false): ListingConnection!
1065
+ listLoanActivities(after: String, first: Int! = 10, loanId: String = null, sortBy: [LoanActivitySortInput!] = null, types: [LoanActivityType!] = null): LoanActivityConnection!
1066
+ listLoans(after: String, borrowerAddress: String = null, collections: [Int!] = null, contractAddresses: [Address!] = null, currencyAddress: Address = null, excludeOwn: Boolean = null, first: Int! = 10, hideLocked: Boolean = null, nfts: [Int!] = null, orderByStatuses: Boolean = true, sortBy: [LoanSortInput!] = null, statuses: [LoanStatusType!] = null, terms: TermsFilter = null): MultiSourceLoanConnection!
1067
+ listNftDelegations(after: String, contractAddress: Address = null, first: Int! = 20, nftId: Int!): DelegationConnection!
1068
+ listNftOffersAndRenegotiations(after: String, collections: [Int!] = null, currencyAddress: Address = null, first: Int = null, hidden: Boolean = null, lenders: [String!] = null, sortBy: OffersSortInput = null, statuses: [OfferStatus!] = null, terms: TermsFilter = null): SingleNFTOfferRenegotiationConnection!
1069
+ listNftsFromCollections(after: String, collections: [Int!]!, first: Int = 10, onlyListed: Boolean = null, searchTerm: String = null, traitRanges: [TraitRangeOptionsInput!] = null, traits: [TraitKeyValueOptionsInput!] = null): NFTConnection!
1070
+ listNftsFromUser(after: String, first: Int = 10, searchTerm: String = null, sortBy: [NftSortInput!] = null, withLoans: Boolean = false, withNoWraps: Boolean = false): NFTConnection!
1071
+ listNotifications(after: String, first: Int = 50, notificationTypes: [NotificationType!] = null, onlyRead: Boolean! = false, onlyUnread: Boolean! = false): NotificationConnection!
1072
+ listOffers(after: String, borrowerAddress: String = null, collections: [Int!] = null, contractAddress: Address = null, currencyAddress: Address = null, first: Int = 10, hidden: Boolean = null, lenders: [String!] = null, nfts: [Int!] = null, onlyCollectionOffers: Boolean = false, onlySingleNftOffers: Boolean = false, sortBy: [OffersSortInput!] = null, statuses: [OfferStatus!] = null, terms: TermsFilter = null, worseOffers: Boolean = true): OfferConnection!
1073
+ listRenegotiations(after: String, collections: [Int!] = null, first: Int = 10, hidden: Boolean = null, loanId: String = null, sortBy: [OffersSortInput!] = null, statuses: [OfferStatus!] = null, terms: RefinanceTermsFilter = null): RenegotiationConnection!
1074
+ listSaleOffers(after: String, bidder: [String!] = null, first: Int = 10): OrderConnection!
1075
+ listSources(after: String, currencyAddress: Address = null, first: Int! = 10, includeLost: Boolean = null, lenders: [String!] = null, sortBy: [SourceSortInput!] = null, statuses: [LoanStatusType!] = null, terms: TermsFilter = null): SourceLostSourceConnection!
1220
1076
  listUserSaleOffers(after: String, first: Int = 10): OrderConnection!
1221
1077
  me: User
1222
1078
  }
@@ -1230,6 +1086,7 @@ input RefinanceTermsFilter {
1230
1086
  aprBps: Interval = null
1231
1087
  duration: Interval = null
1232
1088
  fee: Interval = null
1089
+ maxPrincipal: Interval = null
1233
1090
  netPrincipal: Interval = null
1234
1091
  principal: Interval = null
1235
1092
  remainingTime: Interval = null
@@ -1263,7 +1120,7 @@ type Renegotiation implements Node {
1263
1120
  type RenegotiationConnection {
1264
1121
  edges: [RenegotiationEdge!]!
1265
1122
  pageInfo: PageInfo!
1266
- totalCount: Int
1123
+ totalCount: Int!
1267
1124
  }
1268
1125
 
1269
1126
  type RenegotiationEdge {
@@ -1279,10 +1136,11 @@ input RenegotiationOfferInput {
1279
1136
  lenderAddress: Address!
1280
1137
  loanId: String!
1281
1138
  principalAmount: BigInt!
1282
- requiresLiquidation: Boolean
1283
- signerAddress: Address
1284
- strictImprovement: Boolean
1285
- targetPrincipal: [BigInt!]!
1139
+ requiresLiquidation: Boolean = null
1140
+ signerAddress: Address = null
1141
+ strictImprovement: Boolean = null
1142
+ targetPrincipal: [BigInt!] = null
1143
+ trancheIndex: [BigInt!] = null
1286
1144
  }
1287
1145
 
1288
1146
  type RenegotiationRequest implements Node {
@@ -1328,47 +1186,6 @@ input SaleOfferInput {
1328
1186
  token: Address!
1329
1187
  }
1330
1188
 
1331
- type Set implements Node {
1332
- collection: Collection
1333
- collections(after: String, first: Int! = 10): CollectionConnection!
1334
- createdDate: DateTime!
1335
- creator: User!
1336
- creatorId: String!
1337
- creators: [User!]!
1338
- description: String!
1339
- followersCount: Int!
1340
- id: String!
1341
- isActive: Boolean!
1342
- isPublic: Boolean!
1343
- isVerified: Boolean
1344
- lastModified: DateTime!
1345
- name: String!
1346
- nftsCount: Int!
1347
- setFollowerPosition: SetFollower
1348
- slug: String
1349
- statistics: ManyNftsStatistics!
1350
- tags: [Tag!]
1351
- }
1352
-
1353
- type SetFollower implements Node {
1354
- createdDate: DateTime!
1355
- id: String!
1356
- position: Int!
1357
- setId: Int!
1358
- userId: Int!
1359
- }
1360
-
1361
- type SetNftNotification implements Node & Notification {
1362
- createdOn: DateTime!
1363
- id: String!
1364
- nft: NFT!
1365
- nftNotificationReasonName: String!
1366
- notificationType: String!
1367
- readOn: DateTime
1368
- set: Set!
1369
- user: User!
1370
- }
1371
-
1372
1189
  scalar Signature
1373
1190
 
1374
1191
  input SignedOrderInput {
@@ -1396,17 +1213,19 @@ input SignedRenegotiationOfferInput {
1396
1213
  offerHash: Hash!
1397
1214
  principalAmount: BigInt!
1398
1215
  renegotiationId: BigInt!
1399
- requiresLiquidation: Boolean
1216
+ requiresLiquidation: Boolean = null
1400
1217
  signature: Signature!
1401
- signerAddress: Address
1402
- strictImprovement: Boolean
1403
- targetPrincipal: [BigInt!]!
1218
+ signerAddress: Address = null
1219
+ strictImprovement: Boolean = null
1220
+ targetPrincipal: [BigInt!] = null
1221
+ trancheIndex: [BigInt!] = null
1404
1222
  }
1405
1223
 
1406
1224
  type SingleNFTOffer implements Node & Offer {
1407
1225
  aprBps: BigInt!
1408
1226
  borrowerAddress: Address
1409
1227
  capacity: BigInt!
1228
+ consumedCapacity: BigInt!
1410
1229
  contractAddress: Address!
1411
1230
  createdDate: DateTime
1412
1231
  currency: Currency
@@ -1416,6 +1235,12 @@ type SingleNFTOffer implements Node & Offer {
1416
1235
  hidden: Boolean
1417
1236
  id: String!
1418
1237
  lenderAddress: Address
1238
+ maxPrincipal: BigInt!
1239
+ maxSeniorRepayment: BigInt!
1240
+
1241
+ """Deprecated field: use maxSeniorRepayment instead."""
1242
+ maxTrancheFloor: BigInt! @deprecated(reason: "Use maxSeniorRepayment instead.")
1243
+ netPrincipal: BigInt!
1419
1244
  nft: NFT!
1420
1245
  offerHash: Hash
1421
1246
  offerId: BigInt!
@@ -1439,12 +1264,27 @@ input SingleNFTOfferInput {
1439
1264
  expirationTime: BigInt!
1440
1265
  fee: BigInt!
1441
1266
  lenderAddress: Address!
1267
+ maxSeniorRepayment: BigInt = null
1268
+ maxTrancheFloor: BigInt = null
1442
1269
  nftId: Int!
1443
1270
  offerValidators: [OfferValidatorInput!]!
1444
1271
  principalAddress: Address!
1445
1272
  principalAmount: BigInt!
1446
- requiresLiquidation: Boolean
1447
- signerAddress: Address
1273
+ requiresLiquidation: Boolean = null
1274
+ signerAddress: Address = null
1275
+ }
1276
+
1277
+ union SingleNFTOfferRenegotiation = Renegotiation | SingleNFTOffer
1278
+
1279
+ type SingleNFTOfferRenegotiationConnection {
1280
+ edges: [SingleNFTOfferRenegotiationEdge!]!
1281
+ pageInfo: PageInfo!
1282
+ totalCount: Int!
1283
+ }
1284
+
1285
+ type SingleNFTOfferRenegotiationEdge {
1286
+ cursor: String!
1287
+ node: SingleNFTOfferRenegotiation!
1448
1288
  }
1449
1289
 
1450
1290
  type SingleNFTOrder implements Activity & Node & Order {
@@ -1479,39 +1319,17 @@ input SingleNFTSignedOfferInput {
1479
1319
  expirationTime: BigInt!
1480
1320
  fee: BigInt!
1481
1321
  lenderAddress: Address!
1322
+ maxSeniorRepayment: BigInt = null
1323
+ maxTrancheFloor: BigInt = null
1482
1324
  nftId: Int!
1483
1325
  offerHash: Hash!
1484
1326
  offerId: BigInt!
1485
1327
  offerValidators: [OfferValidatorInput!]!
1486
1328
  principalAddress: Address!
1487
1329
  principalAmount: BigInt!
1488
- requiresLiquidation: Boolean
1330
+ requiresLiquidation: Boolean = null
1489
1331
  signature: Signature!
1490
- signerAddress: Address
1491
- }
1492
-
1493
- type SingleSourceLoan implements Loan & Node {
1494
- accruedInterest: BigInt!
1495
- activities: [LoanActivity!]!
1496
- address: Address!
1497
- aprBps: BigInt!
1498
- borrowerAddress: Address!
1499
- currency: Currency
1500
- duration: BigInt!
1501
- id: String!
1502
- indexInBlock: Int!
1503
- lenderAddress: Address!
1504
- loanId: Int!
1505
- nft: NFT!
1506
- offer: Offer!
1507
- principalAddress: Address!
1508
- principalAmount: BigInt!
1509
- repaidActivity: LoanRepaid
1510
- requiresLiquidation: Boolean!
1511
- startTime: DateTime!
1512
- status: String!
1513
- timestamp: DateTime!
1514
- txHash: Hash!
1332
+ signerAddress: Address = null
1515
1333
  }
1516
1334
 
1517
1335
  type Source implements Node {
@@ -1521,9 +1339,11 @@ type Source implements Node {
1521
1339
  lenderAddress: String!
1522
1340
  loan: MultiSourceLoan!
1523
1341
  loanId: String!
1342
+ loanIndex: Int
1524
1343
  loanReferenceId: String!
1525
1344
  originationFee: BigInt!
1526
1345
  principalAmount: BigInt!
1346
+ seniorPrincipalAmount: BigInt
1527
1347
  startTime: DateTime!
1528
1348
  }
1529
1349
 
@@ -1533,11 +1353,26 @@ type SourceHistory implements Node {
1533
1353
  id: String!
1534
1354
  lenderAddress: String!
1535
1355
  loanId: String!
1356
+ loanIndex: Int
1536
1357
  originationFee: BigInt!
1537
1358
  principalAmount: BigInt!
1359
+ seniorPrincipalAmount: BigInt
1538
1360
  startTime: DateTime!
1539
1361
  }
1540
1362
 
1363
+ union SourceLostSource = LostSource | Source
1364
+
1365
+ type SourceLostSourceConnection {
1366
+ edges: [SourceLostSourceEdge!]!
1367
+ pageInfo: PageInfo!
1368
+ totalCount: Int!
1369
+ }
1370
+
1371
+ type SourceLostSourceEdge {
1372
+ cursor: String!
1373
+ node: SourceLostSource!
1374
+ }
1375
+
1541
1376
  enum SourceSortField {
1542
1377
  ACCRUED_INTEREST
1543
1378
  APR_BPS
@@ -1554,36 +1389,23 @@ input SourceSortInput {
1554
1389
  order: Ordering!
1555
1390
  }
1556
1391
 
1557
- union SourcesAndLostSources = LostSource | Source
1558
-
1559
- type SourcesAndLostSourcesConnection {
1560
- edges: [SourcesAndLostSourcesEdge!]!
1561
- pageInfo: PageInfo!
1562
- totalCount: Int
1563
- }
1564
-
1565
- type SourcesAndLostSourcesEdge {
1566
- cursor: String!
1567
- node: SourcesAndLostSources!
1568
- }
1569
-
1570
- type Tag implements Node {
1571
- createdDate: DateTime!
1572
- id: String!
1573
- value: String!
1392
+ type StatByCollection {
1393
+ collection: Collection!
1394
+ value: BigInt!
1574
1395
  }
1575
1396
 
1576
1397
  input TermsFilter {
1577
1398
  aprBps: Interval = null
1578
1399
  duration: Interval = null
1579
1400
  fee: Interval = null
1401
+ maxPrincipal: Interval = null
1580
1402
  netPrincipal: Interval = null
1581
1403
  principal: Interval = null
1582
1404
  }
1583
1405
 
1584
1406
  type Trait {
1585
1407
  collectionId: String!
1586
- statistics: ManyNftsStatistics!
1408
+ statistics: CollectionStatistics!
1587
1409
  type: String!
1588
1410
  value: String!
1589
1411
  }
@@ -1615,6 +1437,7 @@ type User implements Node {
1615
1437
  cartId: Int
1616
1438
  createdDate: DateTime!
1617
1439
  id: String!
1440
+ linkedWallets: [LinkedWallets!]!
1618
1441
  mail: String
1619
1442
  mailValidationDate: DateTime
1620
1443
  originalProfilePicture: String
@@ -1623,6 +1446,7 @@ type User implements Node {
1623
1446
  size128ProfilePicture: String
1624
1447
  size256ProfilePicture: String
1625
1448
  size512ProfilePicture: String
1449
+ statistics: UserStatistics!
1626
1450
  twitterHandle: String
1627
1451
  updatedAt: DateTime
1628
1452
  usedProduct: Boolean!
@@ -1635,50 +1459,114 @@ input UserFilter {
1635
1459
  userId: Int!
1636
1460
  }
1637
1461
 
1638
- """
1639
- Represents NULL values
1640
- """
1641
- scalar Void
1642
- `;var yt=pt(ve);Object.assign(BigInt.prototype,{toJSON(){return this.toString()}});var ut={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}},ct=d(s=>lt(async e=>await s.authorizeRequest(e)),"authLink"),mt=Re.from([dt({schema:yt,typesMap:ut}),st({uri:({operationName:s})=>`${Me()}?operation=${encodeURIComponent(s)}`})]),Le=d(s=>{let e=new W({wallet:s});return new rt({link:Re.from([ct(e),mt]),defaultOptions:{query:{errorPolicy:"all",fetchPolicy:"no-cache"},mutate:{errorPolicy:"all",fetchPolicy:"no-cache"},watchQuery:{fetchPolicy:"no-cache",nextFetchPolicy:"no-cache",errorPolicy:"ignore"}},cache:new ot({})})},"apolloClient");import m from"graphql-tag";var he=(r=>(r.LoanAuctioned="LOAN_AUCTIONED",r.LoanDefaulted="LOAN_DEFAULTED",r.LoanForeclosed="LOAN_FORECLOSED",r.LoanInitiated="LOAN_INITIATED",r.LoanRepaid="LOAN_REPAID",r.LoanSentToAuction="LOAN_SENT_TO_AUCTION",r))(he||{}),te=(t=>(t.Gondi="GONDI",t.Nftfi="NFTFI",t))(te||{});var we=(r=>(r.Active="ACTIVE",r.Cancelled="CANCELLED",r.Executed="EXECUTED",r.Expired="EXPIRED",r.Inactive="INACTIVE",r.Outperformed="OUTPERFORMED",r))(we||{}),ne=(c=>(c.AprBps="APR_BPS",c.CreatedDate="CREATED_DATE",c.DailyInterest="DAILY_INTEREST",c.Duration="DURATION",c.Expiration="EXPIRATION",c.NetInterest="NET_INTEREST",c.NetPrincipal="NET_PRINCIPAL",c.PrincipalAmount="PRINCIPAL_AMOUNT",c.Repayment="REPAYMENT",c.Status="STATUS",c.TotalInterest="TOTAL_INTEREST",c))(ne||{}),ae=(t=>(t.Asc="ASC",t.Desc="DESC",t))(ae||{});var Zi=m`
1643
- fragment SaleOfferInfo on SingleNFTOrder {
1462
+ type UserStatistics {
1463
+ defaultedPrincipal(currencyAddress: Address!, walletsAddresses: [Address!]!): BigInt!
1464
+ interestEarnedByCollection(currencyAddress: Address!, walletsAddresses: [Address!]!): [StatByCollection!]!
1465
+ loanCount(currencyAddress: Address!, walletsAddresses: [Address!]!): BigInt!
1466
+ loanCountByCollection(currencyAddress: Address!, walletsAddresses: [Address!]!): [StatByCollection!]!
1467
+ loanPrincipalByCollection(currencyAddress: Address!, walletsAddresses: [Address!]!): [StatByCollection!]!
1468
+ originationCountAndPrincipalByMonth(currencyAddress: Address!, walletsAddresses: [Address!]!): [[BigInt!]!]!
1469
+ outstandingPrincipal(currencyAddress: Address!, walletsAddresses: [Address!]!): BigInt!
1470
+ renegotiationCountAndPrincipalByMonth(currencyAddress: Address!, walletsAddresses: [Address!]!): [[BigInt!]!]!
1471
+ totalLentPrincipal(currencyAddress: Address!, walletsAddresses: [Address!]!): BigInt!
1472
+ wavgActualAprByCollection(currencyAddress: Address!, walletsAddresses: [Address!]!): [StatByCollection!]!
1473
+ wavgExpectedAprByCollection(currencyAddress: Address!, walletsAddresses: [Address!]!): [StatByCollection!]!
1474
+ wavgOutstandingApr(currencyAddress: Address!, walletsAddresses: [Address!]!): BigInt!
1475
+ wavgRepaidApr(currencyAddress: Address!, walletsAddresses: [Address!]!): BigInt!
1476
+ }
1477
+
1478
+ """Represents NULL values"""
1479
+ scalar Void`;var pt=y(()=>`${ee()}/lending/graphql`,"apiUrl"),ot=st(Ae);Object.assign(BigInt.prototype,{toJSON(){return this.toString()}});var yt={datetime:{serialize:p=>p instanceof Date?p.toISOString():null,parseValue:p=>typeof p=="string"?new Date(p):p instanceof Date?p:null},BigInt:{serialize:p=>typeof p=="bigint"?String(p):null,parseValue:p=>typeof p=="string"?BigInt(p):null},DateTime:{serialize:p=>p instanceof Date?p.toISOString():null,parseValue:p=>typeof p=="string"?new Date(p):p instanceof Date?p:null}},lt=y(p=>it(async e=>await p.authorizeRequest(e)),"authLink"),ut=Fe.from([rt({schema:ot,typesMap:yt}),nt({uri:({operationName:p})=>`${pt()}?operation=${encodeURIComponent(p)}`})]),Se=y(p=>{let e=new D({wallet:p});return new tt({link:Fe.from([lt(e),ut]),defaultOptions:{query:{errorPolicy:"all",fetchPolicy:"no-cache"},mutate:{errorPolicy:"all",fetchPolicy:"no-cache"},watchQuery:{fetchPolicy:"no-cache",nextFetchPolicy:"no-cache",errorPolicy:"ignore"}},cache:new at({})})},"apolloClient");import c from"graphql-tag";var Me=(r=>(r.LoanAuctioned="LOAN_AUCTIONED",r.LoanDefaulted="LOAN_DEFAULTED",r.LoanForeclosed="LOAN_FORECLOSED",r.LoanInitiated="LOAN_INITIATED",r.LoanRepaid="LOAN_REPAID",r.LoanSentToAuction="LOAN_SENT_TO_AUCTION",r))(Me||{}),ie=(t=>(t.Gondi="GONDI",t.Nftfi="NFTFI",t))(ie||{});var xe=(r=>(r.Active="ACTIVE",r.Cancelled="CANCELLED",r.Executed="EXECUTED",r.Expired="EXPIRED",r.Inactive="INACTIVE",r.Outperformed="OUTPERFORMED",r))(xe||{}),re=(m=>(m.AprBps="APR_BPS",m.CreatedDate="CREATED_DATE",m.DailyInterest="DAILY_INTEREST",m.Duration="DURATION",m.Expiration="EXPIRATION",m.MaxPrincipal="MAX_PRINCIPAL",m.NetInterest="NET_INTEREST",m.NetPrincipal="NET_PRINCIPAL",m.PrincipalAmount="PRINCIPAL_AMOUNT",m.Repayment="REPAYMENT",m.Status="STATUS",m.TotalInterest="TOTAL_INTEREST",m))(re||{}),se=(t=>(t.Asc="ASC",t.Desc="DESC",t))(se||{});var ve=c`
1480
+ fragment CurrencyInfo on Currency {
1481
+ address
1482
+ decimals
1483
+ }
1484
+ `,we=c`
1485
+ fragment CurrencyAmountInfo on CurrencyAmount {
1486
+ amount
1487
+ currency {
1488
+ ...CurrencyInfo
1489
+ }
1490
+ }
1491
+ ${ve}`,En=c`
1492
+ fragment SaleOfferInfo on SingleNFTOrder {
1493
+ id
1494
+ netAmount
1495
+ status
1496
+ marketPlace
1497
+ fees
1498
+ maker
1499
+ expiration
1500
+ createdDate
1501
+ startTime
1502
+ hidden
1503
+ signature
1504
+ currencyAddress
1505
+ nonce
1506
+ }
1507
+ `,dt=c`
1508
+ mutation listNft($nftId: Int!) {
1509
+ addOrUpdateListing(nftId: $nftId) {
1644
1510
  id
1645
- netAmount
1646
- status
1647
- marketPlace
1648
- fees
1649
- maker
1650
- expiration
1651
- createdDate
1652
- startTime
1653
- hidden
1654
- signature
1655
- currencyAddress
1656
- nonce
1657
1511
  }
1658
- `,ft=m`
1659
- mutation listNft($nftId: Int!) {
1660
- addOrUpdateListing(nftId: $nftId) {
1661
- id
1662
- }
1512
+ }
1513
+ `,mt=c`
1514
+ mutation unlistNft($nftId: Int!) {
1515
+ removeListing(nftId: $nftId) {
1516
+ id
1663
1517
  }
1664
- `,Tt=m`
1665
- mutation unlistNft($nftId: Int!) {
1666
- removeListing(nftId: $nftId) {
1667
- id
1518
+ }
1519
+ `,ct=c`
1520
+ mutation generateCollectionOfferHash($offerInput: CollectionOfferInput!) {
1521
+ offer: generateCollectionOfferToBeSigned(offerInput: $offerInput) {
1522
+ offerHash
1523
+ offerId
1524
+ lenderAddress
1525
+ signerAddress
1526
+ borrowerAddress
1527
+ validators {
1528
+ validator
1529
+ arguments
1530
+ }
1531
+ collection {
1532
+ contractData {
1533
+ contractAddress
1534
+ }
1668
1535
  }
1669
1536
  }
1670
- `,gt=m`
1671
- mutation generateCollectionOfferHash($offerInput: CollectionOfferInput!) {
1672
- offer: generateCollectionOfferToBeSigned(offerInput: $offerInput) {
1673
- offerHash
1674
- offerId
1675
- lenderAddress
1676
- signerAddress
1677
- borrowerAddress
1678
- validators {
1679
- validator
1680
- arguments
1537
+ }
1538
+ `,Tt=c`
1539
+ mutation saveCollectionOffer($offer: CollectionSignedOfferInput!) {
1540
+ offer: saveSignedCollectionOffer(signedOfferInput: $offer) {
1541
+ id
1542
+ status
1543
+ collection {
1544
+ contractData {
1545
+ contractAddress
1681
1546
  }
1547
+ }
1548
+ }
1549
+ }
1550
+ `,ft=c`
1551
+ mutation hideOffer($contract: Address!, $id: String!) {
1552
+ hideOffer(contractAddress: $contract, offerId: $id) {
1553
+ id
1554
+ }
1555
+ }
1556
+ `,bt=c`
1557
+ mutation generateSingleNftOfferHash($offerInput: SingleNFTOfferInput!) {
1558
+ offer: generateSingleNftOfferToBeSigned(offerInput: $offerInput) {
1559
+ offerHash
1560
+ offerId
1561
+ lenderAddress
1562
+ signerAddress
1563
+ borrowerAddress
1564
+ validators {
1565
+ validator
1566
+ arguments
1567
+ }
1568
+ nft {
1569
+ tokenId
1682
1570
  collection {
1683
1571
  contractData {
1684
1572
  contractAddress
@@ -1686,11 +1574,14 @@ scalar Void
1686
1574
  }
1687
1575
  }
1688
1576
  }
1689
- `,bt=m`
1690
- mutation saveCollectionOffer($offer: CollectionSignedOfferInput!) {
1691
- offer: saveSignedCollectionOffer(signedOfferInput: $offer) {
1692
- id
1693
- status
1577
+ }
1578
+ `,gt=c`
1579
+ mutation saveSingleNftOffer($offer: SingleNFTSignedOfferInput!) {
1580
+ offer: saveSignedSingleNftOffer(signedOfferInput: $offer) {
1581
+ id
1582
+ status
1583
+ nft {
1584
+ tokenId
1694
1585
  collection {
1695
1586
  contractData {
1696
1587
  contractAddress
@@ -1698,378 +1589,391 @@ scalar Void
1698
1589
  }
1699
1590
  }
1700
1591
  }
1701
- `,Ft=m`
1702
- mutation hideOffer($contract: Address!, $id: String!) {
1703
- hideOffer(contractAddress: $contract, offerId: $id) {
1704
- id
1705
- }
1706
- }
1707
- `,St=m`
1708
- mutation generateSingleNftOfferHash($offerInput: SingleNFTOfferInput!) {
1709
- offer: generateSingleNftOfferToBeSigned(offerInput: $offerInput) {
1710
- offerHash
1711
- offerId
1712
- lenderAddress
1713
- signerAddress
1714
- borrowerAddress
1715
- validators {
1716
- validator
1717
- arguments
1718
- }
1719
- nft {
1720
- tokenId
1721
- collection {
1722
- contractData {
1723
- contractAddress
1724
- }
1725
- }
1726
- }
1727
- }
1592
+ }
1593
+ `,It=c`
1594
+ mutation unhideOffer($contract: Address!, $id: String!) {
1595
+ showOffer(contractAddress: $contract, offerId: $id) {
1596
+ id
1728
1597
  }
1729
- `,It=m`
1730
- mutation saveSingleNftOffer($offer: SingleNFTSignedOfferInput!) {
1731
- offer: saveSignedSingleNftOffer(signedOfferInput: $offer) {
1732
- id
1733
- status
1734
- nft {
1735
- tokenId
1736
- collection {
1737
- contractData {
1738
- contractAddress
1739
- }
1598
+ }
1599
+ `,At=c`
1600
+ mutation generateRenegotiationOfferHash($renegotiationInput: RenegotiationOfferInput!) {
1601
+ offer: generateRenegotiationOfferToBeSigned(
1602
+ renegotiationInput: $renegotiationInput
1603
+ ) {
1604
+ loanId
1605
+ renegotiationId
1606
+ offerHash
1607
+ lenderAddress
1608
+ signerAddress
1609
+ nft {
1610
+ tokenId
1611
+ collection {
1612
+ contractData {
1613
+ contractAddress
1740
1614
  }
1741
1615
  }
1742
1616
  }
1743
1617
  }
1744
- `,At=m`
1745
- mutation unhideOffer($contract: Address!, $id: String!) {
1746
- showOffer(contractAddress: $contract, offerId: $id) {
1747
- id
1748
- }
1618
+ }
1619
+ `,Ft=c`
1620
+ mutation hideRenegotiationOffer($id: String!, $contractAddress: Address!) {
1621
+ hideRenegotiation(renegotiationId: $id, contractAddress: $contractAddress) {
1622
+ id
1749
1623
  }
1750
- `,Ot=m`
1751
- mutation generateRenegotiationOfferHash(
1752
- $renegotiationInput: RenegotiationOfferInput!
1753
- ) {
1754
- offer: generateRenegotiationOfferToBeSigned(
1755
- renegotiationInput: $renegotiationInput
1756
- ) {
1757
- loanId
1758
- renegotiationId
1759
- offerHash
1760
- lenderAddress
1761
- signerAddress
1762
- nft {
1763
- tokenId
1764
- collection {
1765
- contractData {
1766
- contractAddress
1767
- }
1768
- }
1769
- }
1770
- }
1624
+ }
1625
+ `,St=c`
1626
+ mutation saveRenegotiationOffer($offer: SignedRenegotiationOfferInput!) {
1627
+ offer: saveRenegotiationSignedOffer(signedRenegotiationInput: $offer) {
1628
+ id
1629
+ status
1771
1630
  }
1772
- `,xt=m`
1773
- mutation hideRenegotiationOffer($id: String!, $contractAddress: Address!) {
1774
- hideRenegotiation(renegotiationId: $id, contractAddress: $contractAddress) {
1775
- id
1776
- }
1631
+ }
1632
+ `,Mt=c`
1633
+ mutation unhideRenegotiationOffer($id: String!, $contractAddress: Address!) {
1634
+ showRenegotiation(renegotiationId: $id, contractAddress: $contractAddress) {
1635
+ id
1777
1636
  }
1778
- `,Mt=m`
1779
- mutation saveRenegotiationOffer($offer: SignedRenegotiationOfferInput!) {
1780
- offer: saveRenegotiationSignedOffer(signedRenegotiationInput: $offer) {
1781
- id
1782
- status
1783
- }
1637
+ }
1638
+ `,xt=c`
1639
+ mutation hideSaleOffer($id: String!) {
1640
+ hideSaleOffer(saleOfferId: $id) {
1641
+ id
1784
1642
  }
1785
- `,Pt=m`
1786
- mutation unhideRenegotiationOffer($id: String!, $contractAddress: Address!) {
1787
- showRenegotiation(renegotiationId: $id, contractAddress: $contractAddress) {
1788
- id
1789
- }
1643
+ }
1644
+ `,vt=c`
1645
+ query listBestBidsForNft($nftId: Int!, $currencyAddress: String!) {
1646
+ bids: listBestBidsForNft(nftId: $nftId, currencyAddress: $currencyAddress) {
1647
+ id
1648
+ netAmount
1649
+ status
1650
+ marketPlace
1651
+ fees
1652
+ maker
1653
+ expiration
1654
+ createdDate
1655
+ hidden
1656
+ signature
1657
+ currencyAddress
1658
+ startTime
1659
+ nonce
1790
1660
  }
1791
- `,Ct=m`
1792
- mutation hideSaleOffer($id: String!) {
1793
- hideSaleOffer(saleOfferId: $id) {
1794
- id
1795
- }
1661
+ }
1662
+ `,wt=c`
1663
+ mutation saveSignedSaleOffer($offer: SignedOrderInput!) {
1664
+ offer: saveSignedSaleOffer(signedOfferInput: $offer) {
1665
+ id
1666
+ status
1796
1667
  }
1797
- `,vt=m`
1798
- query listBestBidsForNft($nftId: Int!, $currencyAddress: String!) {
1799
- bids: listBestBidsForNft(nftId: $nftId, currencyAddress: $currencyAddress) {
1800
- id
1801
- netAmount
1802
- status
1803
- marketPlace
1804
- fees
1805
- maker
1806
- expiration
1807
- createdDate
1808
- hidden
1809
- signature
1810
- currencyAddress
1811
- startTime
1812
- nonce
1813
- }
1668
+ }
1669
+ `,Ot=c`
1670
+ mutation unhideSaleOffer($id: String!) {
1671
+ showSaleOffer(saleOfferId: $id) {
1672
+ id
1814
1673
  }
1815
- `,Rt=m`
1816
- mutation saveSignedSaleOffer($offer: SignedOrderInput!) {
1817
- offer: saveSignedSaleOffer(signedOfferInput: $offer) {
1818
- id
1819
- status
1674
+ }
1675
+ `,_t=c`
1676
+ query collections($currency: Address!, $after: String) {
1677
+ collections: listCollections(after: $after) {
1678
+ pageInfo {
1679
+ endCursor
1680
+ hasNextPage
1820
1681
  }
1821
- }
1822
- `,Lt=m`
1823
- mutation unhideSaleOffer($id: String!) {
1824
- showSaleOffer(saleOfferId: $id) {
1825
- id
1682
+ edges {
1683
+ node {
1684
+ id
1685
+ name
1686
+ slug
1687
+ description
1688
+ discordUrl
1689
+ twitterUsername
1690
+ externalUrl
1691
+ collectionUrl
1692
+ verified
1693
+ royalties {
1694
+ percentage
1695
+ beneficiary
1696
+ }
1697
+ image {
1698
+ cacheUrl
1699
+ }
1700
+ bannerImage {
1701
+ cacheUrl
1702
+ }
1703
+ contractData {
1704
+ blockchain
1705
+ contractAddress
1706
+ createdDate
1707
+ creatorAddress
1708
+ }
1709
+ statistics {
1710
+ floorPrice {
1711
+ ...CurrencyAmountInfo
1712
+ }
1713
+ floorPrice7d
1714
+ floorPrice30d
1715
+ bestOffer {
1716
+ ...CurrencyAmountInfo
1717
+ }
1718
+ totalVolume
1719
+ totalVolume1y
1720
+ totalVolume3m
1721
+ totalVolume1m
1722
+ totalVolume1w
1723
+ totalLoanVolume(currencyAddress: $currency)
1724
+ totalLoanVolume1w(currencyAddress: $currency)
1725
+ totalLoanVolume1m(currencyAddress: $currency)
1726
+ totalLoanVolume3m(currencyAddress: $currency)
1727
+ totalLoanVolume1y(currencyAddress: $currency)
1728
+ numberOfPricedNfts
1729
+ nftsCount
1730
+ percentageInOutstandingLoans
1731
+ repaymentRate
1732
+ numberOfOffers(currencyAddress: $currency)
1733
+ }
1734
+ }
1826
1735
  }
1827
1736
  }
1828
- `,ht=m`
1829
- query collectionsIdByContractAddress($contractAddress: Address!) {
1830
- collections: getCollectionsByContractAddress(
1831
- contractAddress: $contractAddress
1832
- ) {
1833
- id
1834
- }
1737
+ }
1738
+ ${we}`,Ct=c`
1739
+ query collectionsIdByContractAddress($contractAddress: Address!) {
1740
+ collections: getCollectionsByContractAddress(contractAddress: $contractAddress) {
1741
+ id
1835
1742
  }
1836
- `,wt=m`
1837
- query collectionIdBySlug($slug: String!) {
1838
- collection: getCollectionBySlug(slug: $slug) {
1839
- id
1840
- }
1743
+ }
1744
+ `,ht=c`
1745
+ query collectionIdBySlug($slug: String!) {
1746
+ collection: getCollectionBySlug(slug: $slug) {
1747
+ id
1841
1748
  }
1842
- `,_t=m`
1843
- query listListings(
1844
- $collections: [Int!]
1845
- $userFilter: UserFilter
1846
- $marketplaceNames: [MarketplaceEnum!]
1847
- $first: Int = 24
1848
- $after: String
1749
+ }
1750
+ `,Lt=c`
1751
+ query listListings($collections: [Int!], $userFilter: UserFilter, $marketplaceNames: [MarketplaceEnum!], $first: Int = 24, $after: String) {
1752
+ result: listListings(
1753
+ collectionIds: $collections
1754
+ userFilter: $userFilter
1755
+ marketplaceNames: $marketplaceNames
1756
+ first: $first
1757
+ after: $after
1849
1758
  ) {
1850
- result: listListings(
1851
- collectionIds: $collections
1852
- userFilter: $userFilter
1853
- marketplaceNames: $marketplaceNames
1854
- first: $first
1855
- after: $after
1856
- ) {
1857
- pageInfo {
1858
- endCursor
1859
- hasNextPage
1860
- }
1861
- edges {
1862
- node {
1759
+ pageInfo {
1760
+ endCursor
1761
+ hasNextPage
1762
+ }
1763
+ edges {
1764
+ node {
1765
+ id
1766
+ marketplaceName
1767
+ createdDate
1768
+ user {
1769
+ walletAddress
1770
+ }
1771
+ nft {
1863
1772
  id
1864
- marketplaceName
1865
- createdDate
1866
- user {
1867
- walletAddress
1868
- }
1869
- nft {
1773
+ tokenId
1774
+ collection {
1870
1775
  id
1871
- tokenId
1872
- collection {
1873
- id
1874
- slug
1875
- contractData {
1876
- contractAddress
1877
- }
1776
+ slug
1777
+ contractData {
1778
+ contractAddress
1878
1779
  }
1879
1780
  }
1880
1781
  }
1881
1782
  }
1882
1783
  }
1883
1784
  }
1884
- `,Bt=m`
1885
- query listLoans(
1886
- $borrowerAddress: String = ""
1887
- $collections: [Int!] = []
1888
- $nfts: [Int!]
1889
- $statuses: [LoanStatusType!] = []
1890
- $sortBy: [LoanSortInput!] = []
1891
- $terms: TermsFilter
1892
- $orderByStatuses: Boolean
1893
- $loansCurrencyAddress: Address
1894
- $first: Int = 24
1895
- $after: String
1785
+ }
1786
+ `,Pt=c`
1787
+ query listLoans($borrowerAddress: String = "", $collections: [Int!] = [], $nfts: [Int!], $statuses: [LoanStatusType!] = [], $sortBy: [LoanSortInput!] = [], $terms: TermsFilter, $orderByStatuses: Boolean, $loansCurrencyAddress: Address, $first: Int = 24, $after: String) {
1788
+ loans: listLoans(
1789
+ borrowerAddress: $borrowerAddress
1790
+ collections: $collections
1791
+ nfts: $nfts
1792
+ statuses: $statuses
1793
+ sortBy: $sortBy
1794
+ terms: $terms
1795
+ orderByStatuses: $orderByStatuses
1796
+ currencyAddress: $loansCurrencyAddress
1797
+ first: $first
1798
+ after: $after
1896
1799
  ) {
1897
- loans: listLoans(
1898
- borrowerAddress: $borrowerAddress
1899
- collections: $collections
1900
- nfts: $nfts
1901
- statuses: $statuses
1902
- sortBy: $sortBy
1903
- terms: $terms
1904
- orderByStatuses: $orderByStatuses
1905
- currencyAddress: $loansCurrencyAddress
1906
- first: $first
1907
- after: $after
1908
- ) {
1909
- totalCount
1910
- pageInfo {
1911
- endCursor
1912
- hasNextPage
1913
- }
1914
- edges {
1915
- node {
1916
- id
1800
+ totalCount
1801
+ pageInfo {
1802
+ endCursor
1803
+ hasNextPage
1804
+ }
1805
+ edges {
1806
+ node {
1807
+ id
1808
+ address
1809
+ loanId
1810
+ timestamp
1811
+ txHash
1812
+ indexInBlock
1813
+ borrowerAddress
1814
+ principalAddress
1815
+ startTime
1816
+ duration
1817
+ status
1818
+ offer {
1819
+ offerId
1820
+ signerAddress
1821
+ }
1822
+ currency {
1823
+ symbol
1824
+ decimals
1917
1825
  address
1918
- loanId
1826
+ }
1827
+ repaidActivity {
1828
+ totalInterest
1919
1829
  timestamp
1920
- txHash
1921
- indexInBlock
1922
- borrowerAddress
1923
- principalAddress
1924
- startTime
1925
- duration
1926
- status
1927
- offer {
1928
- offerId
1929
- signerAddress
1930
- }
1931
- currency {
1932
- symbol
1933
- decimals
1934
- address
1935
- }
1936
- repaidActivity {
1937
- totalInterest
1938
- timestamp
1830
+ }
1831
+ principalAmount
1832
+ blendedAprBps
1833
+ totalOriginationFee
1834
+ nft {
1835
+ id
1836
+ name
1837
+ tokenId
1838
+ nftId
1839
+ owner
1840
+ image {
1841
+ data
1842
+ cacheUrl
1843
+ contentTypeMime
1844
+ accessTypeName
1939
1845
  }
1940
- principalAmount
1941
- blendedAprBps
1942
- totalOriginationFee
1943
- nft {
1846
+ collection {
1944
1847
  id
1848
+ slug
1945
1849
  name
1946
- tokenId
1947
- nftId
1948
- owner
1949
- image {
1950
- data
1951
- cacheUrl
1952
- contentTypeMime
1953
- accessTypeName
1954
- }
1955
- collection {
1956
- id
1957
- slug
1958
- name
1959
- nftsCount
1960
- contractData {
1961
- contractAddress
1962
- }
1850
+ nftsCount
1851
+ contractData {
1852
+ contractAddress
1963
1853
  }
1964
1854
  }
1965
- sources {
1966
- id
1967
- loanId
1968
- originationFee
1969
- principalAmount
1970
- lenderAddress
1971
- accruedInterest
1972
- aprBps
1973
- startTime
1974
- }
1855
+ }
1856
+ sources {
1857
+ id
1858
+ loanId
1859
+ originationFee
1860
+ principalAmount
1861
+ lenderAddress
1862
+ accruedInterest
1863
+ aprBps
1864
+ startTime
1975
1865
  }
1976
1866
  }
1977
1867
  }
1978
1868
  }
1979
- `,Nt=m`
1980
- query nftIdByContractAddressAndTokenId(
1981
- $contractAddress: Address!
1982
- $tokenId: BigInt!
1869
+ }
1870
+ `,Rt=c`
1871
+ query nftIdByContractAddressAndTokenId($contractAddress: Address!, $tokenId: BigInt!) {
1872
+ nft: getNftByContractAddressAndTokenId(
1873
+ contractAddress: $contractAddress
1874
+ tokenId: $tokenId
1983
1875
  ) {
1984
- nft: getNftByContractAddressAndTokenId(
1985
- contractAddress: $contractAddress
1986
- tokenId: $tokenId
1987
- ) {
1988
- id
1989
- }
1876
+ id
1990
1877
  }
1991
- `,kt=m`
1992
- query nftIdBySlugTokenId($slug: String!, $tokenId: BigInt!) {
1993
- nft: getNftBySlugAndTokenId(slug: $slug, tokenId: $tokenId) {
1994
- id
1995
- }
1878
+ }
1879
+ `,Et=c`
1880
+ query nftIdBySlugTokenId($slug: String!, $tokenId: BigInt!) {
1881
+ nft: getNftBySlugAndTokenId(slug: $slug, tokenId: $tokenId) {
1882
+ id
1996
1883
  }
1997
- `,Et=m`
1998
- query listOffers(
1999
- $borrowerAddress: String
2000
- $lenderAddress: String
2001
- $sortBy: OffersSortInput!
2002
- $terms: TermsFilter
2003
- $statuses: [OfferStatus!] = [ACTIVE, CANCELLED, INACTIVE, EXPIRED]
2004
- $nfts: [Int!]
2005
- $collections: [Int!]
2006
- $onlySingleNftOffers: Boolean
2007
- $onlyCollectionOffers: Boolean
2008
- $first: Int = 24
2009
- $after: String
2010
- ) {
2011
- result: listOffers(
2012
- borrowerAddress: $borrowerAddress
2013
- lenderAddress: $lenderAddress
2014
- sortBy: [$sortBy]
2015
- terms: $terms
2016
- nfts: $nfts
2017
- collections: $collections
2018
- onlySingleNftOffers: $onlySingleNftOffers
2019
- onlyCollectionOffers: $onlyCollectionOffers
2020
- statuses: $statuses
2021
- first: $first
2022
- after: $after
2023
- ) {
2024
- pageInfo {
2025
- endCursor
2026
- hasNextPage
2027
- }
2028
- edges {
2029
- node {
1884
+ }
1885
+ `,Bt=c`
1886
+ query ownedNfts($after: String) {
1887
+ ownedNfts: listNftsFromUser(after: $after) {
1888
+ pageInfo {
1889
+ endCursor
1890
+ hasNextPage
1891
+ }
1892
+ edges {
1893
+ node {
1894
+ id
1895
+ collection {
2030
1896
  id
2031
- offerId
2032
- lenderAddress
2033
- borrowerAddress
2034
- signerAddress
2035
- contractAddress
2036
- requiresLiquidation
2037
- principalAddress
2038
- principalAmount
2039
- currency {
2040
- symbol
2041
- decimals
2042
- address
2043
- }
2044
- aprBps
2045
- fee
2046
- capacity
2047
- expirationTime
2048
- duration
2049
- status
2050
- offerHash
2051
- signature
2052
- createdDate
2053
- repayment
2054
- hidden
2055
- validators {
2056
- arguments
2057
- validator
2058
- }
2059
- ... on SingleNFTOffer {
2060
- nft {
2061
- id
2062
- tokenId
2063
- collection {
2064
- id
2065
- slug
2066
- contractData {
2067
- contractAddress
2068
- }
1897
+ }
1898
+ tokenId
1899
+ price
1900
+ priceCurrencyAddress
1901
+ activeLoan {
1902
+ id
1903
+ }
1904
+ statistics {
1905
+ lastSale {
1906
+ order {
1907
+ price
1908
+ currency {
1909
+ ...CurrencyInfo
2069
1910
  }
2070
1911
  }
2071
1912
  }
2072
- ... on CollectionOffer {
1913
+ topTraitFloorPrice {
1914
+ ...CurrencyAmountInfo
1915
+ }
1916
+ }
1917
+ }
1918
+ }
1919
+ }
1920
+ }
1921
+ ${ve}
1922
+ ${we}`,kt=c`
1923
+ query listOffers($borrowerAddress: String, $lenders: [String!], $sortBy: OffersSortInput!, $terms: TermsFilter, $statuses: [OfferStatus!] = [ACTIVE, CANCELLED, INACTIVE, EXPIRED], $nfts: [Int!], $collections: [Int!], $onlySingleNftOffers: Boolean, $onlyCollectionOffers: Boolean, $first: Int = 24, $after: String) {
1924
+ result: listOffers(
1925
+ borrowerAddress: $borrowerAddress
1926
+ lenders: $lenders
1927
+ sortBy: [$sortBy]
1928
+ terms: $terms
1929
+ nfts: $nfts
1930
+ collections: $collections
1931
+ onlySingleNftOffers: $onlySingleNftOffers
1932
+ onlyCollectionOffers: $onlyCollectionOffers
1933
+ statuses: $statuses
1934
+ first: $first
1935
+ after: $after
1936
+ ) {
1937
+ pageInfo {
1938
+ endCursor
1939
+ hasNextPage
1940
+ }
1941
+ edges {
1942
+ node {
1943
+ id
1944
+ offerId
1945
+ lenderAddress
1946
+ borrowerAddress
1947
+ signerAddress
1948
+ contractAddress
1949
+ requiresLiquidation
1950
+ principalAddress
1951
+ principalAmount
1952
+ currency {
1953
+ symbol
1954
+ decimals
1955
+ address
1956
+ }
1957
+ aprBps
1958
+ fee
1959
+ capacity
1960
+ expirationTime
1961
+ duration
1962
+ status
1963
+ offerHash
1964
+ signature
1965
+ createdDate
1966
+ repayment
1967
+ hidden
1968
+ maxSeniorRepayment
1969
+ validators {
1970
+ arguments
1971
+ validator
1972
+ }
1973
+ ... on SingleNFTOffer {
1974
+ nft {
1975
+ id
1976
+ tokenId
2073
1977
  collection {
2074
1978
  id
2075
1979
  slug
@@ -2079,8 +1983,18 @@ scalar Void
2079
1983
  }
2080
1984
  }
2081
1985
  }
1986
+ ... on CollectionOffer {
1987
+ collection {
1988
+ id
1989
+ slug
1990
+ contractData {
1991
+ contractAddress
1992
+ }
1993
+ }
1994
+ }
2082
1995
  }
2083
1996
  }
2084
1997
  }
2085
- `;function _e(s){return{listNft(e,t){return s(ft,e,t)},unlistNft(e,t){return s(Tt,e,t)},generateCollectionOfferHash(e,t){return s(gt,e,t)},saveCollectionOffer(e,t){return s(bt,e,t)},hideOffer(e,t){return s(Ft,e,t)},generateSingleNftOfferHash(e,t){return s(St,e,t)},saveSingleNftOffer(e,t){return s(It,e,t)},unhideOffer(e,t){return s(At,e,t)},generateRenegotiationOfferHash(e,t){return s(Ot,e,t)},hideRenegotiationOffer(e,t){return s(xt,e,t)},saveRenegotiationOffer(e,t){return s(Mt,e,t)},unhideRenegotiationOffer(e,t){return s(Pt,e,t)},hideSaleOffer(e,t){return s(Ct,e,t)},listBestBidsForNft(e,t){return s(vt,e,t)},saveSignedSaleOffer(e,t){return s(Rt,e,t)},unhideSaleOffer(e,t){return s(Lt,e,t)},collectionsIdByContractAddress(e,t){return s(ht,e,t)},collectionIdBySlug(e,t){return s(wt,e,t)},listListings(e,t){return s(_t,e,t)},listLoans(e,t){return s(Bt,e,t)},nftIdByContractAddressAndTokenId(e,t){return s(Nt,e,t)},nftIdBySlugTokenId(e,t){return s(kt,e,t)},listOffers(e,t){return s(Et,e,t)}}}d(_e,"getSdk");var Dt=["mutation","query","subscription"];function Be(s){return _e(d(async(t,n,a)=>{if(a={...a,context:{...a?.context,clientName:"lending"}},t.definitions.filter(r=>r.kind==="OperationDefinition"&&Dt.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:n,...a,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:n,...a});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"))}d(Be,"getSdkApollo");var ie=d(({endCursor:s,hasNextPage:e})=>e?{hasNextPage:e,cursor:s}:{hasNextPage:e,cursor:null},"mapPageInfo"),$=class{api;generateSingleNftOfferHash;generateCollectionOfferHash;generateRenegotiationOfferHash;nftIdBySlugTokenId;nftIdByContractAddressAndTokenId;collectionIdBySlug;collectionsIdByContractAddress;listNft;unlistNft;hideOffer;hideRenegotiationOffer;unhideOffer;unhideRenegotiationOffer;saveSignedSaleOffer;hideSaleOffer;unhideSaleOffer;listBestBidsForNft;constructor({apiClient:e,wallet:t}){let n=e??Le(t);this.api=Be(n),this.generateSingleNftOfferHash=this.api.generateSingleNftOfferHash,this.generateCollectionOfferHash=this.api.generateCollectionOfferHash,this.generateRenegotiationOfferHash=this.api.generateRenegotiationOfferHash,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||S},n=await this.api.saveSingleNftOffer({offer:t}),a=n.offer.nft.collection?.contractData?.contractAddress||S;return{id:n.offer.id,nftCollateralAddress:a,nftCollateralTokenId:n.offer.nft.tokenId,...e}}async saveCollectionOffer(e){let t={...e,borrowerAddress:e.borrowerAddress||S},n=await this.api.saveCollectionOffer({offer:t}),a=n.offer.collection?.contractData?.contractAddress||S;return{id:n.offer.id,nftCollateralAddress:a,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:n}}=await this.api.listOffers(e),a=t.map(i=>{let{__typename:r,lenderAddress:o,borrowerAddress:l,signerAddress:p,...u}=i.node;return{type:r,lender:o,borrower:l,signer:p,...u}});return{...ie(n),offers:a}}async listLoans(e){let{loans:{edges:t,pageInfo:n}}=await this.api.listLoans(e),a=t.map(i=>{let{__typename:r,...o}=i.node;return{type:r,...o}});return{...ie(n),loans:a}}async listListings(e){let{result:{edges:t,pageInfo:n}}=await this.api.listListings(e),a=t.map(i=>i.node);return{...ie(n),listings:a}}};d($,"Api");var Ne=115792089237316195423570985008687907853269984665640564039457584007913129639935n;import{createClient as Wt}from"@reservoir0x/reservoir-sdk";import{createPublicClient as $t,encodeAbiParameters as Qt,encodeFunctionData as Ee,getContract as zt,http as Gt,zeroAddress as Xt}from"viem";import{mainnet as Zt}from"viem/chains";var _=class{orderId;to;callbackData;value;constructor({orderId:e,to:t,callbackData:n,value:a}){this.orderId=e,this.to=t,this.callbackData=n,this.value=a}};d(_,"InterruptedSendTransactionStepError");var P=class extends _{signature;constructor({orderId:e,to:t,callbackData:n,value:a,signature:i}){super({orderId:e,to:t,callbackData:n,value:a}),this.signature=i}};d(P,"InterruptedSeaportSendTransactionStepError");var h=class extends _{};d(h,"InterruptedCryptoPunksSendTransactionStepError");var C=class extends _{};d(C,"InterruptedGenericSendTransactionStepError");import{adaptViemWallet as Ht}from"@reservoir0x/reservoir-sdk";import{decodeFunctionData as Kt,zeroAddress as Ut}from"viem";var re=d(s=>s==="opensea.io","isOpensea"),qt=d(s=>s==="cryptopunks.app","isCryptopunks"),ke=d(s=>s==="gondi.xyz","isNative"),se=d((s,e)=>({...Ht(s),transport:void 0,handleSendTransactionStep:async(a,i,r)=>{if(r.id!=="sale")return console.log(r),ce;let o=i.orderIds?.[0]??"",l=i.data.to,p=i.data.data,u=BigInt(i.data.value??0);if(re(e)){let F=Kt({abi:L,data:i.data.data})?.args?.[0],b=Array.isArray(F)?F[0].signature:typeof F=="object"?F.signature:Ut;throw new P({orderId:o,to:l,callbackData:p,value:u,signature:b})}else throw qt(e)?new h({orderId:o,to:l,callbackData:p,value:u}):new C({orderId:o,to:l,callbackData:p,value:u})}}),"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:n,CryptoPunks:a}){this.baseApiUrl=e,this.wallet=t,this.Seaport=n,this.CryptoPunks=a;let{reservoirApiKey:i,infuraApiKey:r}=me();this.client=Wt({chains:[{id:t.chain.id,name:t.chain.name,baseApiUrl:e,active:!0}],apiKey:i,source:"gondi.xyz"}),this.mainnetClient=$t({chain:Zt,transport:Gt(`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:n}){return Qt(this.EXECUTION_INFO_ABI,[{module:e,data:t,value:n}])}async generateMatchOrdersExecutionData({askOrBid:e,signature:t,side:n="ask"}){let a={parameters:{...e.rawData,totalOriginalConsiderationItems:BigInt(e.rawData.consideration.length)},signature:t},i=await this.Seaport.generateInverseOrder(a.parameters),r={parameters:i,signature:await this.Seaport.signOrder(i)},o=this.Seaport.generateFulfillmentsForOrderAndInverse(a.parameters),l=Ee({abi:L,functionName:"matchOrders",args:[[a,r],o]}),p=n==="ask"?a.parameters.consideration.reduce((u,c)=>u+(c.itemType===0?BigInt(c.endAmount):0n),0n):BigInt(e.price.netAmount.raw);return{callbackData:this.encodeExecutionData({module:this.Seaport.address,data:l,value:p}),value:p,isSeaportCall:!0}}async generateFulfillOrderExecutionData({askOrBid:e,signature:t,tokenId:n}){let a={parameters:{...e.rawData,totalOriginalConsiderationItems:BigInt(e.rawData.consideration.length)},numerator:1n,denominator:1n,signature:t,extraData:"0x"},i=a.parameters.consideration.findIndex(l=>l.itemType===4),r=Ee({abi:L,functionName:"fulfillAdvancedOrder",args:[a,i!==-1?[{orderIndex:0n,side:1,index:BigInt(i),identifier:n,criteriaProof:[]}]:[],g,Xt]}),o=BigInt(e.price.netAmount.raw);return{callbackData:this.encodeExecutionData({module:this.Seaport.address,data:r,value:o}),value:o,isSeaportCall:!0}}async buyTokens(e){let{ETH_ADDRESS:t}=A(),n=e.reduce((a,i)=>a+i.price,0n);return this.client?.actions.buyToken({items:e.map(a=>({token:`${a.collectionContractAddress}:${a.tokenId}`,quantity:1,exactOrderSource:a.orderSource})),expectedPrice:this.generateExpectedCurrencyPriceObject(n,t),wallet:this.wallet,onProgress:()=>null,precheck:!1,options:{excludeEOA:!0,skipBalanceCheck:!0}})}async getExecutionDataForBuyToken({collectionContractAddress:e,tokenId:t,price:n,exactOrderSource:a}){let i=se(this.wallet,a),{ETH_ADDRESS:r}=A();try{throw await this.client?.actions.buyToken({items:[{token:`${e}:${t}`,quantity:1,exactOrderSource:a}],expectedPrice:this.generateExpectedCurrencyPriceObject(n,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 P){let{orderId:l,signature:p}=o,u=await this.getAsk({orderId:l});return this.generateMatchOrdersExecutionData({askOrBid:u,signature:p})}else if(o instanceof h){let{value:l}=o,p=await this.CryptoPunks.encodeBuyPunk(t);return{callbackData:this.encodeExecutionData({module:this.CryptoPunks.address,data:p,value:l}),value:l,isSeaportCall:!1}}else if(o instanceof C){let{to:l,callbackData:p,value:u}=o;return{callbackData:this.encodeExecutionData({module:l,data:p,value:u}),value:u,isSeaportCall:!1}}else throw new Error(`No available offer for price ${n}`)}}async getCallbackDataForSellToken({collectionContractAddress:e,tokenId:t,price:n,exactOrderSource:a}){let i=se(this.wallet,a),{WETH_ADDRESS:r}=A(),{LeverageAddress:o}=f(this.wallet.chain),p=await zt({abi:z,address:e,publicClient:this.mainnetClient}).read.ownerOf([t]);try{throw await this.client?.actions.acceptOffer({items:[{token:`${e}:${t}`,quantity:1,exactOrderSource:a}],expectedPrice:this.generateExpectedCurrencyPriceObject(n,r),wallet:i,onProgress:()=>null,precheck:!1,options:{excludeEOA:!0,taker:re(a)?p:o}}),new Error("This should never happen since we will throw inside the wallet tx")}catch(u){if(u instanceof P){let{orderId:c,signature:F}=u,b=await this.getBid({orderId:c});return this.generateFulfillOrderExecutionData({askOrBid:b,signature:F,tokenId:t})}else if(u instanceof C){let{orderId:c,to:F,callbackData:b}=u,I=await this.getBid({orderId:c});return{callbackData:this.encodeExecutionData({module:F,data:b,value:BigInt(I.price?.netAmount?.raw??0n)}),value:BigInt(I.price?.netAmount?.raw??0n),isSeaportCall:!1}}else throw new Error(`No available offer for price ${n}`)}}};d(Q,"Reservoir");var G=class{contracts;wallet;bcClient;api;reservoir;constructor({wallet:e,apiClient:t,reservoirBaseApiUrl:n}){this.wallet=e,this.bcClient=jt({chain:e.chain,transport:()=>Yt(e.transport)}),this.contracts=new q(this.bcClient,e),this.api=new $({wallet:e,apiClient:t}),this.reservoir=new Q({baseApiUrl:n,wallet:e,Seaport:this.contracts.Seaport,CryptoPunks:this.contracts.CryptoPunks})}async makeSingleNftOffer(e){return await this._makeSingleNftOffer(e)}async _makeSingleNftOffer(e,t){let n=t?this.contracts.Msl(t):this.contracts.MultiSourceLoanV5,a=n.address,i={...e,lenderAddress:e.lenderAddress?e.lenderAddress:this.wallet.account?.address,signerAddress:this.wallet.account?.address,borrowerAddress:e.borrowerAddress??S,requiresLiquidation:!!e.requiresLiquidation,contractAddress:a,offerValidators:[]},r=await this.api.generateSingleNftOfferHash({offerInput:i}),{offerHash:o,offerId:l,validators:p,lenderAddress:u,signerAddress:c,borrowerAddress:F}=r.offer,b=r.offer.nft.collection?.contractData?.contractAddress;if(b===void 0)throw new Error("Invalid nft");let I={...i,lender:u??i.lenderAddress,signer:c??i.signerAddress,borrower:F??i.borrowerAddress,nftCollateralTokenId:r.offer.nft.tokenId,nftCollateralAddress:b,validators:p,offerId:l},X=await n.signOffer({verifyingContract:i.contractAddress,structToSign:I}),Z={...i,offerValidators:p.map(B=>({arguments:B.arguments,validator:B.validator})),offerHash:o??g,offerId:l,signature:X};return await this.api.saveSingleNftOffer(Z)}async makeCollectionOffer(e){return await this._makeCollectionOffer(e)}async _makeCollectionOffer(e,t){let n=t?this.contracts.Msl(t):this.contracts.MultiSourceLoanV5,a=n.address,i={...e,lenderAddress:e.lenderAddress?e.lenderAddress:this.wallet.account?.address,signerAddress:this.wallet.account?.address,borrowerAddress:e.borrowerAddress??S,requiresLiquidation:!!e.requiresLiquidation,contractAddress:a,offerValidators:[{validator:S,arguments:Oe}]},r=await this.api.generateCollectionOfferHash({offerInput:i}),o=r.offer.collection.contractData?.contractAddress;if(o===void 0)throw new Error("Invalid collection");let{offerHash:l,offerId:p,validators:u,lenderAddress:c,signerAddress:F,borrowerAddress:b}=r.offer,I={...i,lender:c??i.lenderAddress,signer:F??i.signerAddress,borrower:b??i.borrowerAddress,nftCollateralTokenId:0n,nftCollateralAddress:o,validators:u,offerId:p},X=await n.signOffer({verifyingContract:i.contractAddress,structToSign:I}),Z={...i,offerValidators:u.map(B=>({arguments:B.arguments,validator:B.validator})),offerHash:l??g,offerId:p,signature:X};return await this.api.saveCollectionOffer(Z)}async makeSaleOffer({collectionContractAddress:e,tokenId:t,price:n,expirationTime:a}){let{parameters:{totalOriginalConsiderationItems:i,...r},signature:o}=await this.contracts.Seaport.generateOrderFromSaleOffer({collectionContractAddress:e,tokenId:t,price:n,expirationTime:a});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:n}){let a={lenderAddress:this.wallet.account?.address,signerAddress:this.wallet.account?.address,...e},i=await this.api.generateRenegotiationOfferHash({renegotiationInput:a}),{renegotiationId:r,offerHash:o,loanId:l,lenderAddress:p,signerAddress:u}=i.offer,c={...a,fee:a.feeAmount,lender:p??a.lenderAddress,signer:u??a.signerAddress??S,strictImprovement:!1,loanId:l,renegotiationId:r};if(n)return{...a,offerHash:o??g,signature:g,renegotiationId:r};let b=await this.contracts.Msl(t).signRenegotiationOffer({verifyingContract:t,structToSign:c}),I={...a,signature:b,offerHash:o??g,renegotiationId:r};return await this.api.saveRefinanceOffer(I)}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,...t}){let n=Y({offer:e,...t});return this.contracts.Msl(e.contractAddress).emitLoan(n)}async repayLoan({loan:e,loanId:t,nftReceiver:n}){return this.contracts.Msl(e.contractAddress).repayLoan({loan:e,nftReceiver:n,loanId:t})}async offers({limit:e=20,cursor:t,sortBy:n={field:"CREATED_DATE",order:"DESC"},filterBy:a={}}){let{status:i,nft:r,collection:o,lender:l,borrower:p,...u}=a;return await this.api.listOffers({first:e,after:t,sortBy:n,statuses:i,nfts:r?[r]:[],collections:o?[o]:[],lenderAddress:l,borrowerAddress:p,...u})}async loans({limit:e=20,cursor:t,...n}){return await this.api.listLoans({first:e,after:t,...n})}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:n=["GONDI"],limit:a=20,cursor:i}){return await this.api.listListings({collections:e,userFilter:t,marketplaceNames:n,after:i,first:a})}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(n=>Number(n.id))}}async getRemainingLockupSeconds({loan:e}){return this.contracts.Msl(e.contractAddress).getRemainingLockupSeconds({loan:e})}async getBestNativeSaleOffer({contractAddress:e,tokenId:t}){let{WETH_ADDRESS:n}=A(),a=await this.nftId({contractAddress:e,tokenId:t}),{bids:i}=await this.api.listBestBidsForNft({nftId:a,currencyAddress:n});return i.find(o=>o.marketPlace===Se)??null}async refinanceFullLoan({offer:e,loan:t,loanId:n}){let a={...e,loanId:n,strictImprovement:e.strictImprovement??!1,lender:e.lenderAddress,signer:e.signerAddress??S,fee:e.feeAmount};return this.contracts.Msl(t.contractAddress).refinanceFullLoan({offer:a,loan:t,signature:e.signature})}async refinancePartialLoan({offer:e,loan:t,loanId:n}){let a={...e,loanId:n,strictImprovement:e.strictImprovement??!1,lender:e.lenderAddress,signer:e.signerAddress??S,fee:e.feeAmount};return this.contracts.Msl(t.contractAddress).refinancePartialLoan({offer:a,loan:t})}async extendLoan({loan:e,newDuration:t,loanId:n}){return this.contracts.Msl(e.contractAddress).extendLoan({loan:e,newDuration:t,loanId:n})}async delegateMulticall(e){let t=e[0].loan.contractAddress;return this.contracts.Msl(t).delegateMulticall(e)}async delegate({loan:e,loanId:t,to:n,enable:a,rights:i}){return this.contracts.Msl(e.contractAddress).delegate({loan:e,loanId:t,to:n,rights:i,enable:a})}async revokeDelegate({to:e,collection:t,tokenId:n,contract:a=this.contracts.MultiSourceLoanV5.address}){return this.contracts.Msl(a).revokeDelegate({to:e,collection:t,tokenId:n})}async revokeDelegationsAndEmitLoan({delegations:e,emit:t}){let n=Y(t);return this.contracts.Msl(t.offer.contractAddress).revokeDelegationsAndEmitLoan({delegations:e,emit:n})}async liquidateLoan({loan:e,loanId:t}){return this.contracts.Msl(e.contractAddress).liquidateLoan({loan:e,loanId:t})}async placeBid({collectionContractAddress:e,tokenId:t,bid:n,auction:a}){return this.contracts.All(a.loanAddress).placeBid({collectionContractAddress:e,tokenId:t,bid:n,auction:a})}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}))),n=t.reduce((i,{value:r},o)=>i+r-e[o].amount+e[o].offer.fee,0n),a=e.map((i,r)=>({...i,callbackData:t[r].callbackData}));return this.contracts.Leverage.buy({leverageBuyData:a,ethToSend:n<0n?0n:n})}async leverageSell({loan:e,loanId:t,price:n,orderSource:a}){let i=null;if(ke(a)){let o=await this.getBestNativeSaleOffer({contractAddress:e.nftCollateralAddress,tokenId:e.nftCollateralTokenId});if(!o||o.netAmount<n)throw new Error(`No native bid for price ${n}`);i=await this.reservoir.generateFulfillOrderExecutionData({askOrBid:{rawData:await this.contracts.Seaport.recoverOrderFromNativeBid({nativeBid:o,collectionContractAddress:e.nftCollateralAddress,tokenId:e.nftCollateralTokenId}),price:{netAmount:{raw:String(n)}}},signature:o.signature,tokenId:e.nftCollateralTokenId})}else i=await this.reservoir.getCallbackDataForSellToken({collectionContractAddress:e.nftCollateralAddress,tokenId:e.nftCollateralTokenId,price:n,exactOrderSource:a});let r=i.isSeaportCall;return this.contracts.Leverage.sell({loan:e,callbackData:i.callbackData,shouldDelegate:r,loanId:t})}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 n=this.contracts.ERC721(e),a=await n.write.setApprovalForAll([t,!0]);return{txHash:a,waitTxInBlock:async()=>{let i=await this.bcClient.waitForTransactionReceipt({hash:a}),r=await n.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:n=this.contracts.MultiSourceLoanV5.address}){return await this.contracts.ERC20(e).read.allowance([this.wallet.account?.address,n])>=t}async approveToken({tokenAddress:e,amount:t=Ne,to:n=this.contracts.MultiSourceLoanV5.address}){let a=this.contracts.ERC20(e),i=await a.write.approve([n,t]);return{txHash:i,waitTxInBlock:async()=>{let r=await this.bcClient.waitForTransactionReceipt({hash:i}),o=await a.createEventFilter.Approval({}),l=y(r,o);if(l.length===0)throw new Error("ERC20 approval not set");return{...l[0].args,...r}}}}async createUserVault({nfts:e,userVaultAddress:t=this.contracts.UserVaultV5.address}){return this.contracts.UserVault(t).createVault(e)}async depositUserVaultERC721s({userVaultAddress:e=this.contracts.UserVaultV5.address,...t}){return this.contracts.UserVault(e).depositERC721s(t)}async burnUserVaultAndWithdraw({userVaultAddress:e=this.contracts.UserVaultV5.address,...t}){return this.contracts.UserVault(e).burnAndWithdraw(t)}};d(G,"Gondi");export{G as Gondi,he as LoanStatusType,te as MarketplaceEnum,we as OfferStatus,ne as OffersSortField,ae as Ordering};
1998
+ }
1999
+ `;function Oe(p){return{listNft(e,t){return p(dt,e,t)},unlistNft(e,t){return p(mt,e,t)},generateCollectionOfferHash(e,t){return p(ct,e,t)},saveCollectionOffer(e,t){return p(Tt,e,t)},hideOffer(e,t){return p(ft,e,t)},generateSingleNftOfferHash(e,t){return p(bt,e,t)},saveSingleNftOffer(e,t){return p(gt,e,t)},unhideOffer(e,t){return p(It,e,t)},generateRenegotiationOfferHash(e,t){return p(At,e,t)},hideRenegotiationOffer(e,t){return p(Ft,e,t)},saveRenegotiationOffer(e,t){return p(St,e,t)},unhideRenegotiationOffer(e,t){return p(Mt,e,t)},hideSaleOffer(e,t){return p(xt,e,t)},listBestBidsForNft(e,t){return p(vt,e,t)},saveSignedSaleOffer(e,t){return p(wt,e,t)},unhideSaleOffer(e,t){return p(Ot,e,t)},collections(e,t){return p(_t,e,t)},collectionsIdByContractAddress(e,t){return p(Ct,e,t)},collectionIdBySlug(e,t){return p(ht,e,t)},listListings(e,t){return p(Lt,e,t)},listLoans(e,t){return p(Pt,e,t)},nftIdByContractAddressAndTokenId(e,t){return p(Rt,e,t)},nftIdBySlugTokenId(e,t){return p(Et,e,t)},ownedNfts(e,t){return p(Bt,e,t)},listOffers(e,t){return p(kt,e,t)}}}y(Oe,"getSdk");var Nt=["mutation","query","subscription"];function _e(p){return Oe(y(async(t,n,a)=>{if(a={...a,context:{...a?.context,clientName:"lending"}},t.definitions.filter(r=>r.kind==="OperationDefinition"&&Nt.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 p.mutate({mutation:t,variables:n,...a,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 p.query({query:t,variables:n,...a});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"))}y(_e,"getSdkApollo");import{decodeEventLog as Dt,encodeEventTopics as Ht,zeroAddress as Vt}from"viem";var A=Vt,b=`0x${"0".repeat(64)}`,Ce="0x0";function l(p,e){return p.logs.filter(t=>Ht(e)[0]==t.topics[0]).map(t=>({...Dt({abi:e.abi,data:t.data,topics:t.topics,eventName:e.eventName}),topics:t.topics})).filter(t=>t.eventName==e.eventName)}y(l,"filterLogs");var H=y(p=>p!=null,"isDefined");var pe=y(({endCursor:p,hasNextPage:e})=>e?{hasNextPage:e,cursor:p}:{hasNextPage:e,cursor:null},"mapPageInfo"),ee=y(()=>process.env.GONDI_URL??"https://api.gondi.xyz","apiDomain"),V=class{api;generateSingleNftOfferHash;generateCollectionOfferHash;generateRenegotiationOfferHash;nftIdBySlugTokenId;nftIdByContractAddressAndTokenId;collections;collectionIdBySlug;collectionsIdByContractAddress;listNft;unlistNft;ownedNfts;hideOffer;hideRenegotiationOffer;unhideOffer;unhideRenegotiationOffer;saveSignedSaleOffer;hideSaleOffer;unhideSaleOffer;listBestBidsForNft;constructor({apiClient:e,wallet:t}){let n=e??Se(t);this.api=_e(n),this.generateSingleNftOfferHash=this.api.generateSingleNftOfferHash,this.generateCollectionOfferHash=this.api.generateCollectionOfferHash,this.generateRenegotiationOfferHash=this.api.generateRenegotiationOfferHash,this.nftIdBySlugTokenId=this.api.nftIdBySlugTokenId,this.nftIdByContractAddressAndTokenId=this.api.nftIdByContractAddressAndTokenId,this.collectionIdBySlug=this.api.collectionIdBySlug,this.collectionsIdByContractAddress=this.api.collectionsIdByContractAddress,this.collections=this.api.collections,this.listNft=this.api.listNft,this.unlistNft=this.api.unlistNft,this.ownedNfts=this.api.ownedNfts,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||A},n=await this.api.saveSingleNftOffer({offer:t}),a=n.offer.nft.collection?.contractData?.contractAddress||A;return{id:n.offer.id,nftCollateralAddress:a,nftCollateralTokenId:n.offer.nft.tokenId,...e}}async saveCollectionOffer(e){let t={...e,borrowerAddress:e.borrowerAddress||A},n=await this.api.saveCollectionOffer({offer:t}),a=n.offer.collection?.contractData?.contractAddress||A;return{id:n.offer.id,nftCollateralAddress:a,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:n}}=await this.api.listOffers(e),a=t.map(i=>{let{__typename:r,...s}=i.node,o="collection"in s?s.collection.contractData?.contractAddress:s.nft.collection?.contractData?.contractAddress,u="collection"in s?0n:s.nft.tokenId;if(H(o))return{...s,type:r,lender:s.lenderAddress,borrower:s.borrowerAddress,signer:s.signerAddress,offerValidators:s.validators,nftCollateralAddress:o,nftCollateralTokenId:u}}).filter(H);return{...pe(n),offers:a}}async listLoans(e){let{loans:{edges:t,pageInfo:n}}=await this.api.listLoans(e),a=t.map(i=>{let{__typename:r,...s}=i.node;return{...s,type:r,contractAddress:s.address,nftCollateralTokenId:s.nft.tokenId,nftCollateralAddress:s.nft.collection?.contractData?.contractAddress,borrower:s.borrowerAddress,startTime:BigInt(Math.floor(s.startTime.getTime()/1e3)),source:s.sources.map(o=>({...o,lender:Ut(o.lenderAddress),loanId:BigInt(o.loanId),startTime:BigInt(Math.floor(o.startTime.getTime()/1e3))}))}});return{...pe(n),loans:a}}async listListings(e){let{result:{edges:t,pageInfo:n}}=await this.api.listListings(e),a=t.map(i=>i.node);return{...pe(n),listings:a}}};y(V,"Api");import{getContract as Ke}from"viem";var he=[{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 Le=[{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"}]}],te=[{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 Pe=[{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 C=[{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:[]}];var Re=[{stateMutability:"nonpayable",type:"constructor",inputs:[{name:"currencyManager",internalType:"address",type:"address"},{name:"collectionManager",internalType:"address",type:"address"}]},{type:"error",inputs:[],name:"AssetNotOwnedError"},{type:"error",inputs:[],name:"CollectionNotWhitelistedError"},{type:"error",inputs:[],name:"CurrencyNotWhitelistedError"},{type:"error",inputs:[],name:"LengthMismatchError"},{type:"error",inputs:[{name:"vaultId",internalType:"uint256",type:"uint256"}],name:"NotApprovedError"},{type:"error",inputs:[{name:"vaultId",internalType:"uint256",type:"uint256"}],name:"VaultNotExistsError"},{type:"error",inputs:[],name:"WithdrawingETHError"},{type:"error",inputs:[],name:"WrongMethodError"},{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:"vaultId",internalType:"uint256",type:"uint256",indexed:!1},{name:"token",internalType:"address",type:"address",indexed:!1},{name:"amount",internalType:"uint256",type:"uint256",indexed:!1}],name:"ERC20Deposited"},{type:"event",anonymous:!1,inputs:[{name:"vaultId",internalType:"uint256",type:"uint256",indexed:!1},{name:"token",internalType:"address",type:"address",indexed:!1},{name:"amount",internalType:"uint256",type:"uint256",indexed:!1}],name:"ERC20Withdrawn"},{type:"event",anonymous:!1,inputs:[{name:"vaultId",internalType:"uint256",type:"uint256",indexed:!1},{name:"collection",internalType:"address",type:"address",indexed:!1},{name:"tokenId",internalType:"uint256",type:"uint256",indexed:!1}],name:"ERC721Deposited"},{type:"event",anonymous:!1,inputs:[{name:"vaultId",internalType:"uint256",type:"uint256",indexed:!1},{name:"collection",internalType:"address",type:"address",indexed:!1},{name:"tokenId",internalType:"uint256",type:"uint256",indexed:!1}],name:"ERC721Withdrawn"},{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:"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:"view",type:"function",inputs:[{name:"_vaultId",internalType:"uint256",type:"uint256"},{name:"_token",internalType:"address",type:"address"}],name:"ERC20BalanceOf",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"view",type:"function",inputs:[{name:"_collection",internalType:"address",type:"address"},{name:"_tokenId",internalType:"uint256",type:"uint256"}],name:"ERC721OwnerOf",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{stateMutability:"view",type:"function",inputs:[],name:"ETH",outputs:[{name:"",internalType:"address",type:"address"}]},{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:"nonpayable",type:"function",inputs:[{name:"_vaultId",internalType:"uint256",type:"uint256"},{name:"_assetRecipient",internalType:"address",type:"address"}],name:"burn",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_vaultId",internalType:"uint256",type:"uint256"},{name:"_collections",internalType:"address[]",type:"address[]"},{name:"_tokenIds",internalType:"uint256[]",type:"uint256[]"},{name:"_tokens",internalType:"address[]",type:"address[]"}],name:"burnAndWithdraw",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_vaultId",internalType:"uint256",type:"uint256"},{name:"_token",internalType:"address",type:"address"},{name:"_amount",internalType:"uint256",type:"uint256"}],name:"depositERC20",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_vaultId",internalType:"uint256",type:"uint256"},{name:"_collection",internalType:"address",type:"address"},{name:"_tokenId",internalType:"uint256",type:"uint256"}],name:"depositERC721",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_vaultId",internalType:"uint256",type:"uint256"},{name:"_collection",internalType:"address",type:"address"},{name:"_tokenIds",internalType:"uint256[]",type:"uint256[]"}],name:"depositERC721s",outputs:[]},{stateMutability:"payable",type:"function",inputs:[{name:"_vaultId",internalType:"uint256",type:"uint256"}],name:"depositEth",outputs:[]},{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:"nonpayable",type:"function",inputs:[],name:"mint",outputs:[{name:"",internalType:"uint256",type:"uint256"}]},{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:"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:"pure",type:"function",inputs:[{name:"_vaultId",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:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"newOwner",internalType:"address",type:"address"}],name:"transferOwnership",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_vaultId",internalType:"uint256",type:"uint256"},{name:"_token",internalType:"address",type:"address"}],name:"withdrawERC20",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_vaultId",internalType:"uint256",type:"uint256"},{name:"_tokens",internalType:"address[]",type:"address[]"}],name:"withdrawERC20s",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_vaultId",internalType:"uint256",type:"uint256"},{name:"_collection",internalType:"address",type:"address"},{name:"_tokenId",internalType:"uint256",type:"uint256"}],name:"withdrawERC721",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_vaultId",internalType:"uint256",type:"uint256"},{name:"_collections",internalType:"address[]",type:"address[]"},{name:"_tokenIds",internalType:"uint256[]",type:"uint256[]"}],name:"withdrawERC721s",outputs:[]},{stateMutability:"nonpayable",type:"function",inputs:[{name:"_vaultId",internalType:"uint256",type:"uint256"}],name:"withdrawEth",outputs:[]}];var Ee="MarketPlace.Native",h="GONDI_MULTI_SOURCE_LOAN",x=y((p,e)=>H(p)&&p.toLowerCase()===e?.toLowerCase(),"areSameAddress");import{encodeAbiParameters as Xt}from"viem";import{isAddress as qt,zeroAddress as Kt}from"viem";import{goerli as Wt}from"viem/chains";var $t=31337,v=y(p=>!p||!qt(p)?null:p,"ensureAddress"),Be="0xb6dfcbc1661d0c0bced9591d06e964f97d41a35984704ffe61f8e062e43919c8",f=y(p=>p?.id===$t?{MultiSourceLoan:{v4:v(process.env.GONDI_MULTI_SOURCE_LOAN_V4)??"0xCf7Ed3AccA5a467e9e704C703E8D87F634fB0Fc9",v5:v(process.env.GONDI_MULTI_SOURCE_LOAN_V5)??"0x610178dA211FEF7D417bC0e6FeD39F05609AD788",v6:v(process.env.GONDI_MULTI_SOURCE_LOAN_V6)??"0x59b670e9fA9D0A427751Af201D676719a970857b"},AuctionLoanLiquidator:{v4:v(process.env.GONDI_AUCTION_LOAN_LIQUIDATOR_V4)??"0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0",v5:v(process.env.GONDI_AUCTION_LOAN_LIQUIDATOR_V5)??"0x8A791620dd6260079BF849Dc5567aDC3F2FdC318",v6:v(process.env.GONDI_AUCTION_LOAN_LIQUIDATOR_V6)??"0xc6e7DF5E7b4f2A278906862b61205850344D4e7d"},UserVault:v(process.env.GONDI_USER_VAULT_V5)??"0x0DCd1Bf9A1b36cE34237eEaFef220932846BCD82",LeverageAddress:v(process.env.GONDI_LEVERAGE)??"0xA51c1fc2f0D1a1b8494Ed1FE312d7C3a78Ed91C0",SeaportAddress:v(process.env.SEAPORT)??"0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",CryptoPunksAddress:v(process.env.CRYPTO_PUNKS)??"0xb47e3cd837ddf8e4c57f05d70ab865de6e193bbb"}:p?.id===Wt.id?{MultiSourceLoan:{v4:"0x60C20627429668F267b5cF55c6605c665C69887D",v5:"0xTODO",v6:"0xTODO"},AuctionLoanLiquidator:{v4:"0x29C73faa2f9180ea5a7B0bEC243ebc63a5B4f280",v5:"0xTODO",v6:"0xTODO"},UserVault:"0xTODO",LeverageAddress:"0xTODO",SeaportAddress:"0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",CryptoPunksAddress:"0xb47e3cd837ddf8e4c57f05d70ab865de6e193bbb"}:{MultiSourceLoan:{v4:"0xCa5a494Ca20483e21ec1E41FE1D9461Da77595Bd",v5:"0x478f6F994C6fb3cf3e444a489b3AD9edB8cCaE16",v6:"0xTODO"},AuctionLoanLiquidator:{v4:"0x237e4421C742d843Fdd96D22294D338507e17091",v5:"0x97d34635b605c2f1630d6b4c6c5d222b8a2ca47d",v6:"0xTODO"},UserVault:"0x14a6Dcebb2Bb73aae1b199CCAadA75247b81976D",LeverageAddress:"0x87Ce6e8124fFd68fa721FcC7f35fdA14A11E233e",SeaportAddress:"0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",CryptoPunksAddress:"0xb47e3cd837ddf8e4c57f05d70ab865de6e193bbb"},"getContracts"),ke=y(()=>({reservoirApiKey:"5b472f8c-b471-531a-a450-56e428e5a00a",infuraApiKey:"9b7006cb0b0b42f1813ae9418741fbb5"}),"getApiKeys"),_=y(()=>({WETH_ADDRESS:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",ETH_ADDRESS:Kt,USDC_ADDRESS:"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"}),"getCurrencies");var Ne=[{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 Qt,createTransport as zt,getContract as Gt}from"viem";var T=class{abi;address;bcClient;wallet;contract;safeContractWrite;constructor({walletClient:e,address:t,abi:n}){this.wallet=e;let a=Qt({transport:()=>zt(e.transport)});this.bcClient=a,this.address=t,this.abi=n,this.contract=Gt({address:this.address,abi:this.abi,walletClient:e,publicClient:this.bcClient}),this.safeContractWrite=new Proxy({},{get(i,r){return async(s,o={})=>{let{request:u}=await a.simulateContract({address:t,abi:n,functionName:r,args:s,account:e.account,...o});return e.writeContract(u)}}})}};y(T,"BaseContract");var oe=class extends T{constructor({walletClient:e}){let{AuctionLoanLiquidator:{v4:t}}=f(e.chain);super({walletClient:e,address:t,abi:Ne})}async placeBid({collectionContractAddress:e,tokenId:t,bid:n}){let a=await this.safeContractWrite.placeBid([e,t,n]);return{txHash:a,waitTxInBlock:async()=>{let i=await this.bcClient.waitForTransactionReceipt({hash:a}),r=await this.contract.createEventFilter.BidPlaced(),s=l(i,r);if(s.length===0)throw new Error("Bid not placed");return{...s[0].args,...i}}}}async settleAuction({loan:e}){let t={...e,source:e.source.map(a=>[Number(a.loanId),a.lender,a.principalAmount,a.accruedInterest,a.startTime,a.aprBps])},n=await this.safeContractWrite.settleAuction([e.nftCollateralAddress,e.nftCollateralTokenId,Xt(oe.LOAN_SETTLEMENT_ENCODE_TYPES,[t])]);return{txHash:n,waitTxInBlock:async()=>{let a=await this.bcClient.waitForTransactionReceipt({hash:n}),i=await this.contract.createEventFilter.AuctionSettled(),r=l(a,i);if(r.length===0)throw new Error("Auction not settled");return{...r[0].args,...a}}}}},B=oe;y(B,"AllV4"),fe(B,"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 U=class extends T{constructor({walletClient:e}){let{AuctionLoanLiquidator:{v5:t}}=f(e.chain);super({walletClient:e,address:t,abi:he})}async placeBid({collectionContractAddress:e,tokenId:t,bid:n,auction:a}){let i=await this.safeContractWrite.placeBid([e,t,a,n]);return{txHash:i,waitTxInBlock:async()=>{let r=await this.bcClient.waitForTransactionReceipt({hash:i}),s=await this.contract.createEventFilter.BidPlaced(),o=l(r,s);if(o.length===0)throw new Error("Bid not placed");return{...o[0].args,...r}}}}async settleAuction({auction:e,loan:t}){let n=await this.safeContractWrite.settleAuction([e,t]);return{txHash:n,waitTxInBlock:async()=>{let a=await this.bcClient.waitForTransactionReceipt({hash:n}),i=await this.contract.createEventFilter.AuctionSettled(),r=l(a,i);if(r.length===0)throw new Error("Auction not settled");return{...r[0].args,...a}}}}};y(U,"AllV5");var He=[{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"}],stateMutability:"nonpayable"},{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:"collection",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"},{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:"view"},{type:"function",inputs:[{name:"_loanContract",internalType:"address",type:"address"}],name:"addLoanContract",outputs:[],stateMutability:"nonpayable"},{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:"view"},{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:"nonpayable"},{type:"function",inputs:[],name:"owner",outputs:[{name:"",internalType:"address",type:"address"}],stateMutability:"view"},{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:"tranche",internalType:"struct IMultiSourceLoan.Tranche[]",type:"tuple[]",components:[{name:"loanId",internalType:"uint256",type:"uint256"},{name:"floor",internalType:"uint256",type:"uint256"},{name:"principalAmount",internalType:"uint256",type:"uint256"},{name:"lender",internalType:"address",type:"address"},{name:"accruedInterest",internalType:"uint256",type:"uint256"},{name:"startTime",internalType:"uint256",type:"uint256"},{name:"aprBps",internalType:"uint256",type:"uint256"}]},{name:"protocolFee",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:[],stateMutability:"nonpayable"}];var q=[{type:"constructor",inputs:[{name:"loanLiquidator",internalType:"address",type:"address"},{name:"protocolFee",internalType:"struct WithProtocolFee.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:"maxTranches",internalType:"uint256",type:"uint256"},{name:"minLockPeriod",internalType:"uint256",type:"uint256"},{name:"delegateRegistry",internalType:"address",type:"address"},{name:"loanManagerRegistry",internalType:"address",type:"address"},{name:"flashActionContract",internalType:"address",type:"address"},{name:"minWaitTime",internalType:"uint256",type:"uint256"}],stateMutability:"nonpayable"},{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:"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:"InvalidAPRError"},{type:"error",inputs:[],name:"InvalidAddressesError"},{type:"error",inputs:[{name:"_amount",internalType:"uint256",type:"uint256"},{name:"_principalAmount",internalType:"uint256",type:"uint256"}],name:"InvalidAmountError"},{type:"error",inputs:[],name:"InvalidCallbackError"},{type:"error",inputs:[],name:"InvalidCallerError"},{type:"error",inputs:[],name:"InvalidCollateralIdError"},{type:"error",inputs:[],name:"InvalidDurationError"},{type:"error",inputs:[],name:"InvalidInputError"},{type:"error",inputs:[{name:"_loanId",internalType:"uint256",type:"uint256"}],name:"InvalidLoanError"},{type:"error",inputs:[],name:"InvalidMethodError"},{type:"error",inputs:[],name:"InvalidParametersError"},{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:"InvalidTrancheError"},{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:"MismatchError"},{type:"error",inputs:[{name:"i",internalType:"uint256",type:"uint256"},{name:"returndata",internalType:"bytes",type:"bytes"}],name:"MulticallFailed"},{type:"error",inputs:[],name:"NFTNotReturnedError"},{type:"error",inputs:[],name:"NotStrictlyImprovedError"},{type:"error",inputs:[{name:"tranchePrincipal",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:"TooManyTranchesError"},{type:"error",inputs:[],name:"TooSoonError"},{type:"error",inputs:[{name:"minTimestamp",internalType:"uint256",type:"uint256"}],name:"TrancheCannotBeRefinancedError"},{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:"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:"tranche",internalType:"struct IMultiSourceLoan.Tranche[]",type:"tuple[]",components:[{name:"loanId",internalType:"uint256",type:"uint256"},{name:"floor",internalType:"uint256",type:"uint256"},{name:"principalAmount",internalType:"uint256",type:"uint256"},{name:"lender",internalType:"address",type:"address"},{name:"accruedInterest",internalType:"uint256",type:"uint256"},{name:"startTime",internalType:"uint256",type:"uint256"},{name:"aprBps",internalType:"uint256",type:"uint256"}]},{name:"protocolFee",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:"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:"tranche",internalType:"struct IMultiSourceLoan.Tranche[]",type:"tuple[]",components:[{name:"loanId",internalType:"uint256",type:"uint256"},{name:"floor",internalType:"uint256",type:"uint256"},{name:"principalAmount",internalType:"uint256",type:"uint256"},{name:"lender",internalType:"address",type:"address"},{name:"accruedInterest",internalType:"uint256",type:"uint256"},{name:"startTime",internalType:"uint256",type:"uint256"},{name:"aprBps",internalType:"uint256",type:"uint256"}]},{name:"protocolFee",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:"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:"tranche",internalType:"struct IMultiSourceLoan.Tranche[]",type:"tuple[]",components:[{name:"loanId",internalType:"uint256",type:"uint256"},{name:"floor",internalType:"uint256",type:"uint256"},{name:"principalAmount",internalType:"uint256",type:"uint256"},{name:"lender",internalType:"address",type:"address"},{name:"accruedInterest",internalType:"uint256",type:"uint256"},{name:"startTime",internalType:"uint256",type:"uint256"},{name:"aprBps",internalType:"uint256",type:"uint256"}]},{name:"protocolFee",internalType:"uint256",type:"uint256"}],indexed:!1},{name:"offerIds",internalType:"uint256[]",type:"uint256[]",indexed:!1},{name:"totalFee",internalType:"uint256",type:"uint256",indexed:!1}],name:"LoanRefinancedFromNewOffers"},{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:"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 WithProtocolFee.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 WithProtocolFee.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:"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:"tranche",internalType:"struct IMultiSourceLoan.Tranche[]",type:"tuple[]",components:[{name:"loanId",internalType:"uint256",type:"uint256"},{name:"floor",internalType:"uint256",type:"uint256"},{name:"principalAmount",internalType:"uint256",type:"uint256"},{name:"lender",internalType:"address",type:"address"},{name:"accruedInterest",internalType:"uint256",type:"uint256"},{name:"startTime",internalType:"uint256",type:"uint256"},{name:"aprBps",internalType:"uint256",type:"uint256"}]},{name:"protocolFee",internalType:"uint256",type:"uint256"}],indexed:!1},{name:"minTranche",internalType:"uint256",type:"uint256",indexed:!1},{name:"maxTranche",internalType:"uint256",type:"uint256",indexed:!1}],name:"TranchesMerged"},{type:"event",anonymous:!1,inputs:[{name:"newOwner",internalType:"address",type:"address",indexed:!1}],name:"TransferOwnerRequested"},{type:"event",anonymous:!1,inputs:[{name:"contractAdded",internalType:"address",type:"address",indexed:!1}],name:"WhitelistedCallbackContractAdded"},{type:"event",anonymous:!1,inputs:[{name:"contractRemoved",internalType:"address",type:"address",indexed:!1}],name:"WhitelistedCallbackContractRemoved"},{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_AUCTION_DURATION",outputs:[{name:"",internalType:"uint48",type:"uint48"}],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:"view"},{type:"function",inputs:[],name:"MIN_WAIT_TIME",outputs:[{name:"",internalType:"uint256",type:"uint256"}],stateMutability:"view"},{type:"function",inputs:[],name:"VERSION",outputs:[{name:"",internalType:"bytes",type:"bytes"}],stateMutability:"view"},{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:"trancheIndex",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:"tranche",internalType:"struct IMultiSourceLoan.Tranche[]",type:"tuple[]",components:[{name:"loanId",internalType:"uint256",type:"uint256"},{name:"floor",internalType:"uint256",type:"uint256"},{name:"principalAmount",internalType:"uint256",type:"uint256"},{name:"lender",internalType:"address",type:"address"},{name:"accruedInterest",internalType:"uint256",type:"uint256"},{name:"startTime",internalType:"uint256",type:"uint256"},{name:"aprBps",internalType:"uint256",type:"uint256"}]},{name:"protocolFee",internalType:"uint256",type:"uint256"}]},{name:"_renegotiationOfferSignature",internalType:"bytes",type:"bytes"}],name:"addNewTranche",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:"tranche",internalType:"struct IMultiSourceLoan.Tranche[]",type:"tuple[]",components:[{name:"loanId",internalType:"uint256",type:"uint256"},{name:"floor",internalType:"uint256",type:"uint256"},{name:"principalAmount",internalType:"uint256",type:"uint256"},{name:"lender",internalType:"address",type:"address"},{name:"accruedInterest",internalType:"uint256",type:"uint256"},{name:"startTime",internalType:"uint256",type:"uint256"},{name:"aprBps",internalType:"uint256",type:"uint256"}]},{name:"protocolFee",internalType:"uint256",type:"uint256"}]}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"_contract",internalType:"address",type:"address"}],name:"addWhitelistedCallbackContract",outputs:[],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"_minOfferId",internalType:"uint256",type:"uint256"}],name:"cancelAllOffers",outputs:[],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"_offerId",internalType:"uint256",type:"uint256"}],name:"cancelOffer",outputs:[],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"_renegotiationId",internalType:"uint256",type:"uint256"}],name:"cancelRenegotiationOffer",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:"tranche",internalType:"struct IMultiSourceLoan.Tranche[]",type:"tuple[]",components:[{name:"loanId",internalType:"uint256",type:"uint256"},{name:"floor",internalType:"uint256",type:"uint256"},{name:"principalAmount",internalType:"uint256",type:"uint256"},{name:"lender",internalType:"address",type:"address"},{name:"accruedInterest",internalType:"uint256",type:"uint256"},{name:"startTime",internalType:"uint256",type:"uint256"},{name:"aprBps",internalType:"uint256",type:"uint256"}]},{name:"protocolFee",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:"_loanExecutionData",internalType:"struct IMultiSourceLoan.LoanExecutionData",type:"tuple",components:[{name:"executionData",internalType:"struct IMultiSourceLoan.ExecutionData",type:"tuple",components:[{name:"offerExecution",internalType:"struct IMultiSourceLoan.OfferExecution[]",type:"tuple[]",components:[{name:"offer",internalType:"struct IMultiSourceLoan.LoanOffer",type:"tuple",components:[{name:"offerId",internalType:"uint256",type:"uint256"},{name:"lender",internalType:"address",type:"address"},{name:"fee",internalType:"uint256",type:"uint256"},{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:"maxSeniorRepayment",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:"amount",internalType:"uint256",type:"uint256"},{name:"lenderOfferSignature",internalType:"bytes",type:"bytes"}]},{name:"tokenId",internalType:"uint256",type:"uint256"},{name:"duration",internalType:"uint256",type:"uint256"},{name:"expirationTime",internalType:"uint256",type:"uint256"},{name:"principalReceiver",internalType:"address",type:"address"},{name:"callbackData",internalType:"bytes",type:"bytes"}]},{name:"borrower",internalType:"address",type:"address"},{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:"tranche",internalType:"struct IMultiSourceLoan.Tranche[]",type:"tuple[]",components:[{name:"loanId",internalType:"uint256",type:"uint256"},{name:"floor",internalType:"uint256",type:"uint256"},{name:"principalAmount",internalType:"uint256",type:"uint256"},{name:"lender",internalType:"address",type:"address"},{name:"accruedInterest",internalType:"uint256",type:"uint256"},{name:"startTime",internalType:"uint256",type:"uint256"},{name:"aprBps",internalType:"uint256",type:"uint256"}]},{name:"protocolFee",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:"tranche",internalType:"struct IMultiSourceLoan.Tranche[]",type:"tuple[]",components:[{name:"loanId",internalType:"uint256",type:"uint256"},{name:"floor",internalType:"uint256",type:"uint256"},{name:"principalAmount",internalType:"uint256",type:"uint256"},{name:"lender",internalType:"address",type:"address"},{name:"accruedInterest",internalType:"uint256",type:"uint256"},{name:"startTime",internalType:"uint256",type:"uint256"},{name:"aprBps",internalType:"uint256",type:"uint256"}]},{name:"protocolFee",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:"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:"getLoanManagerRegistry",outputs:[{name:"",internalType:"contract ILoanManagerRegistry",type:"address"}],stateMutability:"view"},{type:"function",inputs:[],name:"getMaxTranches",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:"getMinTranchePrincipal",outputs:[{name:"",internalType:"uint256",type:"uint256"}],stateMutability:"view"},{type:"function",inputs:[],name:"getPendingProtocolFee",outputs:[{name:"",internalType:"struct WithProtocolFee.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 WithProtocolFee.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:"_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:"tranche",internalType:"struct IMultiSourceLoan.Tranche[]",type:"tuple[]",components:[{name:"loanId",internalType:"uint256",type:"uint256"},{name:"floor",internalType:"uint256",type:"uint256"},{name:"principalAmount",internalType:"uint256",type:"uint256"},{name:"lender",internalType:"address",type:"address"},{name:"accruedInterest",internalType:"uint256",type:"uint256"},{name:"startTime",internalType:"uint256",type:"uint256"},{name:"aprBps",internalType:"uint256",type:"uint256"}]},{name:"protocolFee",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:"tranche",internalType:"struct IMultiSourceLoan.Tranche[]",type:"tuple[]",components:[{name:"loanId",internalType:"uint256",type:"uint256"},{name:"floor",internalType:"uint256",type:"uint256"},{name:"principalAmount",internalType:"uint256",type:"uint256"},{name:"lender",internalType:"address",type:"address"},{name:"accruedInterest",internalType:"uint256",type:"uint256"},{name:"startTime",internalType:"uint256",type:"uint256"},{name:"aprBps",internalType:"uint256",type:"uint256"}]},{name:"protocolFee",internalType:"uint256",type:"uint256"}]}],name:"loanLiquidated",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:"tranche",internalType:"struct IMultiSourceLoan.Tranche[]",type:"tuple[]",components:[{name:"loanId",internalType:"uint256",type:"uint256"},{name:"floor",internalType:"uint256",type:"uint256"},{name:"principalAmount",internalType:"uint256",type:"uint256"},{name:"lender",internalType:"address",type:"address"},{name:"accruedInterest",internalType:"uint256",type:"uint256"},{name:"startTime",internalType:"uint256",type:"uint256"},{name:"aprBps",internalType:"uint256",type:"uint256"}]},{name:"protocolFee",internalType:"uint256",type:"uint256"}]},{name:"_minTranche",internalType:"uint256",type:"uint256"},{name:"_maxTranche",internalType:"uint256",type:"uint256"}],name:"mergeTranches",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:"tranche",internalType:"struct IMultiSourceLoan.Tranche[]",type:"tuple[]",components:[{name:"loanId",internalType:"uint256",type:"uint256"},{name:"floor",internalType:"uint256",type:"uint256"},{name:"principalAmount",internalType:"uint256",type:"uint256"},{name:"lender",internalType:"address",type:"address"},{name:"accruedInterest",internalType:"uint256",type:"uint256"},{name:"startTime",internalType:"uint256",type:"uint256"},{name:"aprBps",internalType:"uint256",type:"uint256"}]},{name:"protocolFee",internalType:"uint256",type:"uint256"}]}],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"",internalType:"address",type:"address"}],name:"minOfferId",outputs:[{name:"",internalType:"uint256",type:"uint256"}],stateMutability:"view"},{type:"function",inputs:[{name:"data",internalType:"bytes[]",type:"bytes[]"}],name:"multicall",outputs:[{name:"results",internalType:"bytes[]",type:"bytes[]"}],stateMutability:"payable"},{type:"function",inputs:[],name:"name",outputs:[{name:"",internalType:"string",type:"string"}],stateMutability:"view"},{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:"nonpayable"},{type:"function",inputs:[],name:"owner",outputs:[{name:"",internalType:"address",type:"address"}],stateMutability:"view"},{type:"function",inputs:[],name:"pendingOwner",outputs:[{name:"",internalType:"address",type:"address"}],stateMutability:"view"},{type:"function",inputs:[],name:"pendingOwnerTime",outputs:[{name:"",internalType:"uint256",type:"uint256"}],stateMutability:"view"},{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:"tranche",internalType:"struct IMultiSourceLoan.Tranche[]",type:"tuple[]",components:[{name:"loanId",internalType:"uint256",type:"uint256"},{name:"floor",internalType:"uint256",type:"uint256"},{name:"principalAmount",internalType:"uint256",type:"uint256"},{name:"lender",internalType:"address",type:"address"},{name:"accruedInterest",internalType:"uint256",type:"uint256"},{name:"startTime",internalType:"uint256",type:"uint256"},{name:"aprBps",internalType:"uint256",type:"uint256"}]},{name:"protocolFee",internalType:"uint256",type:"uint256"}]},{name:"_loanExecutionData",internalType:"struct IMultiSourceLoan.LoanExecutionData",type:"tuple",components:[{name:"executionData",internalType:"struct IMultiSourceLoan.ExecutionData",type:"tuple",components:[{name:"offerExecution",internalType:"struct IMultiSourceLoan.OfferExecution[]",type:"tuple[]",components:[{name:"offer",internalType:"struct IMultiSourceLoan.LoanOffer",type:"tuple",components:[{name:"offerId",internalType:"uint256",type:"uint256"},{name:"lender",internalType:"address",type:"address"},{name:"fee",internalType:"uint256",type:"uint256"},{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:"maxSeniorRepayment",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:"amount",internalType:"uint256",type:"uint256"},{name:"lenderOfferSignature",internalType:"bytes",type:"bytes"}]},{name:"tokenId",internalType:"uint256",type:"uint256"},{name:"duration",internalType:"uint256",type:"uint256"},{name:"expirationTime",internalType:"uint256",type:"uint256"},{name:"principalReceiver",internalType:"address",type:"address"},{name:"callbackData",internalType:"bytes",type:"bytes"}]},{name:"borrower",internalType:"address",type:"address"},{name:"borrowerOfferSignature",internalType:"bytes",type:"bytes"}]}],name:"refinanceFromLoanExecutionData",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:"tranche",internalType:"struct IMultiSourceLoan.Tranche[]",type:"tuple[]",components:[{name:"loanId",internalType:"uint256",type:"uint256"},{name:"floor",internalType:"uint256",type:"uint256"},{name:"principalAmount",internalType:"uint256",type:"uint256"},{name:"lender",internalType:"address",type:"address"},{name:"accruedInterest",internalType:"uint256",type:"uint256"},{name:"startTime",internalType:"uint256",type:"uint256"},{name:"aprBps",internalType:"uint256",type:"uint256"}]},{name:"protocolFee",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:"trancheIndex",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:"tranche",internalType:"struct IMultiSourceLoan.Tranche[]",type:"tuple[]",components:[{name:"loanId",internalType:"uint256",type:"uint256"},{name:"floor",internalType:"uint256",type:"uint256"},{name:"principalAmount",internalType:"uint256",type:"uint256"},{name:"lender",internalType:"address",type:"address"},{name:"accruedInterest",internalType:"uint256",type:"uint256"},{name:"startTime",internalType:"uint256",type:"uint256"},{name:"aprBps",internalType:"uint256",type:"uint256"}]},{name:"protocolFee",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:"tranche",internalType:"struct IMultiSourceLoan.Tranche[]",type:"tuple[]",components:[{name:"loanId",internalType:"uint256",type:"uint256"},{name:"floor",internalType:"uint256",type:"uint256"},{name:"principalAmount",internalType:"uint256",type:"uint256"},{name:"lender",internalType:"address",type:"address"},{name:"accruedInterest",internalType:"uint256",type:"uint256"},{name:"startTime",internalType:"uint256",type:"uint256"},{name:"aprBps",internalType:"uint256",type:"uint256"}]},{name:"protocolFee",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:"trancheIndex",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:"tranche",internalType:"struct IMultiSourceLoan.Tranche[]",type:"tuple[]",components:[{name:"loanId",internalType:"uint256",type:"uint256"},{name:"floor",internalType:"uint256",type:"uint256"},{name:"principalAmount",internalType:"uint256",type:"uint256"},{name:"lender",internalType:"address",type:"address"},{name:"accruedInterest",internalType:"uint256",type:"uint256"},{name:"startTime",internalType:"uint256",type:"uint256"},{name:"aprBps",internalType:"uint256",type:"uint256"}]},{name:"protocolFee",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:"tranche",internalType:"struct IMultiSourceLoan.Tranche[]",type:"tuple[]",components:[{name:"loanId",internalType:"uint256",type:"uint256"},{name:"floor",internalType:"uint256",type:"uint256"},{name:"principalAmount",internalType:"uint256",type:"uint256"},{name:"lender",internalType:"address",type:"address"},{name:"accruedInterest",internalType:"uint256",type:"uint256"},{name:"startTime",internalType:"uint256",type:"uint256"},{name:"aprBps",internalType:"uint256",type:"uint256"}]},{name:"protocolFee",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:"tranche",internalType:"struct IMultiSourceLoan.Tranche[]",type:"tuple[]",components:[{name:"loanId",internalType:"uint256",type:"uint256"},{name:"floor",internalType:"uint256",type:"uint256"},{name:"principalAmount",internalType:"uint256",type:"uint256"},{name:"lender",internalType:"address",type:"address"},{name:"accruedInterest",internalType:"uint256",type:"uint256"},{name:"startTime",internalType:"uint256",type:"uint256"},{name:"aprBps",internalType:"uint256",type:"uint256"}]},{name:"protocolFee",internalType:"uint256",type:"uint256"}]},{name:"borrowerSignature",internalType:"bytes",type:"bytes"}]}],name:"repayLoan",outputs:[],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"_newOwner",internalType:"address",type:"address"}],name:"requestTransferOwner",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:"__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:"address",type:"address"}],name:"updateLiquidationContract",outputs:[],stateMutability:"nonpayable"},{type:"function",inputs:[{name:"_newProtocolFee",internalType:"struct WithProtocolFee.ProtocolFee",type:"tuple",components:[{name:"recipient",internalType:"address",type:"address"},{name:"fraction",internalType:"uint256",type:"uint256"}]}],name:"updateProtocolFee",outputs:[],stateMutability:"nonpayable"}];var K=class extends T{constructor({walletClient:e}){let{AuctionLoanLiquidator:{v6:t}}=f(e.chain);super({walletClient:e,address:t,abi:He})}async placeBid({collectionContractAddress:e,tokenId:t,bid:n,auction:a}){let i=await this.safeContractWrite.placeBid([e,t,a,n]);return{txHash:i,waitTxInBlock:async()=>{let r=await this.bcClient.waitForTransactionReceipt({hash:i}),s=await this.contract.createEventFilter.BidPlaced(),o=l(r,s);if(o.length===0)throw new Error("Bid not placed");return{...o[0].args,...r}}}}async settleAuction({auction:e,loan:t}){let n=await this.safeContractWrite.settleAuction([e,t]);return{txHash:n,waitTxInBlock:async()=>{let a=await this.bcClient.waitForTransactionReceipt({hash:n}),i=await this.contract.createEventFilter.AuctionSettled(),r=l(a,i);if(r.length===0)throw new Error("Auction not settled");return{...r[0].args,...a}}}}};y(K,"AllV6");import{encodeFunctionData as Zt}from"viem";var Ve=[{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 W=class extends T{constructor({walletClient:e}){let{CryptoPunksAddress:t}=f(e.chain);super({walletClient:e,address:t,abi:Ve})}async encodeBuyPunk(e){return Zt({abi:this.abi,functionName:"buyPunk",args:[e]})}};y(W,"CryptoPunks");import{encodeFunctionData as Ue}from"viem";var $=class extends T{mslAddress;constructor({walletClient:e,mslAddress:t}){let{LeverageAddress:n}=f(e.chain);super({walletClient:e,address:n,abi:Pe}),this.mslAddress=t}getDomain(){return{name:h,version:"2",chainId:this.wallet.chain.id,verifyingContract:this.mslAddress}}async signExecutionData(e){return this.wallet.signTypedData({domain:this.getDomain(),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:this.getDomain(),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 n=await this.safeContractWrite.buy([await Promise.all(e.map(async a=>{let i={offer:a.offer,tokenId:a.nft.tokenId,amount:a.amount,expirationTime:a.expirationTime,callbackData:a.callbackData};return Ue({abi:C,functionName:"emitLoan",args:[{executionData:i,lender:a.offer.lender,borrower:this.wallet.account.address,lenderOfferSignature:a.offer.signature,borrowerOfferSignature:await this.signExecutionData(i)}]})}))],{value:t});return{txHash:n,waitTxInBlock:async()=>{let a=await this.bcClient.waitForTransactionReceipt({hash:n}),i=await this.contract.createEventFilter.BNPLLoansStarted(),r=l(a,i);if(r.length===0)throw new Error("BNPL Loans not started");return{...r[0].args,...a}}}}async sell({loan:e,callbackData:t,shouldDelegate:n,loanId:a}){let i={loanId:a,callbackData:t,shouldDelegate:n},r=await this.safeContractWrite.sell([[Ue({abi:C,functionName:"repayLoan",args:[{data:i,loan:e,borrowerSignature:await this.signRepaymentData(i)}]})]]);return{txHash:r,waitTxInBlock:async()=>{let s=await this.bcClient.waitForTransactionReceipt({hash:r}),o=await this.contract.createEventFilter.SellAndRepayExecuted(),u=l(s,o);if(u.length===0)throw new Error("Sell and repay not executed");return{...u[0].args,...s}}}}};y($,"LeverageV5");import{zeroAddress as jt}from"viem";var Q=class extends T{constructor({walletClient:e}){let{MultiSourceLoan:{v4:t}}=f(e.chain);super({walletClient:e,address:t,abi:De})}getDomain(){return{name:h,version:"1",chainId:this.wallet.chain.id,verifyingContract:this.address}}async signOffer({structToSign:e}){return this.wallet.signTypedData({domain:this.getDomain(),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:e})}async signRenegotiationOffer({structToSign:e}){return this.wallet.signTypedData({domain:this.getDomain(),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:e})}async cancelOffer({id:e}){let t=await this.safeContractWrite.cancelOffer([this.wallet.account.address,e]);return{txHash:t,waitTxInBlock:async()=>{let n=await this.bcClient.waitForTransactionReceipt({hash:t}),a=await this.contract.createEventFilter.OfferCancelled(),i=l(n,a);if(i.length===0)throw new Error("Offer not cancelled");return{...i[0].args,...n}}}}async cancelAllOffers({minId:e}){let t=await this.safeContractWrite.cancelAllOffers([this.wallet.account.address,e]);return{txHash:t,waitTxInBlock:async()=>{let n=await this.bcClient.waitForTransactionReceipt({hash:t}),a=await this.contract.createEventFilter.AllOffersCancelled(),i=l(n,a);if(i.length===0)throw new Error("Offers not cancelled");return{...i[0].args,...n}}}}async cancelRefinanceOffer({id:e}){let t=await this.safeContractWrite.cancelRenegotiationOffer([this.wallet.account.address,e]);return{txHash:t,waitTxInBlock:async()=>{let n=await this.bcClient.waitForTransactionReceipt({hash:t}),a=await this.contract.createEventFilter.RenegotiationOfferCancelled(),i=l(n,a);if(i.length===0)throw new Error("Offer not cancelled");return{...i[0].args,...n}}}}async cancelAllRenegotiations({minId:e}){let t=await this.safeContractWrite.cancelAllRenegotiationOffers([this.wallet.account.address,e]);return{txHash:t,waitTxInBlock:async()=>{let n=await this.bcClient.waitForTransactionReceipt({hash:t}),a=await this.contract.createEventFilter.RenegotiationOfferCancelled(),i=l(n,a);if(i.length===0)throw new Error("Offer not cancelled");return{...i[0].args,...n}}}}mapEmitLoanToMslEmitLoanArgs({offerExecution:e,tokenId:t}){let{offer:n,lenderOfferSignature:a}=e[0];return[{...n,signer:n.signerAddress??jt,lender:n.lenderAddress,borrower:n.borrowerAddress,validators:n.offerValidators,requiresLiquidation:!!n.requiresLiquidation},t,a,!1]}async emitLoan(e){let t=this.mapEmitLoanToMslEmitLoanArgs(e),n=await this.safeContractWrite.emitLoan(t);return{txHash:n,waitTxInBlock:async()=>{let a=await this.bcClient.waitForTransactionReceipt({hash:n}),i=await this.contract.createEventFilter.LoanEmitted(),r=l(a,i);if(r.length===0)throw new Error("Loan not emitted");let s=r[0].args;return{loan:{id:`${this.contract.address.toLowerCase()}.${s.loanId}`,...s.loan,contractAddress:this.contract.address},loanId:s.loanId,offerId:`${this.contract.address.toLowerCase()}.${t[0].lender.toLowerCase()}.${s.offerId}`,...a}}}}async repayLoan({loan:e,nftReceiver:t,loanId:n}){let a=t??this.wallet.account.address,i=await this.safeContractWrite.repayLoan([a,n,e,!1]);return{txHash:i,waitTxInBlock:async()=>{let r=await this.bcClient.waitForTransactionReceipt({hash:i}),s=await this.contract.createEventFilter.LoanRepaid(),o=l(r,s);if(o.length===0)throw new Error("Loan not repaid");return{...o[0].args,...r}}}}getRemainingLockupSeconds(){return 0}async refinanceFullLoan({offer:e,signature:t,loan:n}){let a=await this.safeContractWrite.refinanceFull([e,n,t]);return{txHash:a,waitTxInBlock:async()=>{let i=await this.bcClient.waitForTransactionReceipt({hash:a}),r=await this.contract.createEventFilter.LoanRefinanced(),s=l(i,r);if(s.length===0)throw new Error("Loan not refinanced");let o=s[0].args;return{loan:{id:`${this.contract.address.toLowerCase()}.${o.newLoanId}`,...o.loan,contractAddress:this.address},loanId:o.newLoanId,renegotiationId:`${this.contract.address.toLowerCase()}.${e.lender.toLowerCase()}.${o.renegotiationId}`,...i}}}}async refinancePartialLoan({offer:e,loan:t}){let n=await this.safeContractWrite.refinancePartial([e,t]);return{txHash:n,waitTxInBlock:async()=>{let a=await this.bcClient.waitForTransactionReceipt({hash:n}),i=await this.contract.createEventFilter.LoanRefinanced(),r=l(a,i);if(r.length===0)throw new Error("Loan not refinanced");let s=r[0].args;return{loan:{id:`${this.contract.address.toLowerCase()}.${s.newLoanId}`,...s.loan,contractAddress:this.contract.address},loanId:s.newLoanId,renegotiationId:`${this.contract.address.toLowerCase()}.${e.lender.toLowerCase()}.${s.renegotiationId}`,...a}}}}async extendLoan(){throw new Error("Not implemented for V1")}async delegateMulticall(){throw new Error("Not implemented for V1")}async delegate(){throw new Error("Not implemented for V1")}async revokeDelegate(){throw new Error("Not implemented for V1")}async revokeDelegationsAndEmitLoan(){throw new Error("Not implemented for V1")}async liquidateLoan({loan:e,loanId:t}){let n=await this.safeContractWrite.liquidateLoan([t,e]);return{txHash:n,waitTxInBlock:async()=>{let a=await this.bcClient.waitForTransactionReceipt({hash:n}),i=await this.contract.createEventFilter.LoanForeclosed(),r=await this.contract.createEventFilter.LoanSentToLiquidator(),s=l(a,i),o=l(a,r);if(s.length===0&&o.length===0)throw new Error("Loan not liquidated");return{...s?.[0]?.args??o?.[0]?.args,...a}}}}};y(Q,"MslV4");import{encodeFunctionData as ye}from"viem";var qe=y(p=>Number(p.valueOf()),"toInteger"),w=y(p=>Math.ceil(qe(p)/1e3),"millisToSeconds"),ne=y(p=>qe(p)/1e4,"bpsToPercentage");var z=class extends T{constructor({walletClient:e}){let{MultiSourceLoan:{v5:t}}=f(e.chain);super({walletClient:e,address:t,abi:C})}getDomain(){return{name:h,version:"2",chainId:this.wallet.chain.id,verifyingContract:this.address}}async signOffer({structToSign:e}){return this.wallet.signTypedData({domain:this.getDomain(),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:e})}async signRenegotiationOffer({structToSign:e}){return this.wallet.signTypedData({domain:this.getDomain(),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:e})}async cancelOffer({id:e}){let t=await this.safeContractWrite.cancelOffer([e]);return{txHash:t,waitTxInBlock:async()=>{let n=await this.bcClient.waitForTransactionReceipt({hash:t}),a=await this.contract.createEventFilter.OfferCancelled(),i=l(n,a);if(i.length===0)throw new Error("Offer not cancelled");return{...i[0].args,...n}}}}async cancelAllOffers({minId:e}){let t=await this.safeContractWrite.cancelAllOffers([e]);return{txHash:t,waitTxInBlock:async()=>{let n=await this.bcClient.waitForTransactionReceipt({hash:t}),a=await this.contract.createEventFilter.AllOffersCancelled(),i=l(n,a);if(i.length===0)throw new Error("Offers not cancelled");return{...i[0].args,...n}}}}async cancelRefinanceOffer({id:e}){let t=await this.safeContractWrite.cancelRenegotiationOffer([e]);return{txHash:t,waitTxInBlock:async()=>{let n=await this.bcClient.waitForTransactionReceipt({hash:t}),a=await this.contract.createEventFilter.RenegotiationOfferCancelled(),i=l(n,a);if(i.length===0)throw new Error("Renegotiation offer not cancelled");return{...i[0].args,...n}}}}async cancelAllRenegotiations({minId:e}){let t=await this.safeContractWrite.cancelAllRenegotiationOffers([e]);return{txHash:t,waitTxInBlock:async()=>{let n=await this.bcClient.waitForTransactionReceipt({hash:t}),a=await this.contract.createEventFilter.AllRenegotiationOffersCancelled(),i=l(n,a);if(i.length===0)throw new Error("Renegotiation offers not cancelled");return{...i[0].args,...n}}}}mapEmitLoanToMslEmitLoanArgs({offerExecution:e,tokenId:t,expirationTime:n}){let{offer:a,amount:i,lenderOfferSignature:r}=e[0];return{executionData:{offer:{...a,lender:a.lenderAddress,borrower:a.borrowerAddress,validators:a.offerValidators},tokenId:t,amount:i??a.principalAmount,expirationTime:n??BigInt(w(Date.now())+86400),callbackData:"0x"},lender:a.lenderAddress,borrower:this.wallet.account.address,lenderOfferSignature:r,borrowerOfferSignature:"0x"}}async emitLoan(e){let t=this.mapEmitLoanToMslEmitLoanArgs(e),n=await this.safeContractWrite.emitLoan([t]);return{txHash:n,waitTxInBlock:async()=>{let a=await this.bcClient.waitForTransactionReceipt({hash:n}),i=await this.contract.createEventFilter.LoanEmitted(),r=l(a,i);if(r.length===0)throw new Error("Loan not emitted");let s=r[0].args;return{loan:{id:`${this.contract.address.toLowerCase()}.${s.loanId}`,...s.loan,contractAddress:this.contract.address},loanId:s.loanId,offerId:`${this.contract.address.toLowerCase()}.${t.lender.toLowerCase()}.${s.offerId}`,...a}}}}async revokeDelegationsAndEmitLoan({delegations:e,emit:t}){if(e.length===0)throw new Error("At least one delegation must be revoked");let n=this.mapEmitLoanToMslEmitLoanArgs(t),{tokenId:a,offer:i}=n.executionData,r=e.map(u=>ye({abi:C,functionName:"revokeDelegate",args:[u,i.nftCollateralAddress,a]})),s=ye({abi:C,functionName:"emitLoan",args:[n]}),o=await this.safeContractWrite.multicall([[...r,s]]);return{txHash:o,waitTxInBlock:async()=>{let u=await this.bcClient.waitForTransactionReceipt({hash:o}),d=await this.contract.createEventFilter.RevokeDelegate(),I=l(u,d);if(I.length!==e.length)throw new Error("Revoke delegations failed");let m=await this.contract.createEventFilter.LoanEmitted(),g=l(u,m);if(g.length===0)throw new Error("Loan not emitted");let F=[...I.map(({args:M})=>M),...g.map(({args:M})=>M)],S=g[0].args;return{loan:{id:`${this.contract.address.toLowerCase()}.${S.loanId}`,...S.loan,contractAddress:this.contract.address},loanId:S.loanId,...u,results:F}}}}async repayLoan({loan:e,loanId:t}){let n={loanId:t,callbackData:"0x",shouldDelegate:!1},a=await this.safeContractWrite.repayLoan([{data:n,loan:e,borrowerSignature:"0x"}]);return{txHash:a,waitTxInBlock:async()=>{let i=await this.bcClient.waitForTransactionReceipt({hash:a}),r=await this.contract.createEventFilter.LoanRepaid(),s=l(i,r);if(s.length===0)throw new Error("Loan not repaid");return{...s[0].args,...i}}}}async getRemainingLockupSeconds({loan:e}){let t=e.source[0],a=e.startTime+e.duration-t.startTime,i=await this.contract.read.getMinLockPeriod(),r=ne(i),s=Math.ceil(Number(a)*r),o=Math.ceil(w(Date.now())-Number(t.startTime));return o>=s?0:s-o}async refinanceFullLoan({offer:e,signature:t,loan:n}){let a=await this.safeContractWrite.refinanceFull([e,n,t]);return{txHash:a,waitTxInBlock:async()=>{let i=await this.bcClient.waitForTransactionReceipt({hash:a}),r=await this.contract.createEventFilter.LoanRefinanced(),s=l(i,r);if(s.length===0)throw new Error("Loan not refinanced");let o=s[0].args;return{loan:{id:`${this.contract.address.toLowerCase()}.${o.newLoanId}`,...o.loan,contractAddress:this.contract.address},loanId:o.newLoanId,renegotiationId:`${this.contract.address.toLowerCase()}.${e.lender.toLowerCase()}.${o.renegotiationId}`,...i}}}}async refinancePartialLoan({offer:e,loan:t}){let n=await this.safeContractWrite.refinancePartial([e,t]);return{txHash:n,waitTxInBlock:async()=>{let a=await this.bcClient.waitForTransactionReceipt({hash:n}),i=await this.contract.createEventFilter.LoanRefinanced(),r=l(a,i);if(r.length===0)throw new Error("Loan not refinanced");let s=r[0].args;return{loan:{id:`${this.contract.address.toLowerCase()}.${s.newLoanId}`,...s.loan,contractAddress:this.contract.address},loanId:s.newLoanId,renegotiationId:`${this.contract.address.toLowerCase()}.${e.lender.toLowerCase()}.${s.renegotiationId}`,...a}}}}async extendLoan({loan:e,loanId:t,newDuration:n}){let a=await this.safeContractWrite.extendLoan([t,e,n-e.duration]);return{txHash:a,waitTxInBlock:async()=>{let i=await this.bcClient.waitForTransactionReceipt({hash:a}),r=await this.contract.createEventFilter.LoanExtended(),s=l(i,r);if(s.length===0)throw new Error("Loan not extended");let o=s[0].args;return{loan:{id:`${this.contract.address.toLowerCase()}.${o.newLoanId}`,...o.loan,contractAddress:this.contract.address},newLoanId:o.newLoanId,...i}}}}async delegateMulticall(e){if(e.length===0)throw new Error("At least one delegation must be revoked");let t=await this.safeContractWrite.multicall([e.map(n=>ye({abi:C,functionName:"delegate",args:[n.loanId,n.loan,n.to,n.rights??b,n.enable]}))]);return{txHash:t,waitTxInBlock:async()=>{let n=await this.bcClient.waitForTransactionReceipt({hash:t}),a=await this.contract.createEventFilter.Delegated(),i=l(n,a);if(i.length!==e.length)throw new Error("Delegate multicall failed");return{...n,results:i.map(({args:r})=>r)}}}}async delegate({loan:e,loanId:t,to:n,rights:a=b,enable:i}){let r=await this.safeContractWrite.delegate([t,e,n,a,i]);return{txHash:r,waitTxInBlock:async()=>{let s=await this.bcClient.waitForTransactionReceipt({hash:r}),o=await this.contract.createEventFilter.Delegated(),u=l(s,o);if(u.length===0)throw new Error("Token not delegated");let d=u[0].args;return{loan:{...e,loanId:t,contractAddress:this.contract.address},value:d.value,...s}}}}async revokeDelegate({to:e,collection:t,tokenId:n}){let a=await this.safeContractWrite.revokeDelegate([e,t,n]);return{txHash:a,waitTxInBlock:async()=>{let i=await this.bcClient.waitForTransactionReceipt({hash:a}),r=await this.contract.createEventFilter.RevokeDelegate(),s=l(i,r);if(s.length===0)throw new Error("Token delegation not revoked");return{...s[0].args,...i}}}}async liquidateLoan({loan:e,loanId:t}){let n=await this.safeContractWrite.liquidateLoan([t,e]);return{txHash:n,waitTxInBlock:async()=>{let a=await this.bcClient.waitForTransactionReceipt({hash:n}),i=await this.contract.createEventFilter.LoanForeclosed(),r=await this.contract.createEventFilter.LoanSentToLiquidator(),s=l(a,i),o=l(a,r);if(s.length===0&&o.length===0)throw new Error("Loan not liquidated");return{...s?.[0]?.args??o?.[0]?.args,...a}}}}};y(z,"MslV5");import{encodeFunctionData as ue}from"viem";var G=class extends T{constructor({walletClient:e}){let{MultiSourceLoan:{v6:t}}=f(e.chain);super({walletClient:e,address:t,abi:q})}async extendLoan(){throw new Error("Not implemented for V6")}getDomain(){return{name:h,version:"3",chainId:this.wallet.chain.id,verifyingContract:this.address}}async signOffer({structToSign:e}){return this.wallet.signTypedData({domain:this.getDomain(),primaryType:"LoanOffer",types:{LoanOffer:[{name:"offerId",type:"uint256"},{name:"lender",type:"address"},{name:"fee",type:"uint256"},{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:"maxSeniorRepayment",type:"uint256"},{name:"validators",type:"OfferValidator[]"}],OfferValidator:[{name:"validator",type:"address"},{name:"arguments",type:"bytes"}]},message:e})}async signRenegotiationOffer({structToSign:e}){return this.wallet.signTypedData({domain:this.getDomain(),primaryType:"RenegotiationOffer",types:{RenegotiationOffer:[{name:"renegotiationId",type:"uint256"},{name:"loanId",type:"uint256"},{name:"lender",type:"address"},{name:"fee",type:"uint256"},{name:"trancheIndex",type:"uint256[]"},{name:"principalAmount",type:"uint256"},{name:"aprBps",type:"uint256"},{name:"expirationTime",type:"uint256"},{name:"duration",type:"uint256"}]},message:e})}async cancelOffer({id:e}){let t=await this.safeContractWrite.cancelOffer([e]);return{txHash:t,waitTxInBlock:async()=>{let n=await this.bcClient.waitForTransactionReceipt({hash:t}),a=await this.contract.createEventFilter.OfferCancelled(),i=l(n,a);if(i.length===0)throw new Error("Offer not cancelled");return{...i[0].args,...n}}}}async cancelAllOffers({minId:e}){let t=await this.safeContractWrite.cancelAllOffers([e]);return{txHash:t,waitTxInBlock:async()=>{let n=await this.bcClient.waitForTransactionReceipt({hash:t}),a=await this.contract.createEventFilter.AllOffersCancelled(),i=l(n,a);if(i.length===0)throw new Error("Offers not cancelled");return{...i[0].args,...n}}}}async cancelRefinanceOffer({id:e}){let t=await this.safeContractWrite.cancelRenegotiationOffer([e]);return{txHash:t,waitTxInBlock:async()=>{let n=await this.bcClient.waitForTransactionReceipt({hash:t}),a=await this.contract.createEventFilter.RenegotiationOfferCancelled(),i=l(n,a);if(i.length===0)throw new Error("Renegotiation offer not cancelled");return{...i[0].args,...n}}}}async cancelAllRenegotiations(e){throw new Error("Not implemented for V6")}mapEmitLoanToMslEmitLoanArgs({offerExecution:e,tokenId:t,duration:n,principalReceiver:a,expirationTime:i}){return{executionData:{offerExecution:e.map(({offer:s,amount:o,...u})=>({...u,amount:o??s.principalAmount,offer:{...s,lender:s.lenderAddress,validators:s.offerValidators}})),tokenId:t,duration:n,expirationTime:i??BigInt(w(Date.now())+86400),principalReceiver:a??this.wallet.account.address,callbackData:"0x"},borrower:this.wallet.account.address,borrowerOfferSignature:"0x"}}async emitLoan(e){let t=this.mapEmitLoanToMslEmitLoanArgs(e),n=await this.safeContractWrite.emitLoan([t]);return{txHash:n,waitTxInBlock:async()=>{let a=await this.bcClient.waitForTransactionReceipt({hash:n}),i=await this.contract.createEventFilter.LoanEmitted(),r=l(a,i);if(r.length===0)throw new Error("Loan not emitted");let s=r[0].args;return{loan:{id:`${this.contract.address.toLowerCase()}.${s.loanId}`,...s.loan,contractAddress:this.contract.address},loanId:s.loanId,offerIds:t.executionData.offerExecution.map(({offer:o})=>`${this.contract.address.toLowerCase()}.${o.lender.toLowerCase()}.${o.offerId}`),...a}}}}async revokeDelegationsAndEmitLoan({delegations:e,emit:t}){if(e.length===0)throw new Error("At least one delegation must be revoked");let n=this.mapEmitLoanToMslEmitLoanArgs(t),{tokenId:a,offerExecution:i}=n.executionData,r=e.map(u=>ue({abi:q,functionName:"revokeDelegate",args:[u,i[0].offer.nftCollateralAddress,a]})),s=ue({abi:q,functionName:"emitLoan",args:[n]}),o=await this.safeContractWrite.multicall([[...r,s]]);return{txHash:o,waitTxInBlock:async()=>{let u=await this.bcClient.waitForTransactionReceipt({hash:o}),d=await this.contract.createEventFilter.RevokeDelegate(),I=l(u,d);if(I.length!==e.length)throw new Error("Revoke delegations failed");let m=await this.contract.createEventFilter.LoanEmitted(),g=l(u,m);if(g.length===0)throw new Error("Loan not emitted");let F=[...I.map(({args:M})=>M),...g.map(({args:M})=>M)],S=g[0].args;return{loan:{id:`${this.contract.address.toLowerCase()}.${S.loanId}`,...S.loan,contractAddress:this.contract.address},loanId:S.loanId,...u,results:F}}}}async repayLoan({loan:e,loanId:t}){let n={loanId:t,callbackData:"0x",shouldDelegate:!1},a=await this.safeContractWrite.repayLoan([{data:n,loan:e,borrowerSignature:"0x"}]);return{txHash:a,waitTxInBlock:async()=>{let i=await this.bcClient.waitForTransactionReceipt({hash:a}),r=await this.contract.createEventFilter.LoanRepaid(),s=l(i,r);if(s.length===0)throw new Error("Loan not repaid");return{...s[0].args,...i}}}}async getRemainingLockupSeconds({loan:e}){let t=e.tranche[e.tranche.length-1],a=e.startTime+e.duration-t.startTime,i=await this.contract.read.getMinLockPeriod(),r=ne(i),s=Math.ceil(Number(a)*r),o=Math.ceil(w(Date.now())-Number(t.startTime));return o>=s?0:s-o}async refinanceFullLoan({offer:e,signature:t,loan:n}){let a=await this.safeContractWrite.refinanceFull([e,n,t]);return{txHash:a,waitTxInBlock:async()=>{let i=await this.bcClient.waitForTransactionReceipt({hash:a}),r=await this.contract.createEventFilter.LoanRefinanced(),s=l(i,r);if(s.length===0)throw new Error("Loan not refinanced");let o=s[0].args;return{loan:{id:`${this.contract.address.toLowerCase()}.${o.newLoanId}`,...o.loan,contractAddress:this.contract.address},loanId:o.newLoanId,renegotiationId:`${this.contract.address.toLowerCase()}.${e.lender.toLowerCase()}.${o.renegotiationId}`,...i}}}}async refinancePartialLoan({offer:e,loan:t}){let n=await this.safeContractWrite.refinancePartial([e,t]);return{txHash:n,waitTxInBlock:async()=>{let a=await this.bcClient.waitForTransactionReceipt({hash:n}),i=await this.contract.createEventFilter.LoanRefinanced(),r=l(a,i);if(r.length===0)throw new Error("Loan not refinanced");let s=r[0].args;return{loan:{id:`${this.contract.address.toLowerCase()}.${s.newLoanId}`,...s.loan,contractAddress:this.contract.address},loanId:s.newLoanId,renegotiationId:`${this.contract.address.toLowerCase()}.${e.lender.toLowerCase()}.${s.renegotiationId}`,...a}}}}async delegateMulticall(e){if(e.length===0)throw new Error("At least one delegation must be revoked");let t=await this.safeContractWrite.multicall([e.map(n=>ue({abi:q,functionName:"delegate",args:[n.loanId,n.loan,n.to,n.rights??b,n.enable]}))]);return{txHash:t,waitTxInBlock:async()=>{let n=await this.bcClient.waitForTransactionReceipt({hash:t}),a=await this.contract.createEventFilter.Delegated(),i=l(n,a);if(i.length!==e.length)throw new Error("Delegate multicall failed");return{...n,results:i.map(({args:r})=>r)}}}}async delegate({loan:e,loanId:t,to:n,rights:a=b,enable:i}){let r=await this.safeContractWrite.delegate([t,e,n,a,i]);return{txHash:r,waitTxInBlock:async()=>{let s=await this.bcClient.waitForTransactionReceipt({hash:r}),o=await this.contract.createEventFilter.Delegated(),u=l(s,o);if(u.length===0)throw new Error("Token not delegated");let d=u[0].args;return{loan:{...e,loanId:t,contractAddress:this.contract.address},value:d.value,...s}}}}async revokeDelegate({to:e,collection:t,tokenId:n}){let a=await this.safeContractWrite.revokeDelegate([e,t,n]);return{txHash:a,waitTxInBlock:async()=>{let i=await this.bcClient.waitForTransactionReceipt({hash:a}),r=await this.contract.createEventFilter.RevokeDelegate(),s=l(i,r);if(s.length===0)throw new Error("Token delegation not revoked");return{...s[0].args,...i}}}}async liquidateLoan({loan:e,loanId:t}){let n=await this.safeContractWrite.liquidateLoan([t,e]);return{txHash:n,waitTxInBlock:async()=>{let a=await this.bcClient.waitForTransactionReceipt({hash:n}),i=await this.contract.createEventFilter.LoanForeclosed(),r=await this.contract.createEventFilter.LoanSentToLiquidator(),s=l(a,i),o=l(a,r);if(s.length===0&&o.length===0)throw new Error("Loan not liquidated");return{...s?.[0]?.args??o?.[0]?.args,...a}}}}};y(G,"MslV6");import{zeroAddress as X}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 Z=class extends T{constructor({walletClient:e}){let{SeaportAddress:t}=f(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},n={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:n,primaryType:"OrderComponents",message:e})}async generateOrderFromSaleOffer({collectionContractAddress:e,tokenId:t,price:n,expirationTime:a}){let{WETH_ADDRESS:i}=_(),r={offerer:this.wallet.account.address,zone:X,offer:[{itemType:1,token:i,identifierOrCriteria:0n,startAmount:n,endAmount:n}],consideration:[{itemType:2,token:e,identifierOrCriteria:t,startAmount:1n,endAmount:1n,recipient:this.wallet.account.address}],orderType:0,startTime:BigInt(Math.floor(w(Date.now()))),endTime:a,zoneHash:b,salt:0n,conduitKey:b,counter:await this.getCounter(),totalOriginalConsiderationItems:1n},s=await this.signOrder(r);return{parameters:r,signature:s}}async recoverOrderFromNativeBid({nativeBid:e,collectionContractAddress:t,tokenId:n}){let{WETH_ADDRESS:a}=_();return{offerer:e.maker,zone:X,offer:[{itemType:1,token:a,identifierOrCriteria:0n,startAmount:e.netAmount,endAmount:e.netAmount}],consideration:[{itemType:2,token:t,identifierOrCriteria:n,startAmount:1n,endAmount:1n,recipient:e.maker}],orderType:0,startTime:BigInt(Math.floor(w(e.startTime.getTime()))),endTime:BigInt(Math.floor(w(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??X,zone:X,offer:e.consideration,consideration:e.offer.map(t=>({...t,recipient:this.wallet.account?.address??X})),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((n,a)=>{t.push({offerComponents:[{orderIndex:0n,itemIndex:BigInt(a)}],considerationComponents:[{orderIndex:1n,itemIndex:BigInt(a)}]})}),e.consideration.forEach((n,a)=>{t.push({offerComponents:[{orderIndex:1n,itemIndex:BigInt(a)}],considerationComponents:[{orderIndex:0n,itemIndex:BigInt(a)}]})}),t}async cancel({orderComponents:e}){let t=await this.safeContractWrite.cancel([[e]]);return{txHash:t,waitTxInBlock:async()=>{let n=await this.bcClient.waitForTransactionReceipt({hash:t}),a=await this.contract.createEventFilter.OrderCancelled({offerer:e.offerer}),i=l(n,a);if(i.length===0)throw new Error("Order not cancelled");return{...i[0].args,...n}}}}};y(Z,"Seaport");var j=class extends T{constructor({walletClient:e}){let{UserVault:t}=f(e.chain);super({walletClient:e,address:t,abi:Re})}async burnAndWithdraw({vaultId:e,collections:t,tokenIds:n,tokens:a=[]}){if(t.length!=n.length)throw new Error("collections and tokenIds must have the same length");let i=await this.safeContractWrite.burnAndWithdraw([e,t,n,a]);return{txHash:i,waitTxInBlock:async()=>{let r=await this.bcClient.waitForTransactionReceipt({hash:i}),s=await this.contract.createEventFilter.ERC721Withdrawn(),o=l(r,s);if(o.length!==n.length)throw new Error("Withdrawn count mismatch");return{events:o.map(u=>u.args),...r}}}}async createVault(e){let{id:t}=await this.#e(),n=[],a=e.reduce((i,r)=>{let{collection:s,tokenIds:o}=r,u=i.findIndex(d=>d.collection===s);return u===-1?i.push({collection:s,tokenIds:o}):i[u].tokenIds=[...i[u].tokenIds,...o],i},[]);for(let i=0;i<a.length;i++){let{collection:r,tokenIds:s}=a[i],u=await(await this.depositERC721s({vaultId:t,collection:r,tokenIds:s})).waitTxInBlock();n.push(u)}return{vaultId:t,receipts:n}}async depositERC721s({vaultId:e,collection:t,tokenIds:n}){let a=await this.safeContractWrite.depositERC721s([e,t,n]);return{txHash:a,waitTxInBlock:async()=>{let i=await this.bcClient.waitForTransactionReceipt({hash:a}),r=await this.contract.createEventFilter.ERC721Deposited(),s=l(i,r);if(s.length===0)throw new Error("Deposit not created");return{...s[0].args,...i}}}}async#e(){let e=await this.safeContractWrite.mint(void 0),t=await this.bcClient.waitForTransactionReceipt({hash:e}),n=await this.contract.createEventFilter.Transfer({}),a=l(t,n);if(a.length===0)throw new Error("Vault not created");return{...a[0].args,...t}}};y(j,"UserVault");var Y=class{walletClient;publicClient;MultiSourceLoanV4;MultiSourceLoanV5;MultiSourceLoanV6;AuctionLoanLiquidatorV4;AuctionLoanLiquidatorV5;AuctionLoanLiquidatorV6;UserVaultV5;Leverage;Seaport;CryptoPunks;constructor(e,t){this.walletClient=t,this.publicClient=e,this.MultiSourceLoanV4=new Q({walletClient:t}),this.MultiSourceLoanV5=new z({walletClient:t}),this.MultiSourceLoanV6=new G({walletClient:t}),this.AuctionLoanLiquidatorV4=new B({walletClient:t}),this.AuctionLoanLiquidatorV5=new U({walletClient:t}),this.AuctionLoanLiquidatorV6=new K({walletClient:t}),this.UserVaultV5=new j({walletClient:t}),this.Leverage=new $({walletClient:t,mslAddress:this.MultiSourceLoanV5.address}),this.Seaport=new Z({walletClient:t}),this.CryptoPunks=new W({walletClient:t})}Msl(e){if(x(e,this.MultiSourceLoanV4.address))return this.MultiSourceLoanV4;if(x(e,this.MultiSourceLoanV5.address))return this.MultiSourceLoanV5;if(x(e,this.MultiSourceLoanV6.address))return this.MultiSourceLoanV6;throw new Error(`Invalid Contract Address ${e}`)}All(e){if(x(e,this.MultiSourceLoanV4.address))return this.AuctionLoanLiquidatorV4;if(x(e,this.MultiSourceLoanV5.address))return this.AuctionLoanLiquidatorV5;if(x(e,this.MultiSourceLoanV6.address))return this.AuctionLoanLiquidatorV6;throw new Error(`Invalid Contract Address ${e}`)}UserVault(e){if(x(e,this.UserVaultV5.address))return this.UserVaultV5;throw new Error(`Invalid Contract Address ${e}`)}ERC721(e){return Ke({address:e,abi:te,walletClient:this.walletClient,publicClient:this.publicClient})}ERC20(e){return Ke({address:e,abi:Le,walletClient:this.walletClient,publicClient:this.publicClient})}};y(Y,"Contracts");var We=115792089237316195423570985008687907853269984665640564039457584007913129639935n;import{createClient as an}from"@reservoir0x/reservoir-sdk";import{createPublicClient as rn,encodeAbiParameters as sn,encodeFunctionData as Qe,getContract as pn,http as on,zeroAddress as yn}from"viem";import{mainnet as ln}from"viem/chains";var k=class{orderId;to;callbackData;value;constructor({orderId:e,to:t,callbackData:n,value:a}){this.orderId=e,this.to=t,this.callbackData=n,this.value=a}};y(k,"InterruptedSendTransactionStepError");var L=class extends k{signature;constructor({orderId:e,to:t,callbackData:n,value:a,signature:i}){super({orderId:e,to:t,callbackData:n,value:a}),this.signature=i}};y(L,"InterruptedSeaportSendTransactionStepError");var E=class extends k{};y(E,"InterruptedCryptoPunksSendTransactionStepError");var P=class extends k{};y(P,"InterruptedGenericSendTransactionStepError");import{adaptViemWallet as Jt}from"@reservoir0x/reservoir-sdk";import{decodeFunctionData as en,zeroAddress as tn}from"viem";var de=y(p=>p==="opensea.io","isOpensea"),nn=y(p=>p==="cryptopunks.app","isCryptopunks"),$e=y(p=>p==="gondi.xyz","isNative"),me=y((p,e)=>({...Jt(p),transport:void 0,handleSendTransactionStep:async(a,i,r)=>{if(r.id!=="sale")return console.log(r),Be;let s=i.orderIds?.[0]??"",o=i.data.to,u=i.data.data,d=BigInt(i.data.value??0);if(de(e)){let m=en({abi:R,data:i.data.data})?.args?.[0],g=Array.isArray(m)?m[0].signature:typeof m=="object"?m.signature:tn;throw new L({orderId:s,to:o,callbackData:u,value:d,signature:g})}else throw nn(e)?new E({orderId:s,to:o,callbackData:u,value:d}):new P({orderId:s,to:o,callbackData:u,value:d})}}),"adaptWalletToCaptureTxData");var J=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:n,CryptoPunks:a}){this.baseApiUrl=e,this.wallet=t,this.Seaport=n,this.CryptoPunks=a;let{reservoirApiKey:i,infuraApiKey:r}=ke();this.client=an({chains:[{id:t.chain.id,name:t.chain.name,baseApiUrl:e,active:!0}],apiKey:i,source:"gondi.xyz"}),this.mainnetClient=rn({chain:ln,transport:on(`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:n}){return sn(this.EXECUTION_INFO_ABI,[{module:e,data:t,value:n}])}async generateMatchOrdersExecutionData({askOrBid:e,signature:t,side:n="ask"}){let a={parameters:{...e.rawData,totalOriginalConsiderationItems:BigInt(e.rawData.consideration.length)},signature:t},i=await this.Seaport.generateInverseOrder(a.parameters),r={parameters:i,signature:await this.Seaport.signOrder(i)},s=this.Seaport.generateFulfillmentsForOrderAndInverse(a.parameters),o=Qe({abi:R,functionName:"matchOrders",args:[[a,r],s]}),u=n==="ask"?a.parameters.consideration.reduce((d,I)=>d+(I.itemType===0?BigInt(I.endAmount):0n),0n):BigInt(e.price.netAmount.raw);return{callbackData:this.encodeExecutionData({module:this.Seaport.address,data:o,value:u}),value:u,isSeaportCall:!0}}async generateFulfillOrderExecutionData({askOrBid:e,signature:t,tokenId:n}){let a={parameters:{...e.rawData,totalOriginalConsiderationItems:BigInt(e.rawData.consideration.length)},numerator:1n,denominator:1n,signature:t,extraData:"0x"},i=a.parameters.consideration.findIndex(o=>o.itemType===4),r=Qe({abi:R,functionName:"fulfillAdvancedOrder",args:[a,i!==-1?[{orderIndex:0n,side:1,index:BigInt(i),identifier:n,criteriaProof:[]}]:[],b,yn]}),s=BigInt(e.price.netAmount.raw);return{callbackData:this.encodeExecutionData({module:this.Seaport.address,data:r,value:s}),value:s,isSeaportCall:!0}}async buyTokens(e){let{ETH_ADDRESS:t}=_(),n=e.reduce((a,i)=>a+i.price,0n);return this.client?.actions.buyToken({items:e.map(a=>({token:`${a.collectionContractAddress}:${a.tokenId}`,quantity:1,exactOrderSource:a.orderSource})),expectedPrice:this.generateExpectedCurrencyPriceObject(n,t),wallet:this.wallet,onProgress:()=>null,precheck:!1,options:{excludeEOA:!0,skipBalanceCheck:!0}})}async getExecutionDataForBuyToken({collectionContractAddress:e,tokenId:t,price:n,exactOrderSource:a}){let i=me(this.wallet,a),{ETH_ADDRESS:r}=_();try{throw await this.client?.actions.buyToken({items:[{token:`${e}:${t}`,quantity:1,exactOrderSource:a}],expectedPrice:this.generateExpectedCurrencyPriceObject(n,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(s){if(s instanceof L){let{orderId:o,signature:u}=s,d=await this.getAsk({orderId:o});return this.generateMatchOrdersExecutionData({askOrBid:d,signature:u})}else if(s instanceof E){let{value:o}=s,u=await this.CryptoPunks.encodeBuyPunk(t);return{callbackData:this.encodeExecutionData({module:this.CryptoPunks.address,data:u,value:o}),value:o,isSeaportCall:!1}}else if(s instanceof P){let{to:o,callbackData:u,value:d}=s;return{callbackData:this.encodeExecutionData({module:o,data:u,value:d}),value:d,isSeaportCall:!1}}else throw new Error(`No available offer for price ${n}`)}}async getCallbackDataForSellToken({collectionContractAddress:e,tokenId:t,price:n,exactOrderSource:a}){let i=me(this.wallet,a),{WETH_ADDRESS:r}=_(),{LeverageAddress:s}=f(this.wallet.chain),u=await pn({abi:te,address:e,publicClient:this.mainnetClient}).read.ownerOf([t]);try{throw await this.client?.actions.acceptOffer({items:[{token:`${e}:${t}`,quantity:1,exactOrderSource:a}],expectedPrice:this.generateExpectedCurrencyPriceObject(n,r),wallet:i,onProgress:()=>null,precheck:!1,options:{excludeEOA:!0,taker:de(a)?u:s}}),new Error("This should never happen since we will throw inside the wallet tx")}catch(d){if(d instanceof L){let{orderId:I,signature:m}=d,g=await this.getBid({orderId:I});return this.generateFulfillOrderExecutionData({askOrBid:g,signature:m,tokenId:t})}else if(d instanceof P){let{orderId:I,to:m,callbackData:g}=d,F=await this.getBid({orderId:I});return{callbackData:this.encodeExecutionData({module:m,data:g,value:BigInt(F.price?.netAmount?.raw??0n)}),value:BigInt(F.price?.netAmount?.raw??0n),isSeaportCall:!1}}else throw new Error(`No available offer for price ${n}`)}}};y(J,"Reservoir");import{isAddress as un}from"viem";var ce=y((p,e)=>({...p,loanId:e,strictImprovement:p.strictImprovement??!1,lender:p.lenderAddress,signer:p.signerAddress??A,fee:p.feeAmount,trancheIndex:p.trancheIndex??[],targetPrincipal:p.targetPrincipal??[]}),"renegotiationToMslRenegotiation"),O=y(p=>{let e=p.nftCollateralAddress??A;if(x(A,e)||!un(e))throw new Error("nftCollateralAddress is required");let t;"source"in p?t=p.source.map(a=>({...a,floor:0n})):t=p.tranche;let n;return"protocolFee"in p?n=p.protocolFee:n=0n,{...p,nftCollateralAddress:e,source:t,tranche:t,protocolFee:n}},"loanToMslLoan");var ae=class{contracts;wallet;bcClient;api;reservoir;constructor({wallet:e,apiClient:t,reservoirBaseApiUrl:n}){this.wallet=e,this.bcClient=dn({chain:e.chain,transport:()=>mn(e.transport)}),this.contracts=new Y(this.bcClient,e),this.api=new V({wallet:e,apiClient:t}),this.reservoir=new J({baseApiUrl:n,wallet:e,Seaport:this.contracts.Seaport,CryptoPunks:this.contracts.CryptoPunks})}async makeSingleNftOffer(e){return await this._makeSingleNftOffer(e)}async _makeSingleNftOffer(e,t){let n=t?this.contracts.Msl(t):this.contracts.MultiSourceLoanV5,a=n.address,i={...e,lenderAddress:e.lenderAddress?e.lenderAddress:this.wallet.account?.address,signerAddress:this.wallet.account?.address,borrowerAddress:e.borrowerAddress??A,requiresLiquidation:!!e.requiresLiquidation,contractAddress:a,offerValidators:[]},r=await this.api.generateSingleNftOfferHash({offerInput:i}),{offerHash:s,offerId:o,validators:u,lenderAddress:d,signerAddress:I,borrowerAddress:m}=r.offer,g=r.offer.nft.collection?.contractData?.contractAddress;if(g===void 0)throw new Error("Invalid nft");let F={...i,lender:d??i.lenderAddress,signer:I??i.signerAddress,borrower:m??i.borrowerAddress,nftCollateralTokenId:r.offer.nft.tokenId,nftCollateralAddress:g,validators:u,offerId:o},S=await n.signOffer({structToSign:F}),M={...i,offerValidators:u.map(N=>({arguments:N.arguments,validator:N.validator})),offerHash:s??b,offerId:o,signature:S};return await this.api.saveSingleNftOffer(M)}async makeCollectionOffer(e){return await this._makeCollectionOffer(e)}async _makeCollectionOffer(e,t){let n=t?this.contracts.Msl(t):this.contracts.MultiSourceLoanV5,a=n.address,i={...e,lenderAddress:e.lenderAddress?e.lenderAddress:this.wallet.account?.address,signerAddress:this.wallet.account?.address,borrowerAddress:e.borrowerAddress??A,requiresLiquidation:!!e.requiresLiquidation,contractAddress:a,offerValidators:[{validator:A,arguments:Ce}]},r=await this.api.generateCollectionOfferHash({offerInput:i}),s=r.offer.collection.contractData?.contractAddress;if(s===void 0)throw new Error("Invalid collection");let{offerHash:o,offerId:u,validators:d,lenderAddress:I,signerAddress:m,borrowerAddress:g}=r.offer,F={...i,lender:I??i.lenderAddress,signer:m??i.signerAddress,borrower:g??i.borrowerAddress,nftCollateralTokenId:0n,nftCollateralAddress:s,validators:d,offerId:u},S=await n.signOffer({structToSign:F}),M={...i,offerValidators:d.map(N=>({arguments:N.arguments,validator:N.validator})),offerHash:o??b,offerId:u,signature:S};return await this.api.saveCollectionOffer(M)}async makeSaleOffer({collectionContractAddress:e,tokenId:t,price:n,expirationTime:a}){let{parameters:{totalOriginalConsiderationItems:i,...r},signature:s}=await this.contracts.Seaport.generateOrderFromSaleOffer({collectionContractAddress:e,tokenId:t,price:n,expirationTime:a});return this.api.saveSignedSaleOffer({offer:{...r,signature:s}})}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:n}){let a={lenderAddress:this.wallet.account?.address,signerAddress:this.wallet.account?.address,...e,targetPrincipal:e.targetPrincipal??[],trancheIndex:e.trancheIndex??[]},i=await this.api.generateRenegotiationOfferHash({renegotiationInput:a}),{renegotiationId:r,offerHash:s,loanId:o,lenderAddress:u,signerAddress:d}=i.offer;if(n)return{...a,offerHash:s??b,signature:b,renegotiationId:r};let I={...a,fee:a.feeAmount,lender:u??a.lenderAddress,signer:d??a.signerAddress??A,strictImprovement:!1,loanId:o,renegotiationId:r},g=await this.contracts.Msl(t).signRenegotiationOffer({structToSign:I}),F={...a,signature:g,offerHash:s??b,renegotiationId:r};return await this.api.saveRefinanceOffer(F)}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})}offerExecutionFromOffers(e,t){return e.map((n,a)=>{let{signature:i,lenderAddress:r,borrowerAddress:s,offerHash:o}=n;if(!(i&&r&&s&&o))throw new Error("Misisng required field for offer");return{offer:{...n,offerHash:o,lenderAddress:r,lender:r,borrowerAddress:s,borrower:s,signature:i,maxSeniorRepayment:n.maxSeniorRepayment??0n},amount:t?.[a]??n.principalAmount,lenderOfferSignature:i}})}async emitLoan(e){let t=e.offerExecution[0].offer.contractAddress;return this.contracts.Msl(t).emitLoan(e)}async repayLoan({loan:e,loanId:t,nftReceiver:n}){return this.contracts.Msl(e.contractAddress).repayLoan({loan:O(e),nftReceiver:n,loanId:t})}async offers({limit:e=20,cursor:t,sortBy:n={field:"CREATED_DATE",order:"DESC"},filterBy:a={}}){let{status:i,nft:r,collection:s,borrower:o,...u}=a;return await this.api.listOffers({first:e,after:t,sortBy:n,statuses:i,nfts:r?[r]:[],collections:s?[s]:[],borrowerAddress:o,...u})}async loans({limit:e=20,cursor:t,...n}){return await this.api.listLoans({first:e,after:t,...n})}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:n=["GONDI"],limit:a=20,cursor:i}){return await this.api.listListings({collections:e,userFilter:t,marketplaceNames:n,after:i,first:a})}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 collections(e){let t=await this.api.collections({currency:e.statsCurrency??A}),{edges:n,pageInfo:a}=t.collections;return{collections:n.map(i=>i.node),pageInfo:a}}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(n=>Number(n.id))}}async ownedNfts(){let e=await this.api.ownedNfts(),{edges:t,pageInfo:n}=e.ownedNfts;return{ownedNfts:t.map(a=>a.node),pageInfo:n}}async getRemainingLockupSeconds({loan:e}){return this.contracts.Msl(e.contractAddress).getRemainingLockupSeconds({loan:O(e)})}async getBestNativeSaleOffer({contractAddress:e,tokenId:t}){let{WETH_ADDRESS:n}=_(),a=await this.nftId({contractAddress:e,tokenId:t}),{bids:i}=await this.api.listBestBidsForNft({nftId:a,currencyAddress:n});return i.find(s=>s.marketPlace===Ee)??null}async refinanceFullLoan({offer:e,loan:t,loanId:n}){return this.contracts.Msl(t.contractAddress).refinanceFullLoan({offer:ce(e,n),loan:O(t),signature:e.signature})}async refinancePartialLoan({offer:e,loan:t,loanId:n}){return this.contracts.Msl(t.contractAddress).refinancePartialLoan({offer:ce(e,n),loan:O(t)})}async extendLoan({loan:e,newDuration:t,loanId:n}){return this.contracts.Msl(e.contractAddress).extendLoan({loan:O(e),newDuration:t,loanId:n})}async delegateMulticall(e){let t=e[0].loan.contractAddress;return this.contracts.Msl(t).delegateMulticall(e.map(n=>({...n,loan:O(n.loan)})))}async delegate({loan:e,loanId:t,to:n,enable:a,rights:i}){return this.contracts.Msl(e.contractAddress).delegate({loan:O(e),loanId:t,to:n,rights:i,enable:a})}async revokeDelegate({to:e,collection:t,tokenId:n,contract:a=this.contracts.MultiSourceLoanV5.address}){return this.contracts.Msl(a).revokeDelegate({to:e,collection:t,tokenId:n})}async revokeDelegationsAndEmitLoan({delegations:e,emit:t}){let n=t.offerExecution[0].offer.contractAddress;return this.contracts.Msl(n).revokeDelegationsAndEmitLoan({delegations:e,emit:t})}async liquidateLoan({loan:e,loanId:t}){return this.contracts.Msl(e.contractAddress).liquidateLoan({loanId:t,loan:O(e)})}async placeBid({collectionContractAddress:e,tokenId:t,bid:n,auction:a}){return this.contracts.All(a.loanAddress).placeBid({collectionContractAddress:e,tokenId:t,bid:n,auction:a})}async settleAuction({loan:e,auction:t}){return this.contracts.All(t.loanAddress).settleAuction({auction:t,loan:O(e)})}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}))),n=t.reduce((i,{value:r},s)=>i+r-e[s].amount+e[s].offer.fee,0n),a=e.map((i,r)=>({...i,callbackData:t[r].callbackData}));return this.contracts.Leverage.buy({leverageBuyData:a,ethToSend:n<0n?0n:n})}async leverageSell({loan:e,loanId:t,price:n,orderSource:a}){let i=null;if($e(a)){let s=await this.getBestNativeSaleOffer({contractAddress:e.nftCollateralAddress,tokenId:e.nftCollateralTokenId});if(!s||s.netAmount<n)throw new Error(`No native bid for price ${n}`);i=await this.reservoir.generateFulfillOrderExecutionData({askOrBid:{rawData:await this.contracts.Seaport.recoverOrderFromNativeBid({nativeBid:s,collectionContractAddress:e.nftCollateralAddress,tokenId:e.nftCollateralTokenId}),price:{netAmount:{raw:String(n)}}},signature:s.signature,tokenId:e.nftCollateralTokenId})}else i=await this.reservoir.getCallbackDataForSellToken({collectionContractAddress:e.nftCollateralAddress,tokenId:e.nftCollateralTokenId,price:n,exactOrderSource:a});let r=i.isSeaportCall;return this.contracts.Leverage.sell({loan:e,callbackData:i.callbackData,shouldDelegate:r,loanId:t})}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 n=this.contracts.ERC721(e),a=await n.write.setApprovalForAll([t,!0]);return{txHash:a,waitTxInBlock:async()=>{let i=await this.bcClient.waitForTransactionReceipt({hash:a}),r=await n.createEventFilter.ApprovalForAll({}),s=l(i,r);if(s.length===0)throw new Error("ERC721 approval for all not set");return{...s[0].args,...i}}}}async isApprovedToken({tokenAddress:e,amount:t,to:n=this.contracts.MultiSourceLoanV5.address}){return await this.contracts.ERC20(e).read.allowance([this.wallet.account?.address,n])>=t}async approveToken({tokenAddress:e,amount:t=We,to:n=this.contracts.MultiSourceLoanV5.address}){let a=this.contracts.ERC20(e),i=await a.write.approve([n,t]);return{txHash:i,waitTxInBlock:async()=>{let r=await this.bcClient.waitForTransactionReceipt({hash:i}),s=await a.createEventFilter.Approval({}),o=l(r,s);if(o.length===0)throw new Error("ERC20 approval not set");return{...o[0].args,...r}}}}async createUserVault({nfts:e,userVaultAddress:t=this.contracts.UserVaultV5.address}){return this.contracts.UserVault(t).createVault(e)}async depositUserVaultERC721s({userVaultAddress:e=this.contracts.UserVaultV5.address,...t}){return this.contracts.UserVault(e).depositERC721s(t)}async burnUserVaultAndWithdraw({userVaultAddress:e=this.contracts.UserVaultV5.address,...t}){return this.contracts.UserVault(e).burnAndWithdraw(t)}};y(ae,"Gondi");export{ae as Gondi,Me as LoanStatusType,ie as MarketplaceEnum,xe as OfferStatus,re as OffersSortField,se as Ordering};
2086
2000
  //# sourceMappingURL=index.mjs.map