Properties
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";
}];
} = ...
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";
}]
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: "currencyManager";
type: "address";
internalType: "address";
}, {
name: "taxes";
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: "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: "MIN_WAIT_TIME";
inputs: readonly [];
outputs: readonly [{
name: "";
type: "uint256";
internalType: "uint256";
}];
stateMutability: "view";
}, {
type: "function";
name: "TAX_UPDATE_NOTICE";
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: "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: "source";
type: "tuple[]";
internalType: "struct IMultiSourceLoan.Source[]";
components: readonly [{
name: "loanId";
type: "uint256";
internalType: "uint256";
}, {
name: "lender";
type: "address";
internalType: "address";
}, {
name: "principalAmount";
type: "uint256";
internalType: "uint256";
}, {
name: "accruedInterest";
type: "uint256";
internalType: "uint256";
}, {
name: "startTime";
type: "uint256";
internalType: "uint256";
}, {
name: "aprBps";
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: "source";
type: "tuple[]";
internalType: "struct IMultiSourceLoan.Source[]";
components: readonly [{
name: "loanId";
type: "uint256";
internalType: "uint256";
}, {
name: "lender";
type: "address";
internalType: "address";
}, {
name: "principalAmount";
type: "uint256";
internalType: "uint256";
}, {
name: "accruedInterest";
type: "uint256";
internalType: "uint256";
}, {
name: "startTime";
type: "uint256";
internalType: "uint256";
}, {
name: "aprBps";
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: "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: "";
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: "contract ERC20[]";
}, {
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[]";
}];
outputs: readonly [];
stateMutability: "nonpayable";
}, {
type: "function";
name: "executeSellWithETH";
inputs: readonly [{
name: "wethPrincipalSwapData";
type: "bytes";
internalType: "bytes";
}, {
name: "principal";
type: "address";
internalType: "contract ERC20";
}, {
name: "collection";
type: "address";
internalType: "contract ERC721";
}, {
name: "tokenId";
type: "uint256";
internalType: "uint256";
}, {
name: "executionData";
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: "contract ERC20[]";
}, {
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: "loanExecutionData";
type: "bytes[]";
internalType: "bytes[]";
}];
}];
outputs: readonly [];
stateMutability: "nonpayable";
}, {
type: "function";
name: "finalUpdateMultiSourceLoanAddress";
inputs: readonly [{
name: "_newAddress";
type: "address";
internalType: "address";
}];
outputs: readonly [];
stateMutability: "nonpayable";
}, {
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 [];
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 [];
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 [];
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: "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[]";
}];
outputs: readonly [];
stateMutability: "nonpayable";
}, {
type: "function";
name: "setProtocolFee";
inputs: readonly [];
outputs: readonly [];
stateMutability: "nonpayable";
}, {
type: "function";
name: "setTaxes";
inputs: readonly [];
outputs: readonly [];
stateMutability: "nonpayable";
}, {
type: "function";
name: "transferOwnership";
inputs: readonly [];
outputs: readonly [];
stateMutability: "nonpayable";
}, {
type: "function";
name: "transferOwnership";
inputs: readonly [{
name: "newOwner";
type: "address";
internalType: "address";
}];
outputs: readonly [];
stateMutability: "nonpayable";
}, {
type: "function";
name: "updateMultiSourceLoanAddressFirst";
inputs: readonly [{
name: "_newAddress";
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: "_newTaxes";
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: "MultiSourceLoanPendingUpdate";
inputs: readonly [{
name: "newAddress";
type: "address";
indexed: false;
internalType: "address";
}];
anonymous: false;
}, {
type: "event";
name: "MultiSourceLoanUpdated";
inputs: readonly [{
name: "newAddress";
type: "address";
indexed: false;
internalType: "address";
}];
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: "newTaxes";
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: "taxes";
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: "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: "InvalidAddressUpdateError";
inputs: readonly [];
}, {
type: "error";
name: "InvalidCallbackError";
inputs: readonly [];
}, {
type: "error";
name: "InvalidInputError";
inputs: readonly [];
}, {
type: "error";
name: "InvalidSignature";
inputs: readonly [];
}, {
type: "error";
name: "InvalidTaker";
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: "OnlyLoanCallableError";
inputs: readonly [];
}, {
type: "error";
name: "OnlyWethSupportedError";
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: "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: "currencyManager";
type: "address";
internalType: "address";
}, {
name: "taxes";
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: "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: "MIN_WAIT_TIME";
inputs: readonly [];
outputs: readonly [{
name: "";
type: "uint256";
internalType: "uint256";
}];
stateMutability: "view";
}, {
type: "function";
name: "TAX_UPDATE_NOTICE";
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: "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: "source";
type: "tuple[]";
internalType: "struct IMultiSourceLoan.Source[]";
components: readonly [{
name: "loanId";
type: "uint256";
internalType: "uint256";
}, {
name: "lender";
type: "address";
internalType: "address";
}, {
name: "principalAmount";
type: "uint256";
internalType: "uint256";
}, {
name: "accruedInterest";
type: "uint256";
internalType: "uint256";
}, {
name: "startTime";
type: "uint256";
internalType: "uint256";
}, {
name: "aprBps";
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: "source";
type: "tuple[]";
internalType: "struct IMultiSourceLoan.Source[]";
components: readonly [{
name: "loanId";
type: "uint256";
internalType: "uint256";
}, {
name: "lender";
type: "address";
internalType: "address";
}, {
name: "principalAmount";
type: "uint256";
internalType: "uint256";
}, {
name: "accruedInterest";
type: "uint256";
internalType: "uint256";
}, {
name: "startTime";
type: "uint256";
internalType: "uint256";
}, {
name: "aprBps";
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: "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: "";
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: "contract ERC20[]";
}, {
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[]";
}];
outputs: readonly [];
stateMutability: "nonpayable";
}, {
type: "function";
name: "executeSellWithETH";
inputs: readonly [{
name: "wethPrincipalSwapData";
type: "bytes";
internalType: "bytes";
}, {
name: "principal";
type: "address";
internalType: "contract ERC20";
}, {
name: "collection";
type: "address";
internalType: "contract ERC721";
}, {
name: "tokenId";
type: "uint256";
internalType: "uint256";
}, {
name: "executionData";
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: "contract ERC20[]";
}, {
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: "loanExecutionData";
type: "bytes[]";
internalType: "bytes[]";
}];
}];
outputs: readonly [];
stateMutability: "nonpayable";
}, {
type: "function";
name: "finalUpdateMultiSourceLoanAddress";
inputs: readonly [{
name: "_newAddress";
type: "address";
internalType: "address";
}];
outputs: readonly [];
stateMutability: "nonpayable";
}, {
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 [];
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 [];
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 [];
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: "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[]";
}];
outputs: readonly [];
stateMutability: "nonpayable";
}, {
type: "function";
name: "setProtocolFee";
inputs: readonly [];
outputs: readonly [];
stateMutability: "nonpayable";
}, {
type: "function";
name: "setTaxes";
inputs: readonly [];
outputs: readonly [];
stateMutability: "nonpayable";
}, {
type: "function";
name: "transferOwnership";
inputs: readonly [];
outputs: readonly [];
stateMutability: "nonpayable";
}, {
type: "function";
name: "transferOwnership";
inputs: readonly [{
name: "newOwner";
type: "address";
internalType: "address";
}];
outputs: readonly [];
stateMutability: "nonpayable";
}, {
type: "function";
name: "updateMultiSourceLoanAddressFirst";
inputs: readonly [{
name: "_newAddress";
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: "_newTaxes";
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: "MultiSourceLoanPendingUpdate";
inputs: readonly [{
name: "newAddress";
type: "address";
indexed: false;
internalType: "address";
}];
anonymous: false;
}, {
type: "event";
name: "MultiSourceLoanUpdated";
inputs: readonly [{
name: "newAddress";
type: "address";
indexed: false;
internalType: "address";
}];
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: "newTaxes";
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: "taxes";
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: "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: "InvalidAddressUpdateError";
inputs: readonly [];
}, {
type: "error";
name: "InvalidCallbackError";
inputs: readonly [];
}, {
type: "error";
name: "InvalidInputError";
inputs: readonly [];
}, {
type: "error";
name: "InvalidSignature";
inputs: readonly [];
}, {
type: "error";
name: "InvalidTaker";
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: "OnlyLoanCallableError";
inputs: readonly [];
}, {
type: "error";
name: "OnlyWethSupportedError";
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: "TooSoonError";
inputs: readonly [];
}], {} | {}>
safeContractWrite
safeContractWrite: {
transferOwnership: ((args, options?) => Promise<`0x${string}`>);
onERC721Received: ((args, options?) => Promise<`0x${string}`>);
setProtocolFee: ((args, options?) => Promise<`0x${string}`>);
updateProtocolFee: ((args, options?) => Promise<`0x${string}`>);
afterNFTTransfer: ((args, options?) => Promise<`0x${string}`>);
afterPrincipalTransfer: ((args, options?) => Promise<`0x${string}`>);
buy: ((args, options?) => Promise<`0x${string}`>);
finalUpdateMultiSourceLoanAddress: ((args, options?) => Promise<`0x${string}`>);
sell: ((args, options?) => Promise<`0x${string}`>);
updateMultiSourceLoanAddressFirst: ((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}`>);
executeSellWithETH: ((args, options?) => Promise<`0x${string}`>);
executeSellWithLoan: ((args, options?) => Promise<`0x${string}`>);
}
Type declaration
-
transferOwnership: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: undefined | readonly [] | readonly [`0x${string}`]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
onERC721Received: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: readonly [`0x${string}`, `0x${string}`, bigint, `0x${string}`]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
setProtocolFee: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: undefined | readonly []
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
updateProtocolFee: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: readonly [{
recipient: `0x${string}`;
fraction: bigint;
}] | readonly [{
recipient: `0x${string}`;
fraction: bigint;
}] & readonly [{
recipient: `0x${string}`;
fraction: bigint;
}]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
afterNFTTransfer: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: Object
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
afterPrincipalTransfer: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: Object
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
buy: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: readonly [readonly `0x${string}`[]] | readonly [readonly `0x${string}`[]] & readonly [readonly `0x${string}`[]]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
finalUpdateMultiSourceLoanAddress: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: readonly [`0x${string}`]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
sell: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: readonly [readonly `0x${string}`[]] | readonly [readonly `0x${string}`[]] & readonly [readonly `0x${string}`[]]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
updateMultiSourceLoanAddressFirst: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: readonly [`0x${string}`]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
requestTransferOwner: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: readonly [`0x${string}`]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
executeSell: ((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 [readonly `0x${string}`[], readonly bigint[], readonly `0x${string}`[], readonly bigint[], `0x${string}`, readonly `0x${string}`[]] & readonly [readonly `0x${string}`[], readonly bigint[], readonly `0x${string}`[], readonly bigint[], `0x${string}`, readonly `0x${string}`[]]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
setTaxes: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: undefined | readonly []
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
updateTaxes: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: readonly [{
buyTax: bigint;
sellTax: bigint;
}] | readonly [{
buyTax: bigint;
sellTax: bigint;
}] & readonly [{
buyTax: bigint;
sellTax: bigint;
}]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
approveForSwap: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: readonly [`0x${string}`]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
cancelAllOrders: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: readonly [bigint]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
cancelOrder: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: readonly [bigint]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
executeOperation: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: readonly [readonly `0x${string}`[], readonly bigint[], readonly bigint[], `0x${string}`, `0x${string}`] | readonly [readonly `0x${string}`[], readonly bigint[], readonly bigint[], `0x${string}`, `0x${string}`] & readonly [readonly `0x${string}`[], readonly bigint[], readonly bigint[], `0x${string}`, `0x${string}`]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
executeOrder: ((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: Widen<boolean>;
signature: `0x${string}`;
}] | 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}`;
}] & readonly [{
maker: `0x${string}`;
taker: `0x${string}`;
collection: `0x${string}`;
tokenId: bigint;
currency: `0x${string}`;
price: bigint;
nonce: bigint;
expiration: bigint;
isAsk: Widen<boolean>;
signature: `0x${string}`;
}]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
executeSellWithETH: ((args, options?) => Promise<`0x${string}`>)
-
- (args, options?): Promise<`0x${string}`>
-
Parameters
-
args: readonly [`0x${string}`, `0x${string}`, `0x${string}`, bigint, readonly `0x${string}`[]] | readonly [`0x${string}`, `0x${string}`, `0x${string}`, bigint, readonly `0x${string}`[]] & readonly [`0x${string}`, `0x${string}`, `0x${string}`, bigint, readonly `0x${string}`[]]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
-
executeSellWithLoan: ((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}`[]; };
loanExecutionData: readonly `0x${string}`[];
}] | 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}`[]; };
loanExecutionData: readonly `0x${string}`[];
}] & 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}`[]; };
loanExecutionData: readonly `0x${string}`[];
}]
-
Optional
options: {
value?: bigint;
}
Returns Promise<`0x${string}`>
parseEventLogs
parseEventLogs: (<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: "currencyManager";
type: "address";
internalType: "address";
}, {
name: "taxes";
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: "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: "MIN_WAIT_TIME";
inputs: readonly [];
outputs: readonly [{
name: "";
type: "uint256";
internalType: "uint256";
}];
stateMutability: "view";
}, {
type: "function";
name: "TAX_UPDATE_NOTICE";
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: "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: "source";
type: "tuple[]";
internalType: "struct IMultiSourceLoan.Source[]";
components: readonly [{
name: "loanId";
type: "uint256";
internalType: "uint256";
}, {
name: "lender";
type: "address";
internalType: "address";
}, {
name: "principalAmount";
type: "uint256";
internalType: "uint256";
}, {
name: "accruedInterest";
type: "uint256";
internalType: "uint256";
}, {
name: "startTime";
type: "uint256";
internalType: "uint256";
}, {
name: "aprBps";
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: "source";
type: "tuple[]";
internalType: "struct IMultiSourceLoan.Source[]";
components: readonly [{
name: "loanId";
type: "uint256";
internalType: "uint256";
}, {
name: "lender";
type: "address";
internalType: "address";
}, {
name: "principalAmount";
type: "uint256";
internalType: "uint256";
}, {
name: "accruedInterest";
type: "uint256";
internalType: "uint256";
}, {
name: "startTime";
type: "uint256";
internalType: "uint256";
}, {
name: "aprBps";
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: "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: "";
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: "contract ERC20[]";
}, {
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[]";
}];
outputs: readonly [];
stateMutability: "nonpayable";
}, {
type: "function";
name: "executeSellWithETH";
inputs: readonly [{
name: "wethPrincipalSwapData";
type: "bytes";
internalType: "bytes";
}, {
name: "principal";
type: "address";
internalType: "contract ERC20";
}, {
name: "collection";
type: "address";
internalType: "contract ERC721";
}, {
name: "tokenId";
type: "uint256";
internalType: "uint256";
}, {
name: "executionData";
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: "contract ERC20[]";
}, {
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: "loanExecutionData";
type: "bytes[]";
internalType: "bytes[]";
}];
}];
outputs: readonly [];
stateMutability: "nonpayable";
}, {
type: "function";
name: "finalUpdateMultiSourceLoanAddress";
inputs: readonly [{
name: "_newAddress";
type: "address";
internalType: "address";
}];
outputs: readonly [];
stateMutability: "nonpayable";
}, {
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 [];
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 [];
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 [];
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: "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[]";
}];
outputs: readonly [];
stateMutability: "nonpayable";
}, {
type: "function";
name: "setProtocolFee";
inputs: readonly [];
outputs: readonly [];
stateMutability: "nonpayable";
}, {
type: "function";
name: "setTaxes";
inputs: readonly [];
outputs: readonly [];
stateMutability: "nonpayable";
}, {
type: "function";
name: "transferOwnership";
inputs: readonly [];
outputs: readonly [];
stateMutability: "nonpayable";
}, {
type: "function";
name: "transferOwnership";
inputs: readonly [{
name: "newOwner";
type: "address";
internalType: "address";
}];
outputs: readonly [];
stateMutability: "nonpayable";
}, {
type: "function";
name: "updateMultiSourceLoanAddressFirst";
inputs: readonly [{
name: "_newAddress";
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: "_newTaxes";
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: "MultiSourceLoanPendingUpdate";
inputs: readonly [{
name: "newAddress";
type: "address";
indexed: false;
internalType: "address";
}];
anonymous: false;
}, {
type: "event";
name: "MultiSourceLoanUpdated";
inputs: readonly [{
name: "newAddress";
type: "address";
indexed: false;
internalType: "address";
}];
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: "newTaxes";
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: "taxes";
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: "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: "InvalidAddressUpdateError";
inputs: readonly [];
}, {
type: "error";
name: "InvalidCallbackError";
inputs: readonly [];
}, {
type: "error";
name: "InvalidInputError";
inputs: readonly [];
}, {
type: "error";
name: "InvalidSignature";
inputs: readonly [];
}, {
type: "error";
name: "InvalidTaker";
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: "OnlyLoanCallableError";
inputs: readonly [];
}, {
type: "error";
name: "OnlyWethSupportedError";
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: "TooSoonError";
inputs: readonly [];
}], TFunctionName, true, TFunctionName extends ("OwnershipTransferred" | "ProtocolFeePendingUpdate" | "ProtocolFeeUpdated" | "BNPLLoansStarted" | "MultiSourceLoanPendingUpdate" | "MultiSourceLoanUpdated" | "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: "currencyManager";
type: "address";
internalType: "address";
}, {
name: "taxes";
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: "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: "MIN_WAIT_TIME";
inputs: readonly [];
outputs: readonly [{
name: "";
type: "uint256";
internalType: "uint256";
}];
stateMutability: "view";
}, {
type: "function";
name: "TAX_UPDATE_NOTICE";
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: "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: "source";
type: "tuple[]";
internalType: "struct IMultiSourceLoan.Source[]";
components: readonly [{
name: "loanId";
type: "uint256";
internalType: "uint256";
}, {
name: "lender";
type: "address";
internalType: "address";
}, {
name: "principalAmount";
type: "uint256";
internalType: "uint256";
}, {
name: "accruedInterest";
type: "uint256";
internalType: "uint256";
}, {
name: "startTime";
type: "uint256";
internalType: "uint256";
}, {
name: "aprBps";
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: "source";
type: "tuple[]";
internalType: "struct IMultiSourceLoan.Source[]";
components: readonly [{
name: "loanId";
type: "uint256";
internalType: "uint256";
}, {
name: "lender";
type: "address";
internalType: "address";
}, {
name: "principalAmount";
type: "uint256";
internalType: "uint256";
}, {
name: "accruedInterest";
type: "uint256";
internalType: "uint256";
}, {
name: "startTime";
type: "uint256";
internalType: "uint256";
}, {
name: "aprBps";
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: "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: "";
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: "contract ERC20[]";
}, {
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[]";
}];
outputs: readonly [];
stateMutability: "nonpayable";
}, {
type: "function";
name: "executeSellWithETH";
inputs: readonly [{
name: "wethPrincipalSwapData";
type: "bytes";
internalType: "bytes";
}, {
name: "principal";
type: "address";
internalType: "contract ERC20";
}, {
name: "collection";
type: "address";
internalType: "contract ERC721";
}, {
name: "tokenId";
type: "uint256";
internalType: "uint256";
}, {
name: "executionData";
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: "contract ERC20[]";
}, {
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: "loanExecutionData";
type: "bytes[]";
internalType: "bytes[]";
}];
}];
outputs: readonly [];
stateMutability: "nonpayable";
}, {
type: "function";
name: "finalUpdateMultiSourceLoanAddress";
inputs: readonly [{
name: "_newAddress";
type: "address";
internalType: "address";
}];
outputs: readonly [];
stateMutability: "nonpayable";
}, {
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 [];
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 [];
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 [];
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: "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[]";
}];
outputs: readonly [];
stateMutability: "nonpayable";
}, {
type: "function";
name: "setProtocolFee";
inputs: readonly [];
outputs: readonly [];
stateMutability: "nonpayable";
}, {
type: "function";
name: "setTaxes";
inputs: readonly [];
outputs: readonly [];
stateMutability: "nonpayable";
}, {
type: "function";
name: "transferOwnership";
inputs: readonly [];
outputs: readonly [];
stateMutability: "nonpayable";
}, {
type: "function";
name: "transferOwnership";
inputs: readonly [{
name: "newOwner";
type: "address";
internalType: "address";
}];
outputs: readonly [];
stateMutability: "nonpayable";
}, {
type: "function";
name: "updateMultiSourceLoanAddressFirst";
inputs: readonly [{
name: "_newAddress";
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: "_newTaxes";
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: "MultiSourceLoanPendingUpdate";
inputs: readonly [{
name: "newAddress";
type: "address";
indexed: false;
internalType: "address";
}];
anonymous: false;
}, {
type: "event";
name: "MultiSourceLoanUpdated";
inputs: readonly [{
name: "newAddress";
type: "address";
indexed: false;
internalType: "address";
}];
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: "newTaxes";
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: "taxes";
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: "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: "InvalidAddressUpdateError";
inputs: readonly [];
}, {
type: "error";
name: "InvalidCallbackError";
inputs: readonly [];
}, {
type: "error";
name: "InvalidInputError";
inputs: readonly [];
}, {
type: "error";
name: "InvalidSignature";
inputs: readonly [];
}, {
type: "error";
name: "InvalidTaker";
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: "OnlyLoanCallableError";
inputs: readonly [];
}, {
type: "error";
name: "OnlyWethSupportedError";
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: "TooSoonError";
inputs: readonly [];
}], TFunctionName, true, TFunctionName extends ("OwnershipTransferred" | "ProtocolFeePendingUpdate" | "ProtocolFeeUpdated" | "BNPLLoansStarted" | "MultiSourceLoanPendingUpdate" | "MultiSourceLoanUpdated" | "SellAndRepayExecuted" | "TransferOwnerRequested" | "AllOrdersCancelled" | "OrderExecuted" | "TaxesPendingUpdate" | "TaxesUpdated")[]
? TFunctionName[number]
: TFunctionName>
-
Type Parameters
-
TFunctionName extends "OwnershipTransferred" | "ProtocolFeePendingUpdate" | "ProtocolFeeUpdated" | "BNPLLoansStarted" | "MultiSourceLoanPendingUpdate" | "MultiSourceLoanUpdated" | "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: "currencyManager";
type: "address";
internalType: "address";
}, {
name: "taxes";
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: "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: "MIN_WAIT_TIME";
inputs: readonly [];
outputs: readonly [{
name: "";
type: "uint256";
internalType: "uint256";
}];
stateMutability: "view";
}, {
type: "function";
name: "TAX_UPDATE_NOTICE";
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: "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: "source";
type: "tuple[]";
internalType: "struct IMultiSourceLoan.Source[]";
components: readonly [{
name: "loanId";
type: "uint256";
internalType: "uint256";
}, {
name: "lender";
type: "address";
internalType: "address";
}, {
name: "principalAmount";
type: "uint256";
internalType: "uint256";
}, {
name: "accruedInterest";
type: "uint256";
internalType: "uint256";
}, {
name: "startTime";
type: "uint256";
internalType: "uint256";
}, {
name: "aprBps";
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: "source";
type: "tuple[]";
internalType: "struct IMultiSourceLoan.Source[]";
components: readonly [{
name: "loanId";
type: "uint256";
internalType: "uint256";
}, {
name: "lender";
type: "address";
internalType: "address";
}, {
name: "principalAmount";
type: "uint256";
internalType: "uint256";
}, {
name: "accruedInterest";
type: "uint256";
internalType: "uint256";
}, {
name: "startTime";
type: "uint256";
internalType: "uint256";
}, {
name: "aprBps";
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: "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: "";
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: "contract ERC20[]";
}, {
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[]";
}];
outputs: readonly [];
stateMutability: "nonpayable";
}, {
type: "function";
name: "executeSellWithETH";
inputs: readonly [{
name: "wethPrincipalSwapData";
type: "bytes";
internalType: "bytes";
}, {
name: "principal";
type: "address";
internalType: "contract ERC20";
}, {
name: "collection";
type: "address";
internalType: "contract ERC721";
}, {
name: "tokenId";
type: "uint256";
internalType: "uint256";
}, {
name: "executionData";
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: "contract ERC20[]";
}, {
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: "loanExecutionData";
type: "bytes[]";
internalType: "bytes[]";
}];
}];
outputs: readonly [];
stateMutability: "nonpayable";
}, {
type: "function";
name: "finalUpdateMultiSourceLoanAddress";
inputs: readonly [{
name: "_newAddress";
type: "address";
internalType: "address";
}];
outputs: readonly [];
stateMutability: "nonpayable";
}, {
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 [];
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 [];
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 [];
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: "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[]";
}];
outputs: readonly [];
stateMutability: "nonpayable";
}, {
type: "function";
name: "setProtocolFee";
inputs: readonly [];
outputs: readonly [];
stateMutability: "nonpayable";
}, {
type: "function";
name: "setTaxes";
inputs: readonly [];
outputs: readonly [];
stateMutability: "nonpayable";
}, {
type: "function";
name: "transferOwnership";
inputs: readonly [];
outputs: readonly [];
stateMutability: "nonpayable";
}, {
type: "function";
name: "transferOwnership";
inputs: readonly [{
name: "newOwner";
type: "address";
internalType: "address";
}];
outputs: readonly [];
stateMutability: "nonpayable";
}, {
type: "function";
name: "updateMultiSourceLoanAddressFirst";
inputs: readonly [{
name: "_newAddress";
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: "_newTaxes";
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: "MultiSourceLoanPendingUpdate";
inputs: readonly [{
name: "newAddress";
type: "address";
indexed: false;
internalType: "address";
}];
anonymous: false;
}, {
type: "event";
name: "MultiSourceLoanUpdated";
inputs: readonly [{
name: "newAddress";
type: "address";
indexed: false;
internalType: "address";
}];
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: "newTaxes";
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: "taxes";
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: "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: "InvalidAddressUpdateError";
inputs: readonly [];
}, {
type: "error";
name: "InvalidCallbackError";
inputs: readonly [];
}, {
type: "error";
name: "InvalidInputError";
inputs: readonly [];
}, {
type: "error";
name: "InvalidSignature";
inputs: readonly [];
}, {
type: "error";
name: "InvalidTaker";
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: "OnlyLoanCallableError";
inputs: readonly [];
}, {
type: "error";
name: "OnlyWethSupportedError";
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: "TooSoonError";
inputs: readonly [];
}], TFunctionName, true, TFunctionName extends ("OwnershipTransferred" | "ProtocolFeePendingUpdate" | "ProtocolFeeUpdated" | "BNPLLoansStarted" | "MultiSourceLoanPendingUpdate" | "MultiSourceLoanUpdated" | "SellAndRepayExecuted" | "TransferOwnerRequested" | "AllOrdersCancelled" | "OrderExecuted" | "TaxesPendingUpdate" | "TaxesUpdated")[]
? TFunctionName[number]
: TFunctionName>