import { TAddress } from '../../models/TAddress'; import { TAccount } from '../../models/TAccount'; import { ClientEventsStream, TClientEventsStreamData } from '../../clients/ClientEventsStream'; import { ContractBase } from '../../contracts/ContractBase'; import { TxWriter } from '../../txs/TxWriter'; import { ITxLogItem } from '../../txs/receipt/ITxLogItem'; import { Web3Client } from '../../clients/Web3Client'; import { IBlockchainExplorer } from '../../explorer/IBlockchainExplorer'; import { SubjectStream } from '../../class/SubjectStream'; import type { TAbiItem } from '../../types/TAbi'; import type { TEth } from '../../models/TEth'; import type { TOverrideReturns } from '../../utils/types'; export declare class ERC721Wrapper extends ContractBase { address: TEth.Address; client: Web3Client; explorer: IBlockchainExplorer; constructor(address?: TEth.Address, client?: Web3Client, explorer?: IBlockchainExplorer); Types: TERC721WrapperTypes; $meta: { class: string; }; approve(sender: TSender, to: TAddress, tokenId: bigint): Promise; balanceOf(owner: TAddress): Promise; depositFor(sender: TSender, account: TAddress, tokenIds: bigint[]): Promise; getApproved(tokenId: bigint): Promise; isApprovedForAll(owner: TAddress, operator: TAddress): Promise; name(): Promise; onERC721Received(sender: TSender, input0: TAddress, from: TAddress, tokenId: bigint, input3: TEth.Hex): Promise; ownerOf(tokenId: bigint): Promise; safeTransferFrom(sender: TSender, from: TAddress, to: TAddress, tokenId: bigint): Promise; safeTransferFrom(sender: TSender, from: TAddress, to: TAddress, tokenId: bigint, data: TEth.Hex): Promise; setApprovalForAll(sender: TSender, operator: TAddress, approved: boolean): Promise; supportsInterface(interfaceId: TEth.Hex): Promise; symbol(): Promise; tokenURI(tokenId: bigint): Promise; transferFrom(sender: TSender, from: TAddress, to: TAddress, tokenId: bigint): Promise; underlying(): Promise; withdrawTo(sender: TSender, account: TAddress, tokenIds: bigint[]): Promise; $call(): IERC721WrapperTxCaller; $signed(): TOverrideReturns>; $data(): IERC721WrapperTxData; $gas(): TOverrideReturns>; onTransaction(method: TMethod, options: Parameters[0]): SubjectStream<{ tx: TEth.Tx; block: TEth.Block; calldata: { method: TMethod; arguments: TERC721WrapperTypes['Methods'][TMethod]['arguments']; }; }>; onLog(event: keyof TEvents, cb?: (event: TClientEventsStreamData) => void): ClientEventsStream; getPastLogs(events: TEventName[], options?: TEventLogOptions>): Promise, TEventName>[]>; getPastLogs(event: TEventName, options?: TEventLogOptions>): Promise, TEventName>[]>; onApproval(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onApprovalForAll(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onTransfer(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; extractLogsApproval(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsApprovalForAll(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsTransfer(tx: TEth.TxReceipt): ITxLogItem>[]; getPastLogsApproval(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { owner?: TAddress; approved?: TAddress; tokenId?: bigint; }; }): Promise>[]>; getPastLogsApprovalForAll(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { owner?: TAddress; operator?: TAddress; }; }): Promise>[]>; getPastLogsTransfer(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { from?: TAddress; to?: TAddress; tokenId?: bigint; }; }): Promise>[]>; abi: TAbiItem[]; } type TSender = TAccount & { value?: string | number | bigint; }; type TEventLogOptions = { fromBlock?: number | Date; toBlock?: number | Date; params?: TParams; }; export type TERC721WrapperTypes = { Events: { Approval: { outputParams: { owner: TAddress; approved: TAddress; tokenId: bigint; }; outputArgs: [owner: TAddress, approved: TAddress, tokenId: bigint]; }; ApprovalForAll: { outputParams: { owner: TAddress; operator: TAddress; approved: boolean; }; outputArgs: [owner: TAddress, operator: TAddress, approved: boolean]; }; Transfer: { outputParams: { from: TAddress; to: TAddress; tokenId: bigint; }; outputArgs: [from: TAddress, to: TAddress, tokenId: bigint]; }; }; Methods: { approve: { method: "approve"; arguments: [to: TAddress, tokenId: bigint]; }; balanceOf: { method: "balanceOf"; arguments: [owner: TAddress]; }; depositFor: { method: "depositFor"; arguments: [account: TAddress, tokenIds: bigint[]]; }; getApproved: { method: "getApproved"; arguments: [tokenId: bigint]; }; isApprovedForAll: { method: "isApprovedForAll"; arguments: [owner: TAddress, operator: TAddress]; }; name: { method: "name"; arguments: []; }; onERC721Received: { method: "onERC721Received"; arguments: [input0: TAddress, from: TAddress, tokenId: bigint, input3: TEth.Hex]; }; ownerOf: { method: "ownerOf"; arguments: [tokenId: bigint]; }; safeTransferFrom: { method: "safeTransferFrom"; arguments: [from: TAddress, to: TAddress, tokenId: bigint] | [from: TAddress, to: TAddress, tokenId: bigint, data: TEth.Hex]; }; setApprovalForAll: { method: "setApprovalForAll"; arguments: [operator: TAddress, approved: boolean]; }; supportsInterface: { method: "supportsInterface"; arguments: [interfaceId: TEth.Hex]; }; symbol: { method: "symbol"; arguments: []; }; tokenURI: { method: "tokenURI"; arguments: [tokenId: bigint]; }; transferFrom: { method: "transferFrom"; arguments: [from: TAddress, to: TAddress, tokenId: bigint]; }; underlying: { method: "underlying"; arguments: []; }; withdrawTo: { method: "withdrawTo"; arguments: [account: TAddress, tokenIds: bigint[]]; }; }; }; interface IERC721WrapperTxCaller { approve(sender: TSender, to: TAddress, tokenId: bigint): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; depositFor(sender: TSender, account: TAddress, tokenIds: bigint[]): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; onERC721Received(sender: TSender, input0: TAddress, from: TAddress, tokenId: bigint, input3: TEth.Hex): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; safeTransferFrom(sender: TSender, from: TAddress, to: TAddress, tokenId: bigint): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; safeTransferFrom(sender: TSender, from: TAddress, to: TAddress, tokenId: bigint, data: TEth.Hex): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; setApprovalForAll(sender: TSender, operator: TAddress, approved: boolean): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; transferFrom(sender: TSender, from: TAddress, to: TAddress, tokenId: bigint): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; withdrawTo(sender: TSender, account: TAddress, tokenIds: bigint[]): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; } interface IERC721WrapperTxData { approve(sender: TSender, to: TAddress, tokenId: bigint): Promise; depositFor(sender: TSender, account: TAddress, tokenIds: bigint[]): Promise; onERC721Received(sender: TSender, input0: TAddress, from: TAddress, tokenId: bigint, input3: TEth.Hex): Promise; safeTransferFrom(sender: TSender, from: TAddress, to: TAddress, tokenId: bigint): Promise; safeTransferFrom(sender: TSender, from: TAddress, to: TAddress, tokenId: bigint, data: TEth.Hex): Promise; setApprovalForAll(sender: TSender, operator: TAddress, approved: boolean): Promise; transferFrom(sender: TSender, from: TAddress, to: TAddress, tokenId: bigint): Promise; withdrawTo(sender: TSender, account: TAddress, tokenIds: bigint[]): Promise; } type TEvents = TERC721WrapperTypes['Events']; type TEventParams = Partial; type TEventArguments = Partial; export {};