Variable purchaseBundlerAbiConst
purchaseBundlerAbi: readonly [{
type: "constructor";
inputs: readonly [{
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: "__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: "FEE_UPDATE_NOTICE";
inputs: readonly [];
outputs: readonly [{
name: "";
type: "uint256";
internalType: "uint256";
}];
stateMutability: "view";
}, {
type: "function";
name: "MIN_WAIT_TIME";
inputs: readonly [];
outputs: readonly [{
name: "";
type: "uint256";
internalType: "uint256";
}];
stateMutability: "view";
}, {
type: "function";
name: "TAX_UPDATE_NOTICE";
inputs: readonly [];
outputs: readonly [{
name: "";
type: "uint256";
internalType: "uint256";
}];
stateMutability: "view";
}, {
type: "function";
name: "afterNFTTransfer";
inputs: readonly [{
name: "_loan";
type: "tuple";
internalType: "struct IMultiSourceLoan.Loan";
components: readonly [{
name: "borrower";
type: "address";
internalType: "address";
}, {
name: "nftCollateralTokenId";
type: "uint256";
internalType: "uint256";
}, {
name: "nftCollateralAddress";
type: "address";
internalType: "address";
}, {
name: "principalAddress";
type: "address";
internalType: "address";
}, {
name: "principalAmount";
type: "uint256";
internalType: "uint256";
}, {
name: "startTime";
type: "uint256";
internalType: "uint256";
}, {
name: "duration";
type: "uint256";
internalType: "uint256";
}, {
name: "tranche";
type: "tuple[]";
internalType: "struct IMultiSourceLoan.Tranche[]";
components: readonly [{
name: "loanId";
type: "uint256";
internalType: "uint256";
}, {
name: "floor";
type: "uint256";
internalType: "uint256";
}, {
name: "principalAmount";
type: "uint256";
internalType: "uint256";
}, {
name: "lender";
type: "address";
internalType: "address";
}, {
name: "accruedInterest";
type: "uint256";
internalType: "uint256";
}, {
name: "startTime";
type: "uint256";
internalType: "uint256";
}, {
name: "aprBps";
type: "uint256";
internalType: "uint256";
}];
}, {
name: "protocolFee";
type: "uint256";
internalType: "uint256";
}];
}, {
name: "_executionData";
type: "bytes";
internalType: "bytes";
}];
outputs: readonly [{
name: "";
type: "bytes4";
internalType: "bytes4";
}];
stateMutability: "nonpayable";
}, {
type: "function";
name: "afterPrincipalTransfer";
inputs: readonly [{
name: "_loan";
type: "tuple";
internalType: "struct IMultiSourceLoan.Loan";
components: readonly [{
name: "borrower";
type: "address";
internalType: "address";
}, {
name: "nftCollateralTokenId";
type: "uint256";
internalType: "uint256";
}, {
name: "nftCollateralAddress";
type: "address";
internalType: "address";
}, {
name: "principalAddress";
type: "address";
internalType: "address";
}, {
name: "principalAmount";
type: "uint256";
internalType: "uint256";
}, {
name: "startTime";
type: "uint256";
internalType: "uint256";
}, {
name: "duration";
type: "uint256";
internalType: "uint256";
}, {
name: "tranche";
type: "tuple[]";
internalType: "struct IMultiSourceLoan.Tranche[]";
components: readonly [{
name: "loanId";
type: "uint256";
internalType: "uint256";
}, {
name: "floor";
type: "uint256";
internalType: "uint256";
}, {
name: "principalAmount";
type: "uint256";
internalType: "uint256";
}, {
name: "lender";
type: "address";
internalType: "address";
}, {
name: "accruedInterest";
type: "uint256";
internalType: "uint256";
}, {
name: "startTime";
type: "uint256";
internalType: "uint256";
}, {
name: "aprBps";
type: "uint256";
internalType: "uint256";
}];
}, {
name: "protocolFee";
type: "uint256";
internalType: "uint256";
}];
}, {
name: "_fee";
type: "uint256";
internalType: "uint256";
}, {
name: "_executionData";
type: "bytes";
internalType: "bytes";
}];
outputs: readonly [{
name: "";
type: "bytes4";
internalType: "bytes4";
}];
stateMutability: "nonpayable";
}, {
type: "function";
name: "buy";
inputs: readonly [{
name: "_executionData";
type: "bytes[]";
internalType: "bytes[]";
}];
outputs: readonly [{
name: "";
type: "uint256[]";
internalType: "uint256[]";
}, {
name: "";
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";
}];
}];
stateMutability: "payable";
}, {
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: "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: "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: "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: "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: "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: "InvalidAddressUpdateError";
inputs: readonly [];
}, {
type: "error";
name: "InvalidCallbackError";
inputs: readonly [];
}, {
type: "error";
name: "InvalidInputError";
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: "MarketplaceAddressNotWhitelisted";
inputs: readonly [];
}, {
type: "error";
name: "OnlyLoanCallableError";
inputs: readonly [];
}, {
type: "error";
name: "OnlyWethSupportedError";
inputs: readonly [];
}, {
type: "error";
name: "TooEarlyError";
inputs: readonly [{
name: "_pendingProtocolFeeSetTime";
type: "uint256";
internalType: "uint256";
}];
}, {
type: "error";
name: "TooSoonError";
inputs: readonly [];
}] = ...