import { BaseContract, BigNumber, BigNumberish, BytesLike, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction, Signer, utils } from "ethers"; import { FunctionFragment, Result, EventFragment } from "@ethersproject/abi"; import { Listener, Provider } from "@ethersproject/providers"; import { TypedEventFilter, TypedEvent, TypedListener, OnEvent } from "./common"; export interface IERC721MetadataInterface extends utils.Interface { contractName: "IERC721Metadata"; functions: { "approve(address,uint256)": FunctionFragment; "balanceOf(address)": FunctionFragment; "getApproved(uint256)": FunctionFragment; "isApprovedForAll(address,address)": FunctionFragment; "ownerOf(uint256)": FunctionFragment; "safeTransferFrom(address,address,uint256)": FunctionFragment; "setApprovalForAll(address,bool)": FunctionFragment; "supportsInterface(bytes4)": FunctionFragment; "transferFrom(address,address,uint256)": FunctionFragment; "name()": FunctionFragment; "symbol()": FunctionFragment; "tokenURI(uint256)": FunctionFragment; }; encodeFunctionData(functionFragment: "approve", values: [string, BigNumberish]): string; encodeFunctionData(functionFragment: "balanceOf", values: [string]): string; encodeFunctionData(functionFragment: "getApproved", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "isApprovedForAll", values: [string, string]): string; encodeFunctionData(functionFragment: "ownerOf", values: [BigNumberish]): string; encodeFunctionData(functionFragment: "safeTransferFrom", values: [string, string, BigNumberish]): string; encodeFunctionData(functionFragment: "setApprovalForAll", values: [string, boolean]): string; encodeFunctionData(functionFragment: "supportsInterface", values: [BytesLike]): string; encodeFunctionData(functionFragment: "transferFrom", values: [string, string, BigNumberish]): string; encodeFunctionData(functionFragment: "name", values?: undefined): string; encodeFunctionData(functionFragment: "symbol", values?: undefined): string; encodeFunctionData(functionFragment: "tokenURI", values: [BigNumberish]): 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", data: BytesLike): Result; decodeFunctionResult(functionFragment: "setApprovalForAll", data: BytesLike): Result; decodeFunctionResult(functionFragment: "supportsInterface", data: BytesLike): Result; decodeFunctionResult(functionFragment: "transferFrom", data: BytesLike): Result; decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; decodeFunctionResult(functionFragment: "tokenURI", 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 declare type ApprovalEvent = TypedEvent<[ string, string, BigNumber ], { owner: string; approved: string; tokenId: BigNumber; }>; export declare type ApprovalEventFilter = TypedEventFilter; export declare type ApprovalForAllEvent = TypedEvent<[ string, string, boolean ], { owner: string; operator: string; approved: boolean; }>; export declare type ApprovalForAllEventFilter = TypedEventFilter; export declare type TransferEvent = TypedEvent<[ string, string, BigNumber ], { from: string; to: string; tokenId: BigNumber; }>; export declare type TransferEventFilter = TypedEventFilter; export interface IERC721Metadata extends BaseContract { contractName: "IERC721Metadata"; connect(signerOrProvider: Signer | Provider | string): this; attach(addressOrName: string): this; deployed(): Promise; interface: IERC721MetadataInterface; 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: string, tokenId: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): Promise; /** * Returns the number of tokens in ``owner``'s account. */ balanceOf(owner: string, overrides?: CallOverrides): Promise<[BigNumber] & { balance: BigNumber; }>; /** * Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist. */ getApproved(tokenId: BigNumberish, overrides?: CallOverrides): Promise<[string] & { operator: string; }>; /** * Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll} */ isApprovedForAll(owner: string, operator: string, overrides?: CallOverrides): Promise<[boolean]>; /** * Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist. */ ownerOf(tokenId: BigNumberish, 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: string, to: string, tokenId: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): 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: string, to: string, tokenId: BigNumberish, data: BytesLike, overrides?: Overrides & { from?: string | Promise; }): 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: string, _approved: boolean, overrides?: Overrides & { from?: string | Promise; }): 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: BytesLike, 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: string, to: string, tokenId: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): Promise; /** * Returns the token collection name. */ name(overrides?: CallOverrides): Promise<[string]>; /** * Returns the token collection symbol. */ symbol(overrides?: CallOverrides): Promise<[string]>; /** * Returns the Uniform Resource Identifier (URI) for `tokenId` token. */ tokenURI(tokenId: BigNumberish, overrides?: CallOverrides): Promise<[string]>; }; /** * 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: string, tokenId: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): Promise; /** * Returns the number of tokens in ``owner``'s account. */ balanceOf(owner: string, overrides?: CallOverrides): Promise; /** * Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist. */ getApproved(tokenId: BigNumberish, overrides?: CallOverrides): Promise; /** * Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll} */ isApprovedForAll(owner: string, operator: string, overrides?: CallOverrides): Promise; /** * Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist. */ ownerOf(tokenId: BigNumberish, 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: string, to: string, tokenId: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): 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: string, to: string, tokenId: BigNumberish, data: BytesLike, overrides?: Overrides & { from?: string | Promise; }): 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: string, _approved: boolean, overrides?: Overrides & { from?: string | Promise; }): 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: BytesLike, 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: string, to: string, tokenId: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): Promise; /** * Returns the token collection name. */ name(overrides?: CallOverrides): Promise; /** * Returns the token collection symbol. */ symbol(overrides?: CallOverrides): Promise; /** * Returns the Uniform Resource Identifier (URI) for `tokenId` token. */ tokenURI(tokenId: BigNumberish, 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: string, tokenId: BigNumberish, overrides?: CallOverrides): Promise; /** * Returns the number of tokens in ``owner``'s account. */ balanceOf(owner: string, overrides?: CallOverrides): Promise; /** * Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist. */ getApproved(tokenId: BigNumberish, overrides?: CallOverrides): Promise; /** * Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll} */ isApprovedForAll(owner: string, operator: string, overrides?: CallOverrides): Promise; /** * Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist. */ ownerOf(tokenId: BigNumberish, 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: string, to: string, tokenId: BigNumberish, 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: string, to: string, tokenId: BigNumberish, data: BytesLike, 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: string, _approved: boolean, 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: BytesLike, 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: string, to: string, tokenId: BigNumberish, overrides?: CallOverrides): Promise; /** * Returns the token collection name. */ name(overrides?: CallOverrides): Promise; /** * Returns the token collection symbol. */ symbol(overrides?: CallOverrides): Promise; /** * Returns the Uniform Resource Identifier (URI) for `tokenId` token. */ tokenURI(tokenId: BigNumberish, overrides?: CallOverrides): Promise; }; filters: { "Approval(address,address,uint256)"(owner?: string | null, approved?: string | null, tokenId?: BigNumberish | null): ApprovalEventFilter; Approval(owner?: string | null, approved?: string | null, tokenId?: BigNumberish | null): ApprovalEventFilter; "ApprovalForAll(address,address,bool)"(owner?: string | null, operator?: string | null, approved?: null): ApprovalForAllEventFilter; ApprovalForAll(owner?: string | null, operator?: string | null, approved?: null): ApprovalForAllEventFilter; "Transfer(address,address,uint256)"(from?: string | null, to?: string | null, tokenId?: BigNumberish | null): TransferEventFilter; Transfer(from?: string | null, to?: string | null, tokenId?: BigNumberish | 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: string, tokenId: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): Promise; /** * Returns the number of tokens in ``owner``'s account. */ balanceOf(owner: string, overrides?: CallOverrides): Promise; /** * Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist. */ getApproved(tokenId: BigNumberish, overrides?: CallOverrides): Promise; /** * Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll} */ isApprovedForAll(owner: string, operator: string, overrides?: CallOverrides): Promise; /** * Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist. */ ownerOf(tokenId: BigNumberish, 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: string, to: string, tokenId: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): 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: string, to: string, tokenId: BigNumberish, data: BytesLike, overrides?: Overrides & { from?: string | Promise; }): 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: string, _approved: boolean, overrides?: Overrides & { from?: string | Promise; }): 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: BytesLike, 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: string, to: string, tokenId: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): Promise; /** * Returns the token collection name. */ name(overrides?: CallOverrides): Promise; /** * Returns the token collection symbol. */ symbol(overrides?: CallOverrides): Promise; /** * Returns the Uniform Resource Identifier (URI) for `tokenId` token. */ tokenURI(tokenId: BigNumberish, 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: string, tokenId: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): Promise; /** * Returns the number of tokens in ``owner``'s account. */ balanceOf(owner: string, overrides?: CallOverrides): Promise; /** * Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist. */ getApproved(tokenId: BigNumberish, overrides?: CallOverrides): Promise; /** * Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll} */ isApprovedForAll(owner: string, operator: string, overrides?: CallOverrides): Promise; /** * Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist. */ ownerOf(tokenId: BigNumberish, 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: string, to: string, tokenId: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): 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: string, to: string, tokenId: BigNumberish, data: BytesLike, overrides?: Overrides & { from?: string | Promise; }): 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: string, _approved: boolean, overrides?: Overrides & { from?: string | Promise; }): 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: BytesLike, 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: string, to: string, tokenId: BigNumberish, overrides?: Overrides & { from?: string | Promise; }): Promise; /** * Returns the token collection name. */ name(overrides?: CallOverrides): Promise; /** * Returns the token collection symbol. */ symbol(overrides?: CallOverrides): Promise; /** * Returns the Uniform Resource Identifier (URI) for `tokenId` token. */ tokenURI(tokenId: BigNumberish, overrides?: CallOverrides): Promise; }; }