import type { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from "ethers"; import type { FunctionFragment, Result, EventFragment } from "@ethersproject/abi"; import type { Listener, Provider } from "@ethersproject/providers"; import type { TypedEventFilter, TypedEvent, TypedListener, OnEvent, PromiseOrValue } from "./common"; export interface IERC721EnumerableUpgradeableInterface extends utils.Interface { functions: { "approve(address,uint256)": FunctionFragment; "balanceOf(address)": FunctionFragment; "getApproved(uint256)": FunctionFragment; "isApprovedForAll(address,address)": FunctionFragment; "ownerOf(uint256)": FunctionFragment; "safeTransferFrom(address,address,uint256)": FunctionFragment; "safeTransferFrom(address,address,uint256,bytes)": FunctionFragment; "setApprovalForAll(address,bool)": FunctionFragment; "supportsInterface(bytes4)": FunctionFragment; "transferFrom(address,address,uint256)": FunctionFragment; "totalSupply()": FunctionFragment; "tokenOfOwnerByIndex(address,uint256)": FunctionFragment; "tokenByIndex(uint256)": FunctionFragment; }; getFunction(nameOrSignatureOrTopic: "approve" | "balanceOf" | "getApproved" | "isApprovedForAll" | "ownerOf" | "safeTransferFrom(address,address,uint256)" | "safeTransferFrom(address,address,uint256,bytes)" | "setApprovalForAll" | "supportsInterface" | "transferFrom" | "totalSupply" | "tokenOfOwnerByIndex" | "tokenByIndex"): FunctionFragment; encodeFunctionData(functionFragment: "approve", values: [PromiseOrValue, PromiseOrValue]): string; encodeFunctionData(functionFragment: "balanceOf", values: [PromiseOrValue]): string; encodeFunctionData(functionFragment: "getApproved", values: [PromiseOrValue]): string; encodeFunctionData(functionFragment: "isApprovedForAll", values: [PromiseOrValue, PromiseOrValue]): string; encodeFunctionData(functionFragment: "ownerOf", values: [PromiseOrValue]): string; encodeFunctionData(functionFragment: "safeTransferFrom(address,address,uint256)", values: [ PromiseOrValue, PromiseOrValue, PromiseOrValue ]): string; encodeFunctionData(functionFragment: "safeTransferFrom(address,address,uint256,bytes)", values: [ PromiseOrValue, PromiseOrValue, PromiseOrValue, PromiseOrValue ]): string; encodeFunctionData(functionFragment: "setApprovalForAll", values: [PromiseOrValue, PromiseOrValue]): string; encodeFunctionData(functionFragment: "supportsInterface", values: [PromiseOrValue]): string; encodeFunctionData(functionFragment: "transferFrom", values: [ PromiseOrValue, PromiseOrValue, PromiseOrValue ]): string; encodeFunctionData(functionFragment: "totalSupply", values?: undefined): string; encodeFunctionData(functionFragment: "tokenOfOwnerByIndex", values: [PromiseOrValue, PromiseOrValue]): string; encodeFunctionData(functionFragment: "tokenByIndex", values: [PromiseOrValue]): string; decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; decodeFunctionResult(functionFragment: "getApproved", data: BytesLike): Result; decodeFunctionResult(functionFragment: "isApprovedForAll", data: BytesLike): Result; decodeFunctionResult(functionFragment: "ownerOf", data: BytesLike): Result; decodeFunctionResult(functionFragment: "safeTransferFrom(address,address,uint256)", data: BytesLike): Result; decodeFunctionResult(functionFragment: "safeTransferFrom(address,address,uint256,bytes)", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setApprovalForAll", data: BytesLike): Result; decodeFunctionResult(functionFragment: "supportsInterface", data: BytesLike): Result; decodeFunctionResult(functionFragment: "transferFrom", data: BytesLike): Result; decodeFunctionResult(functionFragment: "totalSupply", data: BytesLike): Result; decodeFunctionResult(functionFragment: "tokenOfOwnerByIndex", data: BytesLike): Result; decodeFunctionResult(functionFragment: "tokenByIndex", data: BytesLike): Result; events: { "Approval(address,address,uint256)": EventFragment; "ApprovalForAll(address,address,bool)": EventFragment; "Transfer(address,address,uint256)": EventFragment; }; getEvent(nameOrSignatureOrTopic: "Approval"): EventFragment; getEvent(nameOrSignatureOrTopic: "ApprovalForAll"): EventFragment; getEvent(nameOrSignatureOrTopic: "Transfer"): EventFragment; } export interface ApprovalEventObject { owner: string; approved: string; tokenId: BigNumber; } export type ApprovalEvent = TypedEvent<[ string, string, BigNumber ], ApprovalEventObject>; export type ApprovalEventFilter = TypedEventFilter; export interface ApprovalForAllEventObject { owner: string; operator: string; approved: boolean; } export type ApprovalForAllEvent = TypedEvent<[ string, string, boolean ], ApprovalForAllEventObject>; export type ApprovalForAllEventFilter = TypedEventFilter; export interface TransferEventObject { from: string; to: string; tokenId: BigNumber; } export type TransferEvent = TypedEvent<[ string, string, BigNumber ], TransferEventObject>; export type TransferEventFilter = TypedEventFilter; export interface IERC721EnumerableUpgradeable extends BaseContract { connect(signerOrProvider: Signer | Provider | string): this; attach(addressOrName: string): this; deployed(): Promise; interface: IERC721EnumerableUpgradeableInterface; queryFilter(event: TypedEventFilter, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise>; listeners(eventFilter?: TypedEventFilter): Array>; listeners(eventName?: string): Array; removeAllListeners(eventFilter: TypedEventFilter): this; removeAllListeners(eventName?: string): this; off: OnEvent; on: OnEvent; once: OnEvent; removeListener: OnEvent; functions: { /** * Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event. */ approve(to: PromiseOrValue, tokenId: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Returns the number of tokens in ``owner``'s account. */ balanceOf(owner: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber] & { balance: BigNumber; }>; /** * Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist. */ getApproved(tokenId: PromiseOrValue, overrides?: CallOverrides): Promise<[string] & { operator: string; }>; /** * Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll} */ isApprovedForAll(owner: PromiseOrValue, operator: PromiseOrValue, overrides?: CallOverrides): Promise<[boolean]>; /** * Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist. */ ownerOf(tokenId: PromiseOrValue, overrides?: CallOverrides): Promise<[string] & { owner: string; }>; /** * Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event. */ "safeTransferFrom(address,address,uint256)"(from: PromiseOrValue, to: PromiseOrValue, tokenId: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event. */ "safeTransferFrom(address,address,uint256,bytes)"(from: PromiseOrValue, to: PromiseOrValue, tokenId: PromiseOrValue, data: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event. */ setApprovalForAll(operator: PromiseOrValue, _approved: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas. */ supportsInterface(interfaceId: PromiseOrValue, overrides?: CallOverrides): Promise<[boolean]>; /** * Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event. */ transferFrom(from: PromiseOrValue, to: PromiseOrValue, tokenId: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Returns the total amount of tokens stored by the contract. */ totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>; /** * Returns a token ID owned by `owner` at a given `index` of its token list. Use along with {balanceOf} to enumerate all of ``owner``'s tokens. */ tokenOfOwnerByIndex(owner: PromiseOrValue, index: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber] & { tokenId: BigNumber; }>; /** * Returns a token ID at a given `index` of all the tokens stored by the contract. Use along with {totalSupply} to enumerate all tokens. */ tokenByIndex(index: PromiseOrValue, overrides?: CallOverrides): Promise<[BigNumber]>; }; /** * Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event. */ approve(to: PromiseOrValue, tokenId: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Returns the number of tokens in ``owner``'s account. */ balanceOf(owner: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist. */ getApproved(tokenId: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll} */ isApprovedForAll(owner: PromiseOrValue, operator: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist. */ ownerOf(tokenId: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event. */ "safeTransferFrom(address,address,uint256)"(from: PromiseOrValue, to: PromiseOrValue, tokenId: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event. */ "safeTransferFrom(address,address,uint256,bytes)"(from: PromiseOrValue, to: PromiseOrValue, tokenId: PromiseOrValue, data: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event. */ setApprovalForAll(operator: PromiseOrValue, _approved: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas. */ supportsInterface(interfaceId: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event. */ transferFrom(from: PromiseOrValue, to: PromiseOrValue, tokenId: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Returns the total amount of tokens stored by the contract. */ totalSupply(overrides?: CallOverrides): Promise; /** * Returns a token ID owned by `owner` at a given `index` of its token list. Use along with {balanceOf} to enumerate all of ``owner``'s tokens. */ tokenOfOwnerByIndex(owner: PromiseOrValue, index: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Returns a token ID at a given `index` of all the tokens stored by the contract. Use along with {totalSupply} to enumerate all tokens. */ tokenByIndex(index: PromiseOrValue, overrides?: CallOverrides): Promise; callStatic: { /** * Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event. */ approve(to: PromiseOrValue, tokenId: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Returns the number of tokens in ``owner``'s account. */ balanceOf(owner: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist. */ getApproved(tokenId: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll} */ isApprovedForAll(owner: PromiseOrValue, operator: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist. */ ownerOf(tokenId: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event. */ "safeTransferFrom(address,address,uint256)"(from: PromiseOrValue, to: PromiseOrValue, tokenId: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event. */ "safeTransferFrom(address,address,uint256,bytes)"(from: PromiseOrValue, to: PromiseOrValue, tokenId: PromiseOrValue, data: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event. */ setApprovalForAll(operator: PromiseOrValue, _approved: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas. */ supportsInterface(interfaceId: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event. */ transferFrom(from: PromiseOrValue, to: PromiseOrValue, tokenId: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Returns the total amount of tokens stored by the contract. */ totalSupply(overrides?: CallOverrides): Promise; /** * Returns a token ID owned by `owner` at a given `index` of its token list. Use along with {balanceOf} to enumerate all of ``owner``'s tokens. */ tokenOfOwnerByIndex(owner: PromiseOrValue, index: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Returns a token ID at a given `index` of all the tokens stored by the contract. Use along with {totalSupply} to enumerate all tokens. */ tokenByIndex(index: PromiseOrValue, overrides?: CallOverrides): Promise; }; filters: { "Approval(address,address,uint256)"(owner?: PromiseOrValue | null, approved?: PromiseOrValue | null, tokenId?: PromiseOrValue | null): ApprovalEventFilter; Approval(owner?: PromiseOrValue | null, approved?: PromiseOrValue | null, tokenId?: PromiseOrValue | null): ApprovalEventFilter; "ApprovalForAll(address,address,bool)"(owner?: PromiseOrValue | null, operator?: PromiseOrValue | null, approved?: null): ApprovalForAllEventFilter; ApprovalForAll(owner?: PromiseOrValue | null, operator?: PromiseOrValue | null, approved?: null): ApprovalForAllEventFilter; "Transfer(address,address,uint256)"(from?: PromiseOrValue | null, to?: PromiseOrValue | null, tokenId?: PromiseOrValue | null): TransferEventFilter; Transfer(from?: PromiseOrValue | null, to?: PromiseOrValue | null, tokenId?: PromiseOrValue | null): TransferEventFilter; }; estimateGas: { /** * Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event. */ approve(to: PromiseOrValue, tokenId: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Returns the number of tokens in ``owner``'s account. */ balanceOf(owner: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist. */ getApproved(tokenId: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll} */ isApprovedForAll(owner: PromiseOrValue, operator: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist. */ ownerOf(tokenId: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event. */ "safeTransferFrom(address,address,uint256)"(from: PromiseOrValue, to: PromiseOrValue, tokenId: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event. */ "safeTransferFrom(address,address,uint256,bytes)"(from: PromiseOrValue, to: PromiseOrValue, tokenId: PromiseOrValue, data: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event. */ setApprovalForAll(operator: PromiseOrValue, _approved: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas. */ supportsInterface(interfaceId: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event. */ transferFrom(from: PromiseOrValue, to: PromiseOrValue, tokenId: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Returns the total amount of tokens stored by the contract. */ totalSupply(overrides?: CallOverrides): Promise; /** * Returns a token ID owned by `owner` at a given `index` of its token list. Use along with {balanceOf} to enumerate all of ``owner``'s tokens. */ tokenOfOwnerByIndex(owner: PromiseOrValue, index: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Returns a token ID at a given `index` of all the tokens stored by the contract. Use along with {totalSupply} to enumerate all tokens. */ tokenByIndex(index: PromiseOrValue, overrides?: CallOverrides): Promise; }; populateTransaction: { /** * Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event. */ approve(to: PromiseOrValue, tokenId: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Returns the number of tokens in ``owner``'s account. */ balanceOf(owner: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist. */ getApproved(tokenId: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll} */ isApprovedForAll(owner: PromiseOrValue, operator: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist. */ ownerOf(tokenId: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event. */ "safeTransferFrom(address,address,uint256)"(from: PromiseOrValue, to: PromiseOrValue, tokenId: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event. */ "safeTransferFrom(address,address,uint256,bytes)"(from: PromiseOrValue, to: PromiseOrValue, tokenId: PromiseOrValue, data: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event. */ setApprovalForAll(operator: PromiseOrValue, _approved: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas. */ supportsInterface(interfaceId: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event. */ transferFrom(from: PromiseOrValue, to: PromiseOrValue, tokenId: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; /** * Returns the total amount of tokens stored by the contract. */ totalSupply(overrides?: CallOverrides): Promise; /** * Returns a token ID owned by `owner` at a given `index` of its token list. Use along with {balanceOf} to enumerate all of ``owner``'s tokens. */ tokenOfOwnerByIndex(owner: PromiseOrValue, index: PromiseOrValue, overrides?: CallOverrides): Promise; /** * Returns a token ID at a given `index` of all the tokens stored by the contract. Use along with {totalSupply} to enumerate all tokens. */ tokenByIndex(index: PromiseOrValue, overrides?: CallOverrides): Promise; }; }