Properties
Static AAVE_ PREMIUM_ BPS
AAVE_ PREMIUM_ BPS : bigint = ...
Static EXECUTION_ INFO
EXECUTION_ INFO : { name : "executionInfo" ; type : "tuple" ; components : readonly [ { name : "reservoirExecutionInfo" ; type : "tuple" ; components : readonly [ { name : "module" ; type : "address" ; } , { name : "data" ; type : "bytes" ; } , { name : "value" ; type : "uint256" ; } ] ; } , { name : "contractMustBeOwner" ; type : "bool" ; } , { name : "purchaseCurrency" ; type : "address" ; } , { name : "amount" ; type : "uint256" ; } , { name : "swapData" ; type : "bytes" ; } , { name : "swapValue" ; type : "uint256" ; } , { name : "maxSlippage" ; type : "uint256" ; } ] ; } = ...
Type declaration
Readonly name : "executionInfo"
Readonly type : "tuple"
Readonly components : readonly [ { name : "reservoirExecutionInfo" ; type : "tuple" ; components : readonly [ { name : "module" ; type : "address" ; } , { name : "data" ; type : "bytes" ; } , { name : "value" ; type : "uint256" ; } ] ; } , { name : "contractMustBeOwner" ; type : "bool" ; } , { name : "purchaseCurrency" ; type : "address" ; } , { name : "amount" ; type : "uint256" ; } , { name : "swapData" ; type : "bytes" ; } , { name : "swapValue" ; type : "uint256" ; } , { name : "maxSlippage" ; type : "uint256" ; } ]
Static ETH_ SENTINEL
ETH_ SENTINEL : string = '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE'
abi
abi : readonly [ { type : "constructor" ; inputs : readonly [ { name : "name" ; type : "string" ; internalType : "string" ; } , { name : "multiSourceLoanAddress" ; type : "address" ; internalType : "address" ; } , { name : "marketplaceContracts" ; type : "address" ; internalType : "address" ; } , { name : "wethAddress" ; type : "address" ; internalType : "address payable" ; } , { name : "punkMarketAddress" ; type : "address" ; internalType : "address payable" ; } , { name : "wrappedPunkAddress" ; type : "address" ; internalType : "address payable" ; } , { name : "c721Address" ; type : "address" ; internalType : "address payable" ; } , { name : "uniswapRouterAddress" ; type : "address" ; internalType : "address payable" ; } , { name : "aaveAddressProvider" ; type : "address" ; internalType : "address payable" ; } , { name : "permit2Address" ; type : "address" ; internalType : "address payable" ; } , { name : "currencyManager" ; type : "address" ; internalType : "address" ; } , { name : "punkTaxes" ; type : "tuple" ; internalType : "struct IPurchaseBundler.Taxes" ; components : readonly [ { name : "buyTax" ; type : "uint128" ; internalType : "uint128" ; } , { name : "sellTax" ; type : "uint128" ; internalType : "uint128" ; } ] ; } , { name : "minWaitTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "protocolFee" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "fallback" ; stateMutability : "payable" ; } , { type : "receive" ; stateMutability : "payable" ; } , { type : "function" ; name : "DOMAIN_SEPARATOR" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "ETH" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "FEE_UPDATE_NOTICE" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "INITIAL_DOMAIN_SEPARATOR" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "MAX_SLIPPAGE_DENOMINATOR" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "MIN_WAIT_TIME" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "VERSION" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes" ; internalType : "bytes" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "afterNFTTransfer" ; inputs : readonly [ { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_executionData" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "bytes4" ; internalType : "bytes4" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "afterPrincipalTransfer" ; inputs : readonly [ { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_executionData" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "bytes4" ; internalType : "bytes4" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "approveForSwap" ; inputs : readonly [ { name : "currency" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "buy" ; inputs : readonly [ { name : "executionData" ; type : "bytes[]" ; internalType : "bytes[]" ; } ] ; outputs : readonly [ { name : "loanIds" ; type : "uint256[]" ; internalType : "uint256[]" ; } ] ; stateMutability : "payable" ; } , { type : "function" ; name : "cancelAllOrders" ; inputs : readonly [ { name : "nonce" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "cancelOrder" ; inputs : readonly [ { name : "nonce" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "cancelled" ; inputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } , { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ { name : "" ; type : "bool" ; internalType : "bool" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "executeOperation" ; inputs : readonly [ { name : "assets" ; type : "address[]" ; internalType : "address[]" ; } , { name : "amounts" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "premiums" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "initiator" ; type : "address" ; internalType : "address" ; } , { name : "params" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "bool" ; internalType : "bool" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "executeOrder" ; inputs : readonly [ { name : "order" ; type : "tuple" ; internalType : "struct ITradeMarketplace.Order" ; components : readonly [ { name : "maker" ; type : "address" ; internalType : "address" ; } , { name : "taker" ; type : "address" ; internalType : "address" ; } , { name : "collection" ; type : "address" ; internalType : "address" ; } , { name : "tokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "currency" ; type : "address" ; internalType : "address" ; } , { name : "price" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nonce" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expiration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "isAsk" ; type : "bool" ; internalType : "bool" ; } , { name : "signature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "executeSell" ; inputs : readonly [ { name : "currencies" ; type : "address[]" ; internalType : "address[]" ; } , { name : "currencyAmounts" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "collections" ; type : "address[]" ; internalType : "contract ERC721[]" ; } , { name : "tokenIds" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "marketPlace" ; type : "address" ; internalType : "address" ; } , { name : "executionData" ; type : "bytes[]" ; internalType : "bytes[]" ; } , { name : "swapData" ; type : "bytes[]" ; internalType : "bytes[]" ; } ] ; outputs : readonly [ ] ; stateMutability : "payable" ; } , { type : "function" ; name : "executeSellWithLoan" ; inputs : readonly [ { name : "args" ; type : "tuple" ; internalType : "struct IPurchaseBundler.ExecuteSellWithLoanArgs" ; components : readonly [ { name : "borrowArgs" ; type : "tuple" ; internalType : "struct IPurchaseBundler.AaveBorrowArgs" ; components : readonly [ { name : "pool" ; type : "address" ; internalType : "contract IPool" ; } , { name : "assets" ; type : "address[]" ; internalType : "address[]" ; } , { name : "amounts" ; type : "uint256[]" ; internalType : "uint256[]" ; } ] ; } , { name : "executeSellArgs" ; type : "tuple" ; internalType : "struct IPurchaseBundler.ExecuteSellArgs" ; components : readonly [ { name : "currencies" ; type : "address[]" ; internalType : "address[]" ; } , { name : "currencyAmounts" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "collections" ; type : "address[]" ; internalType : "contract ERC721[]" ; } , { name : "tokenIds" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "marketPlace" ; type : "address" ; internalType : "address" ; } , { name : "executionData" ; type : "bytes[]" ; internalType : "bytes[]" ; } , { name : "swapData" ; type : "bytes[]" ; internalType : "bytes[]" ; } ] ; } , { name : "loanExecutionData" ; type : "bytes[]" ; internalType : "bytes[]" ; } , { name : "swapCurrencies" ; type : "address[]" ; internalType : "contract ERC20[]" ; } , { name : "swapAmounts" ; type : "uint160[]" ; internalType : "uint160[]" ; } , { name : "swapData" ; type : "bytes[]" ; internalType : "bytes[]" ; } , { name : "unwrap" ; type : "bool" ; internalType : "bool" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "payable" ; } , { type : "function" ; name : "getMultiSourceLoanAddress" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getPendingProtocolFee" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getPendingProtocolFeeSetTime" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getPendingTaxes" ; inputs : readonly [ { name : "module" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ { name : "" ; type : "tuple" ; internalType : "struct IPurchaseBundler.Taxes" ; components : readonly [ { name : "buyTax" ; type : "uint128" ; internalType : "uint128" ; } , { name : "sellTax" ; type : "uint128" ; internalType : "uint128" ; } ] ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getPendingTaxesSetTime" ; inputs : readonly [ { name : "module" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getProtocolFee" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getTaxes" ; inputs : readonly [ { name : "module" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ { name : "" ; type : "tuple" ; internalType : "struct IPurchaseBundler.Taxes" ; components : readonly [ { name : "buyTax" ; type : "uint128" ; internalType : "uint128" ; } , { name : "sellTax" ; type : "uint128" ; internalType : "uint128" ; } ] ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "isOrderCancelled" ; inputs : readonly [ { name : "order" ; type : "tuple" ; internalType : "struct ITradeMarketplace.Order" ; components : readonly [ { name : "maker" ; type : "address" ; internalType : "address" ; } , { name : "taker" ; type : "address" ; internalType : "address" ; } , { name : "collection" ; type : "address" ; internalType : "address" ; } , { name : "tokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "currency" ; type : "address" ; internalType : "address" ; } , { name : "price" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nonce" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expiration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "isAsk" ; type : "bool" ; internalType : "bool" ; } , { name : "signature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; outputs : readonly [ { name : "" ; type : "bool" ; internalType : "bool" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "minNonce" ; inputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "multicall" ; inputs : readonly [ { name : "data" ; type : "bytes[]" ; internalType : "bytes[]" ; } ] ; outputs : readonly [ { name : "results" ; type : "bytes[]" ; internalType : "bytes[]" ; } ] ; stateMutability : "payable" ; } , { type : "function" ; name : "name" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "string" ; internalType : "string" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "onERC721Received" ; inputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } , { name : "" ; type : "address" ; internalType : "address" ; } , { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "bytes4" ; internalType : "bytes4" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "orderHash" ; inputs : readonly [ { name : "order" ; type : "tuple" ; internalType : "struct ITradeMarketplace.Order" ; components : readonly [ { name : "maker" ; type : "address" ; internalType : "address" ; } , { name : "taker" ; type : "address" ; internalType : "address" ; } , { name : "collection" ; type : "address" ; internalType : "address" ; } , { name : "tokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "currency" ; type : "address" ; internalType : "address" ; } , { name : "price" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nonce" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expiration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "isAsk" ; type : "bool" ; internalType : "bool" ; } , { name : "signature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "pure" ; } , { type : "function" ; name : "owner" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "pendingOwner" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "pendingOwnerTime" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "requestTransferOwner" ; inputs : readonly [ { name : "_newOwner" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "sell" ; inputs : readonly [ { name : "executionData" ; type : "bytes[]" ; internalType : "bytes[]" ; } , { name : "swapData" ; type : "bytes[]" ; internalType : "bytes[]" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "setProtocolFee" ; inputs : readonly [ ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "setTaxes" ; inputs : readonly [ { name : "module" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "swapAndExecute" ; inputs : readonly [ { name : "args" ; type : "tuple" ; internalType : "struct IPurchaseBundler.SwapAndExecuteParams" ; components : readonly [ { name : "inputCurrencies" ; type : "address[]" ; internalType : "address[]" ; } , { name : "outputCurrencies" ; type : "address[]" ; internalType : "address[]" ; } , { name : "amountsToSwap" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "swapData" ; type : "bytes" ; internalType : "bytes" ; } , { name : "target" ; type : "address" ; internalType : "address" ; } , { name : "executionCalldata" ; type : "bytes" ; internalType : "bytes" ; } , { name : "executionValue" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "payable" ; } , { type : "function" ; name : "transferOwnership" ; inputs : readonly [ ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "transferOwnership" ; inputs : readonly [ { name : "newOwner" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "updateProtocolFee" ; inputs : readonly [ { name : "_newProtocolFee" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "updateTaxes" ; inputs : readonly [ { name : "module" ; type : "address" ; internalType : "address" ; } , { name : "newTax" ; type : "tuple" ; internalType : "struct IPurchaseBundler.Taxes" ; components : readonly [ { name : "buyTax" ; type : "uint128" ; internalType : "uint128" ; } , { name : "sellTax" ; type : "uint128" ; internalType : "uint128" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "event" ; name : "AllOrdersCancelled" ; inputs : readonly [ { name : "user" ; type : "address" ; indexed : true ; internalType : "address" ; } , { name : "nonce" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "BNPLLoansStarted" ; inputs : readonly [ { name : "loanIds" ; type : "uint256[]" ; indexed : false ; internalType : "uint256[]" ; } ] ; anonymous : false ; } , { type : "event" ; name : "OrderExecuted" ; inputs : readonly [ { name : "maker" ; type : "address" ; indexed : true ; internalType : "address" ; } , { name : "taker" ; type : "address" ; indexed : true ; internalType : "address" ; } , { name : "collection" ; type : "address" ; indexed : true ; internalType : "address" ; } , { name : "tokenId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "currency" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "price" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "nonce" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "expiration" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "isAsk" ; type : "bool" ; indexed : false ; internalType : "bool" ; } ] ; anonymous : false ; } , { type : "event" ; name : "OwnershipTransferred" ; inputs : readonly [ { name : "user" ; type : "address" ; indexed : true ; internalType : "address" ; } , { name : "newOwner" ; type : "address" ; indexed : true ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "ProtocolFeePendingUpdate" ; inputs : readonly [ { name : "fee" ; type : "tuple" ; indexed : false ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; anonymous : false ; } , { type : "event" ; name : "ProtocolFeeUpdated" ; inputs : readonly [ { name : "fee" ; type : "tuple" ; indexed : false ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; anonymous : false ; } , { type : "event" ; name : "SellAndRepayExecuted" ; inputs : readonly [ { name : "loanIds" ; type : "uint256[]" ; indexed : false ; internalType : "uint256[]" ; } ] ; anonymous : false ; } , { type : "event" ; name : "TaxesPendingUpdate" ; inputs : readonly [ { name : "module" ; type : "address" ; indexed : true ; internalType : "address" ; } , { name : "newTax" ; type : "tuple" ; indexed : false ; internalType : "struct IPurchaseBundler.Taxes" ; components : readonly [ { name : "buyTax" ; type : "uint128" ; internalType : "uint128" ; } , { name : "sellTax" ; type : "uint128" ; internalType : "uint128" ; } ] ; } ] ; anonymous : false ; } , { type : "event" ; name : "TaxesUpdated" ; inputs : readonly [ { name : "module" ; type : "address" ; indexed : true ; internalType : "address" ; } , { name : "newTax" ; type : "tuple" ; indexed : false ; internalType : "struct IPurchaseBundler.Taxes" ; components : readonly [ { name : "buyTax" ; type : "uint128" ; internalType : "uint128" ; } , { name : "sellTax" ; type : "uint128" ; internalType : "uint128" ; } ] ; } ] ; anonymous : false ; } , { type : "event" ; name : "TransferOwnerRequested" ; inputs : readonly [ { name : "newOwner" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "error" ; name : "AddressZeroError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "CouldNotReturnEthError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "CurrencyNotWhitelisted" ; inputs : readonly [ ] ; } , { type : "error" ; name : "ECDSAInvalidSignature" ; inputs : readonly [ ] ; } , { type : "error" ; name : "ECDSAInvalidSignatureLength" ; inputs : readonly [ { name : "length" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "ECDSAInvalidSignatureS" ; inputs : readonly [ { name : "s" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; } , { type : "error" ; name : "InvalidCallbackError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidCollateralError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidCurrencyError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidExecutionData" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidInputError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidSignature" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidStateError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidSwapDataLengthError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidSwapError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidTaker" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidTargetContractError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidTaxesError" ; inputs : readonly [ { name : "newTaxes" ; type : "tuple" ; internalType : "struct IPurchaseBundler.Taxes" ; components : readonly [ { name : "buyTax" ; type : "uint128" ; internalType : "uint128" ; } , { name : "sellTax" ; type : "uint128" ; internalType : "uint128" ; } ] ; } ] ; } , { type : "error" ; name : "LowNonceError" ; inputs : readonly [ { name : "user" ; type : "address" ; internalType : "address" ; } , { name : "nonce" ; type : "uint256" ; internalType : "uint256" ; } , { name : "currentMinNonce" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "MarketplaceAddressNotWhitelisted" ; inputs : readonly [ ] ; } , { type : "error" ; name : "MulticallFailed" ; inputs : readonly [ { name : "i" ; type : "uint256" ; internalType : "uint256" ; } , { name : "returndata" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { type : "error" ; name : "OnlyLoanCallableError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "OrderCancelled" ; inputs : readonly [ ] ; } , { type : "error" ; name : "OrderExpired" ; inputs : readonly [ ] ; } , { type : "error" ; name : "TooEarlyError" ; inputs : readonly [ { name : "_pendingProtocolFeeSetTime" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "TooMuchSlippageError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "TooSoonError" ; inputs : readonly [ ] ; } ]
address
address : ` 0x ${ string } `
contract
contract : GetContractReturnType < readonly [ { type : "constructor" ; inputs : readonly [ { name : "name" ; type : "string" ; internalType : "string" ; } , { name : "multiSourceLoanAddress" ; type : "address" ; internalType : "address" ; } , { name : "marketplaceContracts" ; type : "address" ; internalType : "address" ; } , { name : "wethAddress" ; type : "address" ; internalType : "address payable" ; } , { name : "punkMarketAddress" ; type : "address" ; internalType : "address payable" ; } , { name : "wrappedPunkAddress" ; type : "address" ; internalType : "address payable" ; } , { name : "c721Address" ; type : "address" ; internalType : "address payable" ; } , { name : "uniswapRouterAddress" ; type : "address" ; internalType : "address payable" ; } , { name : "aaveAddressProvider" ; type : "address" ; internalType : "address payable" ; } , { name : "permit2Address" ; type : "address" ; internalType : "address payable" ; } , { name : "currencyManager" ; type : "address" ; internalType : "address" ; } , { name : "punkTaxes" ; type : "tuple" ; internalType : "struct IPurchaseBundler.Taxes" ; components : readonly [ { name : "buyTax" ; type : "uint128" ; internalType : "uint128" ; } , { name : "sellTax" ; type : "uint128" ; internalType : "uint128" ; } ] ; } , { name : "minWaitTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "protocolFee" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "fallback" ; stateMutability : "payable" ; } , { type : "receive" ; stateMutability : "payable" ; } , { type : "function" ; name : "DOMAIN_SEPARATOR" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "ETH" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "FEE_UPDATE_NOTICE" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "INITIAL_DOMAIN_SEPARATOR" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "MAX_SLIPPAGE_DENOMINATOR" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "MIN_WAIT_TIME" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "VERSION" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes" ; internalType : "bytes" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "afterNFTTransfer" ; inputs : readonly [ { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_executionData" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "bytes4" ; internalType : "bytes4" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "afterPrincipalTransfer" ; inputs : readonly [ { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_executionData" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "bytes4" ; internalType : "bytes4" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "approveForSwap" ; inputs : readonly [ { name : "currency" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "buy" ; inputs : readonly [ { name : "executionData" ; type : "bytes[]" ; internalType : "bytes[]" ; } ] ; outputs : readonly [ { name : "loanIds" ; type : "uint256[]" ; internalType : "uint256[]" ; } ] ; stateMutability : "payable" ; } , { type : "function" ; name : "cancelAllOrders" ; inputs : readonly [ { name : "nonce" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "cancelOrder" ; inputs : readonly [ { name : "nonce" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "cancelled" ; inputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } , { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ { name : "" ; type : "bool" ; internalType : "bool" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "executeOperation" ; inputs : readonly [ { name : "assets" ; type : "address[]" ; internalType : "address[]" ; } , { name : "amounts" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "premiums" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "initiator" ; type : "address" ; internalType : "address" ; } , { name : "params" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "bool" ; internalType : "bool" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "executeOrder" ; inputs : readonly [ { name : "order" ; type : "tuple" ; internalType : "struct ITradeMarketplace.Order" ; components : readonly [ { name : "maker" ; type : "address" ; internalType : "address" ; } , { name : "taker" ; type : "address" ; internalType : "address" ; } , { name : "collection" ; type : "address" ; internalType : "address" ; } , { name : "tokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "currency" ; type : "address" ; internalType : "address" ; } , { name : "price" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nonce" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expiration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "isAsk" ; type : "bool" ; internalType : "bool" ; } , { name : "signature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "executeSell" ; inputs : readonly [ { name : "currencies" ; type : "address[]" ; internalType : "address[]" ; } , { name : "currencyAmounts" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "collections" ; type : "address[]" ; internalType : "contract ERC721[]" ; } , { name : "tokenIds" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "marketPlace" ; type : "address" ; internalType : "address" ; } , { name : "executionData" ; type : "bytes[]" ; internalType : "bytes[]" ; } , { name : "swapData" ; type : "bytes[]" ; internalType : "bytes[]" ; } ] ; outputs : readonly [ ] ; stateMutability : "payable" ; } , { type : "function" ; name : "executeSellWithLoan" ; inputs : readonly [ { name : "args" ; type : "tuple" ; internalType : "struct IPurchaseBundler.ExecuteSellWithLoanArgs" ; components : readonly [ { name : "borrowArgs" ; type : "tuple" ; internalType : "struct IPurchaseBundler.AaveBorrowArgs" ; components : readonly [ { name : "pool" ; type : "address" ; internalType : "contract IPool" ; } , { name : "assets" ; type : "address[]" ; internalType : "address[]" ; } , { name : "amounts" ; type : "uint256[]" ; internalType : "uint256[]" ; } ] ; } , { name : "executeSellArgs" ; type : "tuple" ; internalType : "struct IPurchaseBundler.ExecuteSellArgs" ; components : readonly [ { name : "currencies" ; type : "address[]" ; internalType : "address[]" ; } , { name : "currencyAmounts" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "collections" ; type : "address[]" ; internalType : "contract ERC721[]" ; } , { name : "tokenIds" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "marketPlace" ; type : "address" ; internalType : "address" ; } , { name : "executionData" ; type : "bytes[]" ; internalType : "bytes[]" ; } , { name : "swapData" ; type : "bytes[]" ; internalType : "bytes[]" ; } ] ; } , { name : "loanExecutionData" ; type : "bytes[]" ; internalType : "bytes[]" ; } , { name : "swapCurrencies" ; type : "address[]" ; internalType : "contract ERC20[]" ; } , { name : "swapAmounts" ; type : "uint160[]" ; internalType : "uint160[]" ; } , { name : "swapData" ; type : "bytes[]" ; internalType : "bytes[]" ; } , { name : "unwrap" ; type : "bool" ; internalType : "bool" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "payable" ; } , { type : "function" ; name : "getMultiSourceLoanAddress" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getPendingProtocolFee" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getPendingProtocolFeeSetTime" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getPendingTaxes" ; inputs : readonly [ { name : "module" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ { name : "" ; type : "tuple" ; internalType : "struct IPurchaseBundler.Taxes" ; components : readonly [ { name : "buyTax" ; type : "uint128" ; internalType : "uint128" ; } , { name : "sellTax" ; type : "uint128" ; internalType : "uint128" ; } ] ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getPendingTaxesSetTime" ; inputs : readonly [ { name : "module" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getProtocolFee" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getTaxes" ; inputs : readonly [ { name : "module" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ { name : "" ; type : "tuple" ; internalType : "struct IPurchaseBundler.Taxes" ; components : readonly [ { name : "buyTax" ; type : "uint128" ; internalType : "uint128" ; } , { name : "sellTax" ; type : "uint128" ; internalType : "uint128" ; } ] ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "isOrderCancelled" ; inputs : readonly [ { name : "order" ; type : "tuple" ; internalType : "struct ITradeMarketplace.Order" ; components : readonly [ { name : "maker" ; type : "address" ; internalType : "address" ; } , { name : "taker" ; type : "address" ; internalType : "address" ; } , { name : "collection" ; type : "address" ; internalType : "address" ; } , { name : "tokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "currency" ; type : "address" ; internalType : "address" ; } , { name : "price" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nonce" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expiration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "isAsk" ; type : "bool" ; internalType : "bool" ; } , { name : "signature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; outputs : readonly [ { name : "" ; type : "bool" ; internalType : "bool" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "minNonce" ; inputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "multicall" ; inputs : readonly [ { name : "data" ; type : "bytes[]" ; internalType : "bytes[]" ; } ] ; outputs : readonly [ { name : "results" ; type : "bytes[]" ; internalType : "bytes[]" ; } ] ; stateMutability : "payable" ; } , { type : "function" ; name : "name" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "string" ; internalType : "string" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "onERC721Received" ; inputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } , { name : "" ; type : "address" ; internalType : "address" ; } , { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "bytes4" ; internalType : "bytes4" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "orderHash" ; inputs : readonly [ { name : "order" ; type : "tuple" ; internalType : "struct ITradeMarketplace.Order" ; components : readonly [ { name : "maker" ; type : "address" ; internalType : "address" ; } , { name : "taker" ; type : "address" ; internalType : "address" ; } , { name : "collection" ; type : "address" ; internalType : "address" ; } , { name : "tokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "currency" ; type : "address" ; internalType : "address" ; } , { name : "price" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nonce" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expiration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "isAsk" ; type : "bool" ; internalType : "bool" ; } , { name : "signature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "pure" ; } , { type : "function" ; name : "owner" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "pendingOwner" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "pendingOwnerTime" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "requestTransferOwner" ; inputs : readonly [ { name : "_newOwner" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "sell" ; inputs : readonly [ { name : "executionData" ; type : "bytes[]" ; internalType : "bytes[]" ; } , { name : "swapData" ; type : "bytes[]" ; internalType : "bytes[]" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "setProtocolFee" ; inputs : readonly [ ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "setTaxes" ; inputs : readonly [ { name : "module" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "swapAndExecute" ; inputs : readonly [ { name : "args" ; type : "tuple" ; internalType : "struct IPurchaseBundler.SwapAndExecuteParams" ; components : readonly [ { name : "inputCurrencies" ; type : "address[]" ; internalType : "address[]" ; } , { name : "outputCurrencies" ; type : "address[]" ; internalType : "address[]" ; } , { name : "amountsToSwap" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "swapData" ; type : "bytes" ; internalType : "bytes" ; } , { name : "target" ; type : "address" ; internalType : "address" ; } , { name : "executionCalldata" ; type : "bytes" ; internalType : "bytes" ; } , { name : "executionValue" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "payable" ; } , { type : "function" ; name : "transferOwnership" ; inputs : readonly [ ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "transferOwnership" ; inputs : readonly [ { name : "newOwner" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "updateProtocolFee" ; inputs : readonly [ { name : "_newProtocolFee" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "updateTaxes" ; inputs : readonly [ { name : "module" ; type : "address" ; internalType : "address" ; } , { name : "newTax" ; type : "tuple" ; internalType : "struct IPurchaseBundler.Taxes" ; components : readonly [ { name : "buyTax" ; type : "uint128" ; internalType : "uint128" ; } , { name : "sellTax" ; type : "uint128" ; internalType : "uint128" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "event" ; name : "AllOrdersCancelled" ; inputs : readonly [ { name : "user" ; type : "address" ; indexed : true ; internalType : "address" ; } , { name : "nonce" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "BNPLLoansStarted" ; inputs : readonly [ { name : "loanIds" ; type : "uint256[]" ; indexed : false ; internalType : "uint256[]" ; } ] ; anonymous : false ; } , { type : "event" ; name : "OrderExecuted" ; inputs : readonly [ { name : "maker" ; type : "address" ; indexed : true ; internalType : "address" ; } , { name : "taker" ; type : "address" ; indexed : true ; internalType : "address" ; } , { name : "collection" ; type : "address" ; indexed : true ; internalType : "address" ; } , { name : "tokenId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "currency" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "price" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "nonce" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "expiration" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "isAsk" ; type : "bool" ; indexed : false ; internalType : "bool" ; } ] ; anonymous : false ; } , { type : "event" ; name : "OwnershipTransferred" ; inputs : readonly [ { name : "user" ; type : "address" ; indexed : true ; internalType : "address" ; } , { name : "newOwner" ; type : "address" ; indexed : true ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "ProtocolFeePendingUpdate" ; inputs : readonly [ { name : "fee" ; type : "tuple" ; indexed : false ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; anonymous : false ; } , { type : "event" ; name : "ProtocolFeeUpdated" ; inputs : readonly [ { name : "fee" ; type : "tuple" ; indexed : false ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; anonymous : false ; } , { type : "event" ; name : "SellAndRepayExecuted" ; inputs : readonly [ { name : "loanIds" ; type : "uint256[]" ; indexed : false ; internalType : "uint256[]" ; } ] ; anonymous : false ; } , { type : "event" ; name : "TaxesPendingUpdate" ; inputs : readonly [ { name : "module" ; type : "address" ; indexed : true ; internalType : "address" ; } , { name : "newTax" ; type : "tuple" ; indexed : false ; internalType : "struct IPurchaseBundler.Taxes" ; components : readonly [ { name : "buyTax" ; type : "uint128" ; internalType : "uint128" ; } , { name : "sellTax" ; type : "uint128" ; internalType : "uint128" ; } ] ; } ] ; anonymous : false ; } , { type : "event" ; name : "TaxesUpdated" ; inputs : readonly [ { name : "module" ; type : "address" ; indexed : true ; internalType : "address" ; } , { name : "newTax" ; type : "tuple" ; indexed : false ; internalType : "struct IPurchaseBundler.Taxes" ; components : readonly [ { name : "buyTax" ; type : "uint128" ; internalType : "uint128" ; } , { name : "sellTax" ; type : "uint128" ; internalType : "uint128" ; } ] ; } ] ; anonymous : false ; } , { type : "event" ; name : "TransferOwnerRequested" ; inputs : readonly [ { name : "newOwner" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "error" ; name : "AddressZeroError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "CouldNotReturnEthError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "CurrencyNotWhitelisted" ; inputs : readonly [ ] ; } , { type : "error" ; name : "ECDSAInvalidSignature" ; inputs : readonly [ ] ; } , { type : "error" ; name : "ECDSAInvalidSignatureLength" ; inputs : readonly [ { name : "length" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "ECDSAInvalidSignatureS" ; inputs : readonly [ { name : "s" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; } , { type : "error" ; name : "InvalidCallbackError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidCollateralError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidCurrencyError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidExecutionData" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidInputError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidSignature" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidStateError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidSwapDataLengthError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidSwapError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidTaker" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidTargetContractError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidTaxesError" ; inputs : readonly [ { name : "newTaxes" ; type : "tuple" ; internalType : "struct IPurchaseBundler.Taxes" ; components : readonly [ { name : "buyTax" ; type : "uint128" ; internalType : "uint128" ; } , { name : "sellTax" ; type : "uint128" ; internalType : "uint128" ; } ] ; } ] ; } , { type : "error" ; name : "LowNonceError" ; inputs : readonly [ { name : "user" ; type : "address" ; internalType : "address" ; } , { name : "nonce" ; type : "uint256" ; internalType : "uint256" ; } , { name : "currentMinNonce" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "MarketplaceAddressNotWhitelisted" ; inputs : readonly [ ] ; } , { type : "error" ; name : "MulticallFailed" ; inputs : readonly [ { name : "i" ; type : "uint256" ; internalType : "uint256" ; } , { name : "returndata" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { type : "error" ; name : "OnlyLoanCallableError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "OrderCancelled" ; inputs : readonly [ ] ; } , { type : "error" ; name : "OrderExpired" ; inputs : readonly [ ] ; } , { type : "error" ; name : "TooEarlyError" ; inputs : readonly [ { name : "_pendingProtocolFeeSetTime" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "TooMuchSlippageError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "TooSoonError" ; inputs : readonly [ ] ; } ] , {} | {} >
safe Contract Write
safe Contract Write : { transferOwnership : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > ) ; onERC721Received : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > ) ; setProtocolFee : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > ) ; updateProtocolFee : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > ) ; multicall : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > ) ; buy : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > ) ; sell : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > ) ; afterNFTTransfer : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > ) ; afterPrincipalTransfer : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > ) ; requestTransferOwner : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > ) ; executeSell : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > ) ; setTaxes : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > ) ; updateTaxes : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > ) ; approveForSwap : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > ) ; cancelAllOrders : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > ) ; cancelOrder : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > ) ; executeOperation : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > ) ; executeOrder : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > ) ; executeSellWithLoan : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > ) ; swapAndExecute : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > ) ; }
Type declaration
transfer Ownership : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > )
( args , options ? ) : Promise < ` 0x ${ string } ` >
Parameters
args : undefined | readonly [ ] | readonly [ ` 0x ${ string } ` ]
Returns Promise < ` 0x ${ string } ` >
onERC721 Received : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > )
( args , options ? ) : Promise < ` 0x ${ string } ` >
Parameters
args : readonly [ ` 0x ${ string } ` , ` 0x ${ string } ` , bigint , ` 0x ${ string } ` ]
Returns Promise < ` 0x ${ string } ` >
set Protocol Fee : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > )
( args , options ? ) : Promise < ` 0x ${ string } ` >
Parameters
args : undefined | readonly [ ]
Returns Promise < ` 0x ${ string } ` >
update Protocol Fee : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > )
( args , options ? ) : Promise < ` 0x ${ string } ` >
Parameters
args : readonly [ { recipient : ` 0x ${ string } ` ; fraction : bigint ; } ]
Returns Promise < ` 0x ${ string } ` >
multicall : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > )
( args , options ? ) : Promise < ` 0x ${ string } ` >
Parameters
args : readonly [ readonly ` 0x ${ string } ` [] ]
Returns Promise < ` 0x ${ string } ` >
buy : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > )
( args , options ? ) : Promise < ` 0x ${ string } ` >
Parameters
args : readonly [ readonly ` 0x ${ string } ` [] ]
Returns Promise < ` 0x ${ string } ` >
sell : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > )
( args , options ? ) : Promise < ` 0x ${ string } ` >
Parameters
args : readonly [ readonly ` 0x ${ string } ` [] , readonly ` 0x ${ string } ` [] ]
Returns Promise < ` 0x ${ string } ` >
afterNFTTransfer : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > )
( args , options ? ) : Promise < ` 0x ${ string } ` >
Parameters
args : readonly [ { borrower : ` 0x ${ string } ` ; nftCollateralTokenId : bigint ; nftCollateralAddress : ` 0x ${ string } ` ; principalAddress : ` 0x ${ string } ` ; principalAmount : bigint ; startTime : bigint ; duration : bigint ; tranche : readonly ( { loanId: bigint; floor: bigint; principalAmount: bigint; lender: `0x${string}`; accruedInterest: bigint; startTime: bigint; aprBps: bigint; }) [] ; protocolFee : bigint ; } , ` 0x ${ string } ` ]
Returns Promise < ` 0x ${ string } ` >
after Principal Transfer : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > )
( args , options ? ) : Promise < ` 0x ${ string } ` >
Parameters
args : readonly [ { borrower : ` 0x ${ string } ` ; nftCollateralTokenId : bigint ; nftCollateralAddress : ` 0x ${ string } ` ; principalAddress : ` 0x ${ string } ` ; principalAmount : bigint ; startTime : bigint ; duration : bigint ; tranche : readonly ( { loanId: bigint; floor: bigint; principalAmount: bigint; lender: `0x${string}`; accruedInterest: bigint; startTime: bigint; aprBps: bigint; }) [] ; protocolFee : bigint ; } , bigint , ` 0x ${ string } ` ]
Returns Promise < ` 0x ${ string } ` >
request Transfer Owner : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > )
( args , options ? ) : Promise < ` 0x ${ string } ` >
Parameters
args : readonly [ ` 0x ${ string } ` ]
Returns Promise < ` 0x ${ string } ` >
execute Sell : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > )
( args , options ? ) : Promise < ` 0x ${ string } ` >
Parameters
args : readonly [ readonly ` 0x ${ string } ` [] , readonly bigint [] , readonly ` 0x ${ string } ` [] , readonly bigint [] , ` 0x ${ string } ` , readonly ` 0x ${ string } ` [] , readonly ` 0x ${ string } ` [] ]
Returns Promise < ` 0x ${ string } ` >
set Taxes : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > )
( args , options ? ) : Promise < ` 0x ${ string } ` >
Parameters
args : readonly [ ` 0x ${ string } ` ]
Returns Promise < ` 0x ${ string } ` >
update Taxes : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > )
( args , options ? ) : Promise < ` 0x ${ string } ` >
Parameters
args : readonly [ ` 0x ${ string } ` , { buyTax : bigint ; sellTax : bigint ; } ]
Returns Promise < ` 0x ${ string } ` >
approve For Swap : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > )
( args , options ? ) : Promise < ` 0x ${ string } ` >
Parameters
args : readonly [ ` 0x ${ string } ` ]
Returns Promise < ` 0x ${ string } ` >
cancel All Orders : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > )
( args , options ? ) : Promise < ` 0x ${ string } ` >
Returns Promise < ` 0x ${ string } ` >
cancel Order : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > )
( args , options ? ) : Promise < ` 0x ${ string } ` >
Returns Promise < ` 0x ${ string } ` >
execute Operation : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > )
( args , options ? ) : Promise < ` 0x ${ string } ` >
Parameters
args : readonly [ readonly ` 0x ${ string } ` [] , readonly bigint [] , readonly bigint [] , ` 0x ${ string } ` , ` 0x ${ string } ` ]
Returns Promise < ` 0x ${ string } ` >
execute Order : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > )
( args , options ? ) : Promise < ` 0x ${ string } ` >
Parameters
args : readonly [ { maker : ` 0x ${ string } ` ; taker : ` 0x ${ string } ` ; collection : ` 0x ${ string } ` ; tokenId : bigint ; currency : ` 0x ${ string } ` ; price : bigint ; nonce : bigint ; expiration : bigint ; isAsk : boolean ; signature : ` 0x ${ string } ` ; } ]
Returns Promise < ` 0x ${ string } ` >
execute Sell With Loan : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > )
( args , options ? ) : Promise < ` 0x ${ string } ` >
Parameters
args : readonly [ { borrowArgs : { pool: `0x${string}`; assets: readonly `0x${string}`[]; amounts: readonly bigint[]; }; executeSellArgs : { currencies: readonly `0x${string}`[]; currencyAmounts: readonly bigint[]; collections: readonly `0x${string}`[]; tokenIds: readonly bigint[]; marketPlace: `0x${string}`; executionData: readonly `0x${string}`[]; swapData: readonly `0x${string}`[]; }; loanExecutionData : readonly ` 0x ${ string } ` [] ; swapCurrencies : readonly ` 0x ${ string } ` [] ; swapAmounts : readonly bigint [] ; swapData : readonly ` 0x ${ string } ` [] ; unwrap : boolean ; } ]
Returns Promise < ` 0x ${ string } ` >
swap And Execute : ( ( args , options ? ) => Promise < ` 0x ${ string } ` > )
( args , options ? ) : Promise < ` 0x ${ string } ` >
Parameters
args : readonly [ { inputCurrencies : readonly ` 0x ${ string } ` [] ; outputCurrencies : readonly ` 0x ${ string } ` [] ; amountsToSwap : readonly bigint [] ; swapData : ` 0x ${ string } ` ; target : ` 0x ${ string } ` ; executionCalldata : ` 0x ${ string } ` ; executionValue : bigint ; } ]
Returns Promise < ` 0x ${ string } ` >
parse Event Logs
parse Event Logs : ( < TFunctionName > ( eventName , logs ) => ParseEventLogsReturnType < readonly [ { type : "constructor" ; inputs : readonly [ { name : "name" ; type : "string" ; internalType : "string" ; } , { name : "multiSourceLoanAddress" ; type : "address" ; internalType : "address" ; } , { name : "marketplaceContracts" ; type : "address" ; internalType : "address" ; } , { name : "wethAddress" ; type : "address" ; internalType : "address payable" ; } , { name : "punkMarketAddress" ; type : "address" ; internalType : "address payable" ; } , { name : "wrappedPunkAddress" ; type : "address" ; internalType : "address payable" ; } , { name : "c721Address" ; type : "address" ; internalType : "address payable" ; } , { name : "uniswapRouterAddress" ; type : "address" ; internalType : "address payable" ; } , { name : "aaveAddressProvider" ; type : "address" ; internalType : "address payable" ; } , { name : "permit2Address" ; type : "address" ; internalType : "address payable" ; } , { name : "currencyManager" ; type : "address" ; internalType : "address" ; } , { name : "punkTaxes" ; type : "tuple" ; internalType : "struct IPurchaseBundler.Taxes" ; components : readonly [ { name : "buyTax" ; type : "uint128" ; internalType : "uint128" ; } , { name : "sellTax" ; type : "uint128" ; internalType : "uint128" ; } ] ; } , { name : "minWaitTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "protocolFee" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "fallback" ; stateMutability : "payable" ; } , { type : "receive" ; stateMutability : "payable" ; } , { type : "function" ; name : "DOMAIN_SEPARATOR" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "ETH" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "FEE_UPDATE_NOTICE" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "INITIAL_DOMAIN_SEPARATOR" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "MAX_SLIPPAGE_DENOMINATOR" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "MIN_WAIT_TIME" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "VERSION" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes" ; internalType : "bytes" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "afterNFTTransfer" ; inputs : readonly [ { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_executionData" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "bytes4" ; internalType : "bytes4" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "afterPrincipalTransfer" ; inputs : readonly [ { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_executionData" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "bytes4" ; internalType : "bytes4" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "approveForSwap" ; inputs : readonly [ { name : "currency" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "buy" ; inputs : readonly [ { name : "executionData" ; type : "bytes[]" ; internalType : "bytes[]" ; } ] ; outputs : readonly [ { name : "loanIds" ; type : "uint256[]" ; internalType : "uint256[]" ; } ] ; stateMutability : "payable" ; } , { type : "function" ; name : "cancelAllOrders" ; inputs : readonly [ { name : "nonce" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "cancelOrder" ; inputs : readonly [ { name : "nonce" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "cancelled" ; inputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } , { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ { name : "" ; type : "bool" ; internalType : "bool" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "executeOperation" ; inputs : readonly [ { name : "assets" ; type : "address[]" ; internalType : "address[]" ; } , { name : "amounts" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "premiums" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "initiator" ; type : "address" ; internalType : "address" ; } , { name : "params" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "bool" ; internalType : "bool" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "executeOrder" ; inputs : readonly [ { name : "order" ; type : "tuple" ; internalType : "struct ITradeMarketplace.Order" ; components : readonly [ { name : "maker" ; type : "address" ; internalType : "address" ; } , { name : "taker" ; type : "address" ; internalType : "address" ; } , { name : "collection" ; type : "address" ; internalType : "address" ; } , { name : "tokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "currency" ; type : "address" ; internalType : "address" ; } , { name : "price" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nonce" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expiration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "isAsk" ; type : "bool" ; internalType : "bool" ; } , { name : "signature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "executeSell" ; inputs : readonly [ { name : "currencies" ; type : "address[]" ; internalType : "address[]" ; } , { name : "currencyAmounts" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "collections" ; type : "address[]" ; internalType : "contract ERC721[]" ; } , { name : "tokenIds" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "marketPlace" ; type : "address" ; internalType : "address" ; } , { name : "executionData" ; type : "bytes[]" ; internalType : "bytes[]" ; } , { name : "swapData" ; type : "bytes[]" ; internalType : "bytes[]" ; } ] ; outputs : readonly [ ] ; stateMutability : "payable" ; } , { type : "function" ; name : "executeSellWithLoan" ; inputs : readonly [ { name : "args" ; type : "tuple" ; internalType : "struct IPurchaseBundler.ExecuteSellWithLoanArgs" ; components : readonly [ { name : "borrowArgs" ; type : "tuple" ; internalType : "struct IPurchaseBundler.AaveBorrowArgs" ; components : readonly [ { name : "pool" ; type : "address" ; internalType : "contract IPool" ; } , { name : "assets" ; type : "address[]" ; internalType : "address[]" ; } , { name : "amounts" ; type : "uint256[]" ; internalType : "uint256[]" ; } ] ; } , { name : "executeSellArgs" ; type : "tuple" ; internalType : "struct IPurchaseBundler.ExecuteSellArgs" ; components : readonly [ { name : "currencies" ; type : "address[]" ; internalType : "address[]" ; } , { name : "currencyAmounts" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "collections" ; type : "address[]" ; internalType : "contract ERC721[]" ; } , { name : "tokenIds" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "marketPlace" ; type : "address" ; internalType : "address" ; } , { name : "executionData" ; type : "bytes[]" ; internalType : "bytes[]" ; } , { name : "swapData" ; type : "bytes[]" ; internalType : "bytes[]" ; } ] ; } , { name : "loanExecutionData" ; type : "bytes[]" ; internalType : "bytes[]" ; } , { name : "swapCurrencies" ; type : "address[]" ; internalType : "contract ERC20[]" ; } , { name : "swapAmounts" ; type : "uint160[]" ; internalType : "uint160[]" ; } , { name : "swapData" ; type : "bytes[]" ; internalType : "bytes[]" ; } , { name : "unwrap" ; type : "bool" ; internalType : "bool" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "payable" ; } , { type : "function" ; name : "getMultiSourceLoanAddress" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getPendingProtocolFee" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getPendingProtocolFeeSetTime" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getPendingTaxes" ; inputs : readonly [ { name : "module" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ { name : "" ; type : "tuple" ; internalType : "struct IPurchaseBundler.Taxes" ; components : readonly [ { name : "buyTax" ; type : "uint128" ; internalType : "uint128" ; } , { name : "sellTax" ; type : "uint128" ; internalType : "uint128" ; } ] ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getPendingTaxesSetTime" ; inputs : readonly [ { name : "module" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getProtocolFee" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getTaxes" ; inputs : readonly [ { name : "module" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ { name : "" ; type : "tuple" ; internalType : "struct IPurchaseBundler.Taxes" ; components : readonly [ { name : "buyTax" ; type : "uint128" ; internalType : "uint128" ; } , { name : "sellTax" ; type : "uint128" ; internalType : "uint128" ; } ] ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "isOrderCancelled" ; inputs : readonly [ { name : "order" ; type : "tuple" ; internalType : "struct ITradeMarketplace.Order" ; components : readonly [ { name : "maker" ; type : "address" ; internalType : "address" ; } , { name : "taker" ; type : "address" ; internalType : "address" ; } , { name : "collection" ; type : "address" ; internalType : "address" ; } , { name : "tokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "currency" ; type : "address" ; internalType : "address" ; } , { name : "price" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nonce" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expiration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "isAsk" ; type : "bool" ; internalType : "bool" ; } , { name : "signature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; outputs : readonly [ { name : "" ; type : "bool" ; internalType : "bool" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "minNonce" ; inputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "multicall" ; inputs : readonly [ { name : "data" ; type : "bytes[]" ; internalType : "bytes[]" ; } ] ; outputs : readonly [ { name : "results" ; type : "bytes[]" ; internalType : "bytes[]" ; } ] ; stateMutability : "payable" ; } , { type : "function" ; name : "name" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "string" ; internalType : "string" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "onERC721Received" ; inputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } , { name : "" ; type : "address" ; internalType : "address" ; } , { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "bytes4" ; internalType : "bytes4" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "orderHash" ; inputs : readonly [ { name : "order" ; type : "tuple" ; internalType : "struct ITradeMarketplace.Order" ; components : readonly [ { name : "maker" ; type : "address" ; internalType : "address" ; } , { name : "taker" ; type : "address" ; internalType : "address" ; } , { name : "collection" ; type : "address" ; internalType : "address" ; } , { name : "tokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "currency" ; type : "address" ; internalType : "address" ; } , { name : "price" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nonce" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expiration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "isAsk" ; type : "bool" ; internalType : "bool" ; } , { name : "signature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "pure" ; } , { type : "function" ; name : "owner" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "pendingOwner" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "pendingOwnerTime" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "requestTransferOwner" ; inputs : readonly [ { name : "_newOwner" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "sell" ; inputs : readonly [ { name : "executionData" ; type : "bytes[]" ; internalType : "bytes[]" ; } , { name : "swapData" ; type : "bytes[]" ; internalType : "bytes[]" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "setProtocolFee" ; inputs : readonly [ ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "setTaxes" ; inputs : readonly [ { name : "module" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "swapAndExecute" ; inputs : readonly [ { name : "args" ; type : "tuple" ; internalType : "struct IPurchaseBundler.SwapAndExecuteParams" ; components : readonly [ { name : "inputCurrencies" ; type : "address[]" ; internalType : "address[]" ; } , { name : "outputCurrencies" ; type : "address[]" ; internalType : "address[]" ; } , { name : "amountsToSwap" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "swapData" ; type : "bytes" ; internalType : "bytes" ; } , { name : "target" ; type : "address" ; internalType : "address" ; } , { name : "executionCalldata" ; type : "bytes" ; internalType : "bytes" ; } , { name : "executionValue" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "payable" ; } , { type : "function" ; name : "transferOwnership" ; inputs : readonly [ ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "transferOwnership" ; inputs : readonly [ { name : "newOwner" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "updateProtocolFee" ; inputs : readonly [ { name : "_newProtocolFee" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "updateTaxes" ; inputs : readonly [ { name : "module" ; type : "address" ; internalType : "address" ; } , { name : "newTax" ; type : "tuple" ; internalType : "struct IPurchaseBundler.Taxes" ; components : readonly [ { name : "buyTax" ; type : "uint128" ; internalType : "uint128" ; } , { name : "sellTax" ; type : "uint128" ; internalType : "uint128" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "event" ; name : "AllOrdersCancelled" ; inputs : readonly [ { name : "user" ; type : "address" ; indexed : true ; internalType : "address" ; } , { name : "nonce" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "BNPLLoansStarted" ; inputs : readonly [ { name : "loanIds" ; type : "uint256[]" ; indexed : false ; internalType : "uint256[]" ; } ] ; anonymous : false ; } , { type : "event" ; name : "OrderExecuted" ; inputs : readonly [ { name : "maker" ; type : "address" ; indexed : true ; internalType : "address" ; } , { name : "taker" ; type : "address" ; indexed : true ; internalType : "address" ; } , { name : "collection" ; type : "address" ; indexed : true ; internalType : "address" ; } , { name : "tokenId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "currency" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "price" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "nonce" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "expiration" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "isAsk" ; type : "bool" ; indexed : false ; internalType : "bool" ; } ] ; anonymous : false ; } , { type : "event" ; name : "OwnershipTransferred" ; inputs : readonly [ { name : "user" ; type : "address" ; indexed : true ; internalType : "address" ; } , { name : "newOwner" ; type : "address" ; indexed : true ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "ProtocolFeePendingUpdate" ; inputs : readonly [ { name : "fee" ; type : "tuple" ; indexed : false ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; anonymous : false ; } , { type : "event" ; name : "ProtocolFeeUpdated" ; inputs : readonly [ { name : "fee" ; type : "tuple" ; indexed : false ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; anonymous : false ; } , { type : "event" ; name : "SellAndRepayExecuted" ; inputs : readonly [ { name : "loanIds" ; type : "uint256[]" ; indexed : false ; internalType : "uint256[]" ; } ] ; anonymous : false ; } , { type : "event" ; name : "TaxesPendingUpdate" ; inputs : readonly [ { name : "module" ; type : "address" ; indexed : true ; internalType : "address" ; } , { name : "newTax" ; type : "tuple" ; indexed : false ; internalType : "struct IPurchaseBundler.Taxes" ; components : readonly [ { name : "buyTax" ; type : "uint128" ; internalType : "uint128" ; } , { name : "sellTax" ; type : "uint128" ; internalType : "uint128" ; } ] ; } ] ; anonymous : false ; } , { type : "event" ; name : "TaxesUpdated" ; inputs : readonly [ { name : "module" ; type : "address" ; indexed : true ; internalType : "address" ; } , { name : "newTax" ; type : "tuple" ; indexed : false ; internalType : "struct IPurchaseBundler.Taxes" ; components : readonly [ { name : "buyTax" ; type : "uint128" ; internalType : "uint128" ; } , { name : "sellTax" ; type : "uint128" ; internalType : "uint128" ; } ] ; } ] ; anonymous : false ; } , { type : "event" ; name : "TransferOwnerRequested" ; inputs : readonly [ { name : "newOwner" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "error" ; name : "AddressZeroError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "CouldNotReturnEthError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "CurrencyNotWhitelisted" ; inputs : readonly [ ] ; } , { type : "error" ; name : "ECDSAInvalidSignature" ; inputs : readonly [ ] ; } , { type : "error" ; name : "ECDSAInvalidSignatureLength" ; inputs : readonly [ { name : "length" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "ECDSAInvalidSignatureS" ; inputs : readonly [ { name : "s" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; } , { type : "error" ; name : "InvalidCallbackError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidCollateralError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidCurrencyError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidExecutionData" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidInputError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidSignature" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidStateError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidSwapDataLengthError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidSwapError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidTaker" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidTargetContractError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidTaxesError" ; inputs : readonly [ { name : "newTaxes" ; type : "tuple" ; internalType : "struct IPurchaseBundler.Taxes" ; components : readonly [ { name : "buyTax" ; type : "uint128" ; internalType : "uint128" ; } , { name : "sellTax" ; type : "uint128" ; internalType : "uint128" ; } ] ; } ] ; } , { type : "error" ; name : "LowNonceError" ; inputs : readonly [ { name : "user" ; type : "address" ; internalType : "address" ; } , { name : "nonce" ; type : "uint256" ; internalType : "uint256" ; } , { name : "currentMinNonce" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "MarketplaceAddressNotWhitelisted" ; inputs : readonly [ ] ; } , { type : "error" ; name : "MulticallFailed" ; inputs : readonly [ { name : "i" ; type : "uint256" ; internalType : "uint256" ; } , { name : "returndata" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { type : "error" ; name : "OnlyLoanCallableError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "OrderCancelled" ; inputs : readonly [ ] ; } , { type : "error" ; name : "OrderExpired" ; inputs : readonly [ ] ; } , { type : "error" ; name : "TooEarlyError" ; inputs : readonly [ { name : "_pendingProtocolFeeSetTime" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "TooMuchSlippageError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "TooSoonError" ; inputs : readonly [ ] ; } ] , TFunctionName , true , TFunctionName extends ( "OwnershipTransferred" | "ProtocolFeePendingUpdate" | "ProtocolFeeUpdated" | "BNPLLoansStarted" | "SellAndRepayExecuted" | "TransferOwnerRequested" | "AllOrdersCancelled" | "OrderExecuted" | "TaxesPendingUpdate" | "TaxesUpdated" ) [] ? TFunctionName [ number ] : TFunctionName > )
Type declaration
< TFunctionName > ( eventName , logs ) : ParseEventLogsReturnType < readonly [ { type : "constructor" ; inputs : readonly [ { name : "name" ; type : "string" ; internalType : "string" ; } , { name : "multiSourceLoanAddress" ; type : "address" ; internalType : "address" ; } , { name : "marketplaceContracts" ; type : "address" ; internalType : "address" ; } , { name : "wethAddress" ; type : "address" ; internalType : "address payable" ; } , { name : "punkMarketAddress" ; type : "address" ; internalType : "address payable" ; } , { name : "wrappedPunkAddress" ; type : "address" ; internalType : "address payable" ; } , { name : "c721Address" ; type : "address" ; internalType : "address payable" ; } , { name : "uniswapRouterAddress" ; type : "address" ; internalType : "address payable" ; } , { name : "aaveAddressProvider" ; type : "address" ; internalType : "address payable" ; } , { name : "permit2Address" ; type : "address" ; internalType : "address payable" ; } , { name : "currencyManager" ; type : "address" ; internalType : "address" ; } , { name : "punkTaxes" ; type : "tuple" ; internalType : "struct IPurchaseBundler.Taxes" ; components : readonly [ { name : "buyTax" ; type : "uint128" ; internalType : "uint128" ; } , { name : "sellTax" ; type : "uint128" ; internalType : "uint128" ; } ] ; } , { name : "minWaitTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "protocolFee" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "fallback" ; stateMutability : "payable" ; } , { type : "receive" ; stateMutability : "payable" ; } , { type : "function" ; name : "DOMAIN_SEPARATOR" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "ETH" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "FEE_UPDATE_NOTICE" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "INITIAL_DOMAIN_SEPARATOR" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "MAX_SLIPPAGE_DENOMINATOR" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "MIN_WAIT_TIME" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "VERSION" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes" ; internalType : "bytes" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "afterNFTTransfer" ; inputs : readonly [ { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_executionData" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "bytes4" ; internalType : "bytes4" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "afterPrincipalTransfer" ; inputs : readonly [ { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_executionData" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "bytes4" ; internalType : "bytes4" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "approveForSwap" ; inputs : readonly [ { name : "currency" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "buy" ; inputs : readonly [ { name : "executionData" ; type : "bytes[]" ; internalType : "bytes[]" ; } ] ; outputs : readonly [ { name : "loanIds" ; type : "uint256[]" ; internalType : "uint256[]" ; } ] ; stateMutability : "payable" ; } , { type : "function" ; name : "cancelAllOrders" ; inputs : readonly [ { name : "nonce" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "cancelOrder" ; inputs : readonly [ { name : "nonce" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "cancelled" ; inputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } , { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ { name : "" ; type : "bool" ; internalType : "bool" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "executeOperation" ; inputs : readonly [ { name : "assets" ; type : "address[]" ; internalType : "address[]" ; } , { name : "amounts" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "premiums" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "initiator" ; type : "address" ; internalType : "address" ; } , { name : "params" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "bool" ; internalType : "bool" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "executeOrder" ; inputs : readonly [ { name : "order" ; type : "tuple" ; internalType : "struct ITradeMarketplace.Order" ; components : readonly [ { name : "maker" ; type : "address" ; internalType : "address" ; } , { name : "taker" ; type : "address" ; internalType : "address" ; } , { name : "collection" ; type : "address" ; internalType : "address" ; } , { name : "tokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "currency" ; type : "address" ; internalType : "address" ; } , { name : "price" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nonce" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expiration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "isAsk" ; type : "bool" ; internalType : "bool" ; } , { name : "signature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "executeSell" ; inputs : readonly [ { name : "currencies" ; type : "address[]" ; internalType : "address[]" ; } , { name : "currencyAmounts" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "collections" ; type : "address[]" ; internalType : "contract ERC721[]" ; } , { name : "tokenIds" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "marketPlace" ; type : "address" ; internalType : "address" ; } , { name : "executionData" ; type : "bytes[]" ; internalType : "bytes[]" ; } , { name : "swapData" ; type : "bytes[]" ; internalType : "bytes[]" ; } ] ; outputs : readonly [ ] ; stateMutability : "payable" ; } , { type : "function" ; name : "executeSellWithLoan" ; inputs : readonly [ { name : "args" ; type : "tuple" ; internalType : "struct IPurchaseBundler.ExecuteSellWithLoanArgs" ; components : readonly [ { name : "borrowArgs" ; type : "tuple" ; internalType : "struct IPurchaseBundler.AaveBorrowArgs" ; components : readonly [ { name : "pool" ; type : "address" ; internalType : "contract IPool" ; } , { name : "assets" ; type : "address[]" ; internalType : "address[]" ; } , { name : "amounts" ; type : "uint256[]" ; internalType : "uint256[]" ; } ] ; } , { name : "executeSellArgs" ; type : "tuple" ; internalType : "struct IPurchaseBundler.ExecuteSellArgs" ; components : readonly [ { name : "currencies" ; type : "address[]" ; internalType : "address[]" ; } , { name : "currencyAmounts" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "collections" ; type : "address[]" ; internalType : "contract ERC721[]" ; } , { name : "tokenIds" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "marketPlace" ; type : "address" ; internalType : "address" ; } , { name : "executionData" ; type : "bytes[]" ; internalType : "bytes[]" ; } , { name : "swapData" ; type : "bytes[]" ; internalType : "bytes[]" ; } ] ; } , { name : "loanExecutionData" ; type : "bytes[]" ; internalType : "bytes[]" ; } , { name : "swapCurrencies" ; type : "address[]" ; internalType : "contract ERC20[]" ; } , { name : "swapAmounts" ; type : "uint160[]" ; internalType : "uint160[]" ; } , { name : "swapData" ; type : "bytes[]" ; internalType : "bytes[]" ; } , { name : "unwrap" ; type : "bool" ; internalType : "bool" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "payable" ; } , { type : "function" ; name : "getMultiSourceLoanAddress" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getPendingProtocolFee" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getPendingProtocolFeeSetTime" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getPendingTaxes" ; inputs : readonly [ { name : "module" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ { name : "" ; type : "tuple" ; internalType : "struct IPurchaseBundler.Taxes" ; components : readonly [ { name : "buyTax" ; type : "uint128" ; internalType : "uint128" ; } , { name : "sellTax" ; type : "uint128" ; internalType : "uint128" ; } ] ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getPendingTaxesSetTime" ; inputs : readonly [ { name : "module" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getProtocolFee" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getTaxes" ; inputs : readonly [ { name : "module" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ { name : "" ; type : "tuple" ; internalType : "struct IPurchaseBundler.Taxes" ; components : readonly [ { name : "buyTax" ; type : "uint128" ; internalType : "uint128" ; } , { name : "sellTax" ; type : "uint128" ; internalType : "uint128" ; } ] ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "isOrderCancelled" ; inputs : readonly [ { name : "order" ; type : "tuple" ; internalType : "struct ITradeMarketplace.Order" ; components : readonly [ { name : "maker" ; type : "address" ; internalType : "address" ; } , { name : "taker" ; type : "address" ; internalType : "address" ; } , { name : "collection" ; type : "address" ; internalType : "address" ; } , { name : "tokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "currency" ; type : "address" ; internalType : "address" ; } , { name : "price" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nonce" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expiration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "isAsk" ; type : "bool" ; internalType : "bool" ; } , { name : "signature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; outputs : readonly [ { name : "" ; type : "bool" ; internalType : "bool" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "minNonce" ; inputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "multicall" ; inputs : readonly [ { name : "data" ; type : "bytes[]" ; internalType : "bytes[]" ; } ] ; outputs : readonly [ { name : "results" ; type : "bytes[]" ; internalType : "bytes[]" ; } ] ; stateMutability : "payable" ; } , { type : "function" ; name : "name" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "string" ; internalType : "string" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "onERC721Received" ; inputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } , { name : "" ; type : "address" ; internalType : "address" ; } , { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "bytes4" ; internalType : "bytes4" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "orderHash" ; inputs : readonly [ { name : "order" ; type : "tuple" ; internalType : "struct ITradeMarketplace.Order" ; components : readonly [ { name : "maker" ; type : "address" ; internalType : "address" ; } , { name : "taker" ; type : "address" ; internalType : "address" ; } , { name : "collection" ; type : "address" ; internalType : "address" ; } , { name : "tokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "currency" ; type : "address" ; internalType : "address" ; } , { name : "price" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nonce" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expiration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "isAsk" ; type : "bool" ; internalType : "bool" ; } , { name : "signature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "pure" ; } , { type : "function" ; name : "owner" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "pendingOwner" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "pendingOwnerTime" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "requestTransferOwner" ; inputs : readonly [ { name : "_newOwner" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "sell" ; inputs : readonly [ { name : "executionData" ; type : "bytes[]" ; internalType : "bytes[]" ; } , { name : "swapData" ; type : "bytes[]" ; internalType : "bytes[]" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "setProtocolFee" ; inputs : readonly [ ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "setTaxes" ; inputs : readonly [ { name : "module" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "swapAndExecute" ; inputs : readonly [ { name : "args" ; type : "tuple" ; internalType : "struct IPurchaseBundler.SwapAndExecuteParams" ; components : readonly [ { name : "inputCurrencies" ; type : "address[]" ; internalType : "address[]" ; } , { name : "outputCurrencies" ; type : "address[]" ; internalType : "address[]" ; } , { name : "amountsToSwap" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "swapData" ; type : "bytes" ; internalType : "bytes" ; } , { name : "target" ; type : "address" ; internalType : "address" ; } , { name : "executionCalldata" ; type : "bytes" ; internalType : "bytes" ; } , { name : "executionValue" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "payable" ; } , { type : "function" ; name : "transferOwnership" ; inputs : readonly [ ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "transferOwnership" ; inputs : readonly [ { name : "newOwner" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "updateProtocolFee" ; inputs : readonly [ { name : "_newProtocolFee" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "updateTaxes" ; inputs : readonly [ { name : "module" ; type : "address" ; internalType : "address" ; } , { name : "newTax" ; type : "tuple" ; internalType : "struct IPurchaseBundler.Taxes" ; components : readonly [ { name : "buyTax" ; type : "uint128" ; internalType : "uint128" ; } , { name : "sellTax" ; type : "uint128" ; internalType : "uint128" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "event" ; name : "AllOrdersCancelled" ; inputs : readonly [ { name : "user" ; type : "address" ; indexed : true ; internalType : "address" ; } , { name : "nonce" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "BNPLLoansStarted" ; inputs : readonly [ { name : "loanIds" ; type : "uint256[]" ; indexed : false ; internalType : "uint256[]" ; } ] ; anonymous : false ; } , { type : "event" ; name : "OrderExecuted" ; inputs : readonly [ { name : "maker" ; type : "address" ; indexed : true ; internalType : "address" ; } , { name : "taker" ; type : "address" ; indexed : true ; internalType : "address" ; } , { name : "collection" ; type : "address" ; indexed : true ; internalType : "address" ; } , { name : "tokenId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "currency" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "price" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "nonce" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "expiration" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "isAsk" ; type : "bool" ; indexed : false ; internalType : "bool" ; } ] ; anonymous : false ; } , { type : "event" ; name : "OwnershipTransferred" ; inputs : readonly [ { name : "user" ; type : "address" ; indexed : true ; internalType : "address" ; } , { name : "newOwner" ; type : "address" ; indexed : true ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "ProtocolFeePendingUpdate" ; inputs : readonly [ { name : "fee" ; type : "tuple" ; indexed : false ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; anonymous : false ; } , { type : "event" ; name : "ProtocolFeeUpdated" ; inputs : readonly [ { name : "fee" ; type : "tuple" ; indexed : false ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; anonymous : false ; } , { type : "event" ; name : "SellAndRepayExecuted" ; inputs : readonly [ { name : "loanIds" ; type : "uint256[]" ; indexed : false ; internalType : "uint256[]" ; } ] ; anonymous : false ; } , { type : "event" ; name : "TaxesPendingUpdate" ; inputs : readonly [ { name : "module" ; type : "address" ; indexed : true ; internalType : "address" ; } , { name : "newTax" ; type : "tuple" ; indexed : false ; internalType : "struct IPurchaseBundler.Taxes" ; components : readonly [ { name : "buyTax" ; type : "uint128" ; internalType : "uint128" ; } , { name : "sellTax" ; type : "uint128" ; internalType : "uint128" ; } ] ; } ] ; anonymous : false ; } , { type : "event" ; name : "TaxesUpdated" ; inputs : readonly [ { name : "module" ; type : "address" ; indexed : true ; internalType : "address" ; } , { name : "newTax" ; type : "tuple" ; indexed : false ; internalType : "struct IPurchaseBundler.Taxes" ; components : readonly [ { name : "buyTax" ; type : "uint128" ; internalType : "uint128" ; } , { name : "sellTax" ; type : "uint128" ; internalType : "uint128" ; } ] ; } ] ; anonymous : false ; } , { type : "event" ; name : "TransferOwnerRequested" ; inputs : readonly [ { name : "newOwner" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "error" ; name : "AddressZeroError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "CouldNotReturnEthError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "CurrencyNotWhitelisted" ; inputs : readonly [ ] ; } , { type : "error" ; name : "ECDSAInvalidSignature" ; inputs : readonly [ ] ; } , { type : "error" ; name : "ECDSAInvalidSignatureLength" ; inputs : readonly [ { name : "length" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "ECDSAInvalidSignatureS" ; inputs : readonly [ { name : "s" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; } , { type : "error" ; name : "InvalidCallbackError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidCollateralError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidCurrencyError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidExecutionData" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidInputError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidSignature" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidStateError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidSwapDataLengthError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidSwapError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidTaker" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidTargetContractError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidTaxesError" ; inputs : readonly [ { name : "newTaxes" ; type : "tuple" ; internalType : "struct IPurchaseBundler.Taxes" ; components : readonly [ { name : "buyTax" ; type : "uint128" ; internalType : "uint128" ; } , { name : "sellTax" ; type : "uint128" ; internalType : "uint128" ; } ] ; } ] ; } , { type : "error" ; name : "LowNonceError" ; inputs : readonly [ { name : "user" ; type : "address" ; internalType : "address" ; } , { name : "nonce" ; type : "uint256" ; internalType : "uint256" ; } , { name : "currentMinNonce" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "MarketplaceAddressNotWhitelisted" ; inputs : readonly [ ] ; } , { type : "error" ; name : "MulticallFailed" ; inputs : readonly [ { name : "i" ; type : "uint256" ; internalType : "uint256" ; } , { name : "returndata" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { type : "error" ; name : "OnlyLoanCallableError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "OrderCancelled" ; inputs : readonly [ ] ; } , { type : "error" ; name : "OrderExpired" ; inputs : readonly [ ] ; } , { type : "error" ; name : "TooEarlyError" ; inputs : readonly [ { name : "_pendingProtocolFeeSetTime" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "TooMuchSlippageError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "TooSoonError" ; inputs : readonly [ ] ; } ] , TFunctionName , true , TFunctionName extends ( "OwnershipTransferred" | "ProtocolFeePendingUpdate" | "ProtocolFeeUpdated" | "BNPLLoansStarted" | "SellAndRepayExecuted" | "TransferOwnerRequested" | "AllOrdersCancelled" | "OrderExecuted" | "TaxesPendingUpdate" | "TaxesUpdated" ) [] ? TFunctionName [ number ] : TFunctionName >
Type Parameters
TFunctionName extends "OwnershipTransferred" | "ProtocolFeePendingUpdate" | "ProtocolFeeUpdated" | "BNPLLoansStarted" | "SellAndRepayExecuted" | "TransferOwnerRequested" | "AllOrdersCancelled" | "OrderExecuted" | "TaxesPendingUpdate" | "TaxesUpdated"
Parameters
eventName : TFunctionName
logs : Log < bigint , number , false > []
Returns ParseEventLogsReturnType < readonly [ { type : "constructor" ; inputs : readonly [ { name : "name" ; type : "string" ; internalType : "string" ; } , { name : "multiSourceLoanAddress" ; type : "address" ; internalType : "address" ; } , { name : "marketplaceContracts" ; type : "address" ; internalType : "address" ; } , { name : "wethAddress" ; type : "address" ; internalType : "address payable" ; } , { name : "punkMarketAddress" ; type : "address" ; internalType : "address payable" ; } , { name : "wrappedPunkAddress" ; type : "address" ; internalType : "address payable" ; } , { name : "c721Address" ; type : "address" ; internalType : "address payable" ; } , { name : "uniswapRouterAddress" ; type : "address" ; internalType : "address payable" ; } , { name : "aaveAddressProvider" ; type : "address" ; internalType : "address payable" ; } , { name : "permit2Address" ; type : "address" ; internalType : "address payable" ; } , { name : "currencyManager" ; type : "address" ; internalType : "address" ; } , { name : "punkTaxes" ; type : "tuple" ; internalType : "struct IPurchaseBundler.Taxes" ; components : readonly [ { name : "buyTax" ; type : "uint128" ; internalType : "uint128" ; } , { name : "sellTax" ; type : "uint128" ; internalType : "uint128" ; } ] ; } , { name : "minWaitTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "protocolFee" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "nonpayable" ; } , { type : "fallback" ; stateMutability : "payable" ; } , { type : "receive" ; stateMutability : "payable" ; } , { type : "function" ; name : "DOMAIN_SEPARATOR" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "ETH" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "FEE_UPDATE_NOTICE" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "INITIAL_DOMAIN_SEPARATOR" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "MAX_SLIPPAGE_DENOMINATOR" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "MIN_WAIT_TIME" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "VERSION" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "bytes" ; internalType : "bytes" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "afterNFTTransfer" ; inputs : readonly [ { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_executionData" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "bytes4" ; internalType : "bytes4" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "afterPrincipalTransfer" ; inputs : readonly [ { name : "_loan" ; type : "tuple" ; internalType : "struct IMultiSourceLoan.Loan" ; components : readonly [ { name : "borrower" ; type : "address" ; internalType : "address" ; } , { name : "nftCollateralTokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nftCollateralAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAddress" ; type : "address" ; internalType : "address" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "duration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "tranche" ; type : "tuple[]" ; internalType : "struct IMultiSourceLoan.Tranche[]" ; components : readonly [ { name : "loanId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "floor" ; type : "uint256" ; internalType : "uint256" ; } , { name : "principalAmount" ; type : "uint256" ; internalType : "uint256" ; } , { name : "lender" ; type : "address" ; internalType : "address" ; } , { name : "accruedInterest" ; type : "uint256" ; internalType : "uint256" ; } , { name : "startTime" ; type : "uint256" ; internalType : "uint256" ; } , { name : "aprBps" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "protocolFee" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { name : "_fee" ; type : "uint256" ; internalType : "uint256" ; } , { name : "_executionData" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "bytes4" ; internalType : "bytes4" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "approveForSwap" ; inputs : readonly [ { name : "currency" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "buy" ; inputs : readonly [ { name : "executionData" ; type : "bytes[]" ; internalType : "bytes[]" ; } ] ; outputs : readonly [ { name : "loanIds" ; type : "uint256[]" ; internalType : "uint256[]" ; } ] ; stateMutability : "payable" ; } , { type : "function" ; name : "cancelAllOrders" ; inputs : readonly [ { name : "nonce" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "cancelOrder" ; inputs : readonly [ { name : "nonce" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "cancelled" ; inputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } , { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; outputs : readonly [ { name : "" ; type : "bool" ; internalType : "bool" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "executeOperation" ; inputs : readonly [ { name : "assets" ; type : "address[]" ; internalType : "address[]" ; } , { name : "amounts" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "premiums" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "initiator" ; type : "address" ; internalType : "address" ; } , { name : "params" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "bool" ; internalType : "bool" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "executeOrder" ; inputs : readonly [ { name : "order" ; type : "tuple" ; internalType : "struct ITradeMarketplace.Order" ; components : readonly [ { name : "maker" ; type : "address" ; internalType : "address" ; } , { name : "taker" ; type : "address" ; internalType : "address" ; } , { name : "collection" ; type : "address" ; internalType : "address" ; } , { name : "tokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "currency" ; type : "address" ; internalType : "address" ; } , { name : "price" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nonce" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expiration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "isAsk" ; type : "bool" ; internalType : "bool" ; } , { name : "signature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "executeSell" ; inputs : readonly [ { name : "currencies" ; type : "address[]" ; internalType : "address[]" ; } , { name : "currencyAmounts" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "collections" ; type : "address[]" ; internalType : "contract ERC721[]" ; } , { name : "tokenIds" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "marketPlace" ; type : "address" ; internalType : "address" ; } , { name : "executionData" ; type : "bytes[]" ; internalType : "bytes[]" ; } , { name : "swapData" ; type : "bytes[]" ; internalType : "bytes[]" ; } ] ; outputs : readonly [ ] ; stateMutability : "payable" ; } , { type : "function" ; name : "executeSellWithLoan" ; inputs : readonly [ { name : "args" ; type : "tuple" ; internalType : "struct IPurchaseBundler.ExecuteSellWithLoanArgs" ; components : readonly [ { name : "borrowArgs" ; type : "tuple" ; internalType : "struct IPurchaseBundler.AaveBorrowArgs" ; components : readonly [ { name : "pool" ; type : "address" ; internalType : "contract IPool" ; } , { name : "assets" ; type : "address[]" ; internalType : "address[]" ; } , { name : "amounts" ; type : "uint256[]" ; internalType : "uint256[]" ; } ] ; } , { name : "executeSellArgs" ; type : "tuple" ; internalType : "struct IPurchaseBundler.ExecuteSellArgs" ; components : readonly [ { name : "currencies" ; type : "address[]" ; internalType : "address[]" ; } , { name : "currencyAmounts" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "collections" ; type : "address[]" ; internalType : "contract ERC721[]" ; } , { name : "tokenIds" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "marketPlace" ; type : "address" ; internalType : "address" ; } , { name : "executionData" ; type : "bytes[]" ; internalType : "bytes[]" ; } , { name : "swapData" ; type : "bytes[]" ; internalType : "bytes[]" ; } ] ; } , { name : "loanExecutionData" ; type : "bytes[]" ; internalType : "bytes[]" ; } , { name : "swapCurrencies" ; type : "address[]" ; internalType : "contract ERC20[]" ; } , { name : "swapAmounts" ; type : "uint160[]" ; internalType : "uint160[]" ; } , { name : "swapData" ; type : "bytes[]" ; internalType : "bytes[]" ; } , { name : "unwrap" ; type : "bool" ; internalType : "bool" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "payable" ; } , { type : "function" ; name : "getMultiSourceLoanAddress" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getPendingProtocolFee" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getPendingProtocolFeeSetTime" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getPendingTaxes" ; inputs : readonly [ { name : "module" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ { name : "" ; type : "tuple" ; internalType : "struct IPurchaseBundler.Taxes" ; components : readonly [ { name : "buyTax" ; type : "uint128" ; internalType : "uint128" ; } , { name : "sellTax" ; type : "uint128" ; internalType : "uint128" ; } ] ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getPendingTaxesSetTime" ; inputs : readonly [ { name : "module" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getProtocolFee" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "getTaxes" ; inputs : readonly [ { name : "module" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ { name : "" ; type : "tuple" ; internalType : "struct IPurchaseBundler.Taxes" ; components : readonly [ { name : "buyTax" ; type : "uint128" ; internalType : "uint128" ; } , { name : "sellTax" ; type : "uint128" ; internalType : "uint128" ; } ] ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "isOrderCancelled" ; inputs : readonly [ { name : "order" ; type : "tuple" ; internalType : "struct ITradeMarketplace.Order" ; components : readonly [ { name : "maker" ; type : "address" ; internalType : "address" ; } , { name : "taker" ; type : "address" ; internalType : "address" ; } , { name : "collection" ; type : "address" ; internalType : "address" ; } , { name : "tokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "currency" ; type : "address" ; internalType : "address" ; } , { name : "price" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nonce" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expiration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "isAsk" ; type : "bool" ; internalType : "bool" ; } , { name : "signature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; outputs : readonly [ { name : "" ; type : "bool" ; internalType : "bool" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "minNonce" ; inputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "multicall" ; inputs : readonly [ { name : "data" ; type : "bytes[]" ; internalType : "bytes[]" ; } ] ; outputs : readonly [ { name : "results" ; type : "bytes[]" ; internalType : "bytes[]" ; } ] ; stateMutability : "payable" ; } , { type : "function" ; name : "name" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "string" ; internalType : "string" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "onERC721Received" ; inputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } , { name : "" ; type : "address" ; internalType : "address" ; } , { name : "" ; type : "uint256" ; internalType : "uint256" ; } , { name : "" ; type : "bytes" ; internalType : "bytes" ; } ] ; outputs : readonly [ { name : "" ; type : "bytes4" ; internalType : "bytes4" ; } ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "orderHash" ; inputs : readonly [ { name : "order" ; type : "tuple" ; internalType : "struct ITradeMarketplace.Order" ; components : readonly [ { name : "maker" ; type : "address" ; internalType : "address" ; } , { name : "taker" ; type : "address" ; internalType : "address" ; } , { name : "collection" ; type : "address" ; internalType : "address" ; } , { name : "tokenId" ; type : "uint256" ; internalType : "uint256" ; } , { name : "currency" ; type : "address" ; internalType : "address" ; } , { name : "price" ; type : "uint256" ; internalType : "uint256" ; } , { name : "nonce" ; type : "uint256" ; internalType : "uint256" ; } , { name : "expiration" ; type : "uint256" ; internalType : "uint256" ; } , { name : "isAsk" ; type : "bool" ; internalType : "bool" ; } , { name : "signature" ; type : "bytes" ; internalType : "bytes" ; } ] ; } ] ; outputs : readonly [ { name : "" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; stateMutability : "pure" ; } , { type : "function" ; name : "owner" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "pendingOwner" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "address" ; internalType : "address" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "pendingOwnerTime" ; inputs : readonly [ ] ; outputs : readonly [ { name : "" ; type : "uint256" ; internalType : "uint256" ; } ] ; stateMutability : "view" ; } , { type : "function" ; name : "requestTransferOwner" ; inputs : readonly [ { name : "_newOwner" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "sell" ; inputs : readonly [ { name : "executionData" ; type : "bytes[]" ; internalType : "bytes[]" ; } , { name : "swapData" ; type : "bytes[]" ; internalType : "bytes[]" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "setProtocolFee" ; inputs : readonly [ ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "setTaxes" ; inputs : readonly [ { name : "module" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "swapAndExecute" ; inputs : readonly [ { name : "args" ; type : "tuple" ; internalType : "struct IPurchaseBundler.SwapAndExecuteParams" ; components : readonly [ { name : "inputCurrencies" ; type : "address[]" ; internalType : "address[]" ; } , { name : "outputCurrencies" ; type : "address[]" ; internalType : "address[]" ; } , { name : "amountsToSwap" ; type : "uint256[]" ; internalType : "uint256[]" ; } , { name : "swapData" ; type : "bytes" ; internalType : "bytes" ; } , { name : "target" ; type : "address" ; internalType : "address" ; } , { name : "executionCalldata" ; type : "bytes" ; internalType : "bytes" ; } , { name : "executionValue" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "payable" ; } , { type : "function" ; name : "transferOwnership" ; inputs : readonly [ ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "transferOwnership" ; inputs : readonly [ { name : "newOwner" ; type : "address" ; internalType : "address" ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "updateProtocolFee" ; inputs : readonly [ { name : "_newProtocolFee" ; type : "tuple" ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "function" ; name : "updateTaxes" ; inputs : readonly [ { name : "module" ; type : "address" ; internalType : "address" ; } , { name : "newTax" ; type : "tuple" ; internalType : "struct IPurchaseBundler.Taxes" ; components : readonly [ { name : "buyTax" ; type : "uint128" ; internalType : "uint128" ; } , { name : "sellTax" ; type : "uint128" ; internalType : "uint128" ; } ] ; } ] ; outputs : readonly [ ] ; stateMutability : "nonpayable" ; } , { type : "event" ; name : "AllOrdersCancelled" ; inputs : readonly [ { name : "user" ; type : "address" ; indexed : true ; internalType : "address" ; } , { name : "nonce" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } ] ; anonymous : false ; } , { type : "event" ; name : "BNPLLoansStarted" ; inputs : readonly [ { name : "loanIds" ; type : "uint256[]" ; indexed : false ; internalType : "uint256[]" ; } ] ; anonymous : false ; } , { type : "event" ; name : "OrderExecuted" ; inputs : readonly [ { name : "maker" ; type : "address" ; indexed : true ; internalType : "address" ; } , { name : "taker" ; type : "address" ; indexed : true ; internalType : "address" ; } , { name : "collection" ; type : "address" ; indexed : true ; internalType : "address" ; } , { name : "tokenId" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "currency" ; type : "address" ; indexed : false ; internalType : "address" ; } , { name : "price" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "nonce" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "expiration" ; type : "uint256" ; indexed : false ; internalType : "uint256" ; } , { name : "isAsk" ; type : "bool" ; indexed : false ; internalType : "bool" ; } ] ; anonymous : false ; } , { type : "event" ; name : "OwnershipTransferred" ; inputs : readonly [ { name : "user" ; type : "address" ; indexed : true ; internalType : "address" ; } , { name : "newOwner" ; type : "address" ; indexed : true ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "event" ; name : "ProtocolFeePendingUpdate" ; inputs : readonly [ { name : "fee" ; type : "tuple" ; indexed : false ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; anonymous : false ; } , { type : "event" ; name : "ProtocolFeeUpdated" ; inputs : readonly [ { name : "fee" ; type : "tuple" ; indexed : false ; internalType : "struct WithProtocolFee.ProtocolFee" ; components : readonly [ { name : "recipient" ; type : "address" ; internalType : "address" ; } , { name : "fraction" ; type : "uint256" ; internalType : "uint256" ; } ] ; } ] ; anonymous : false ; } , { type : "event" ; name : "SellAndRepayExecuted" ; inputs : readonly [ { name : "loanIds" ; type : "uint256[]" ; indexed : false ; internalType : "uint256[]" ; } ] ; anonymous : false ; } , { type : "event" ; name : "TaxesPendingUpdate" ; inputs : readonly [ { name : "module" ; type : "address" ; indexed : true ; internalType : "address" ; } , { name : "newTax" ; type : "tuple" ; indexed : false ; internalType : "struct IPurchaseBundler.Taxes" ; components : readonly [ { name : "buyTax" ; type : "uint128" ; internalType : "uint128" ; } , { name : "sellTax" ; type : "uint128" ; internalType : "uint128" ; } ] ; } ] ; anonymous : false ; } , { type : "event" ; name : "TaxesUpdated" ; inputs : readonly [ { name : "module" ; type : "address" ; indexed : true ; internalType : "address" ; } , { name : "newTax" ; type : "tuple" ; indexed : false ; internalType : "struct IPurchaseBundler.Taxes" ; components : readonly [ { name : "buyTax" ; type : "uint128" ; internalType : "uint128" ; } , { name : "sellTax" ; type : "uint128" ; internalType : "uint128" ; } ] ; } ] ; anonymous : false ; } , { type : "event" ; name : "TransferOwnerRequested" ; inputs : readonly [ { name : "newOwner" ; type : "address" ; indexed : false ; internalType : "address" ; } ] ; anonymous : false ; } , { type : "error" ; name : "AddressZeroError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "CouldNotReturnEthError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "CurrencyNotWhitelisted" ; inputs : readonly [ ] ; } , { type : "error" ; name : "ECDSAInvalidSignature" ; inputs : readonly [ ] ; } , { type : "error" ; name : "ECDSAInvalidSignatureLength" ; inputs : readonly [ { name : "length" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "ECDSAInvalidSignatureS" ; inputs : readonly [ { name : "s" ; type : "bytes32" ; internalType : "bytes32" ; } ] ; } , { type : "error" ; name : "InvalidCallbackError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidCollateralError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidCurrencyError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidExecutionData" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidInputError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidSignature" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidStateError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidSwapDataLengthError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidSwapError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidTaker" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidTargetContractError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "InvalidTaxesError" ; inputs : readonly [ { name : "newTaxes" ; type : "tuple" ; internalType : "struct IPurchaseBundler.Taxes" ; components : readonly [ { name : "buyTax" ; type : "uint128" ; internalType : "uint128" ; } , { name : "sellTax" ; type : "uint128" ; internalType : "uint128" ; } ] ; } ] ; } , { type : "error" ; name : "LowNonceError" ; inputs : readonly [ { name : "user" ; type : "address" ; internalType : "address" ; } , { name : "nonce" ; type : "uint256" ; internalType : "uint256" ; } , { name : "currentMinNonce" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "MarketplaceAddressNotWhitelisted" ; inputs : readonly [ ] ; } , { type : "error" ; name : "MulticallFailed" ; inputs : readonly [ { name : "i" ; type : "uint256" ; internalType : "uint256" ; } , { name : "returndata" ; type : "bytes" ; internalType : "bytes" ; } ] ; } , { type : "error" ; name : "OnlyLoanCallableError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "OrderCancelled" ; inputs : readonly [ ] ; } , { type : "error" ; name : "OrderExpired" ; inputs : readonly [ ] ; } , { type : "error" ; name : "TooEarlyError" ; inputs : readonly [ { name : "_pendingProtocolFeeSetTime" ; type : "uint256" ; internalType : "uint256" ; } ] ; } , { type : "error" ; name : "TooMuchSlippageError" ; inputs : readonly [ ] ; } , { type : "error" ; name : "TooSoonError" ; inputs : readonly [ ] ; } ] , TFunctionName , true , TFunctionName extends ( "OwnershipTransferred" | "ProtocolFeePendingUpdate" | "ProtocolFeeUpdated" | "BNPLLoansStarted" | "SellAndRepayExecuted" | "TransferOwnerRequested" | "AllOrdersCancelled" | "OrderExecuted" | "TaxesPendingUpdate" | "TaxesUpdated" ) [] ? TFunctionName [ number ] : TFunctionName >
Decodes the
executionInfocallback carried by an execution or a seller repayment.