import { TAddress } from '../../../models/TAddress'; import { TAccount } from '../../../models/TAccount'; import { ClientEventsStream, TClientEventsStreamData } from '../../../clients/ClientEventsStream'; import { ContractBase } from '../../../contracts/ContractBase'; import { ContractStorageReaderBase } from '../../../contracts/ContractStorageReaderBase'; 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 EnsRegistry extends ContractBase { address: TEth.Address; client: Web3Client; explorer: IBlockchainExplorer; constructor(address?: TEth.Address, client?: Web3Client, explorer?: IBlockchainExplorer); Types: TEnsRegistryTypes; $meta: { class: string; }; $constructor(deployer: TSender, _old: TAddress): Promise; isApprovedForAll(owner: TAddress, operator: TAddress): Promise; old(): Promise; owner(node: TEth.Hex): Promise; recordExists(node: TEth.Hex): Promise; resolver(node: TEth.Hex): Promise; setApprovalForAll(sender: TSender, operator: TAddress, approved: boolean): Promise; setOwner(sender: TSender, node: TEth.Hex, owner: TAddress): Promise; setRecord(sender: TSender, node: TEth.Hex, owner: TAddress, resolver: TAddress, ttl: number): Promise; setResolver(sender: TSender, node: TEth.Hex, resolver: TAddress): Promise; setSubnodeOwner(sender: TSender, node: TEth.Hex, label: TEth.Hex, owner: TAddress): Promise; setSubnodeRecord(sender: TSender, node: TEth.Hex, label: TEth.Hex, owner: TAddress, resolver: TAddress, ttl: number): Promise; setTTL(sender: TSender, node: TEth.Hex, ttl: number): Promise; ttl(node: TEth.Hex): Promise; $call(): IEnsRegistryTxCaller; $signed(): TOverrideReturns>; $data(): IEnsRegistryTxData; $gas(): TOverrideReturns>; onTransaction(method: TMethod, options: Parameters[0]): SubjectStream<{ tx: TEth.Tx; block: TEth.Block; calldata: { method: TMethod; arguments: TEnsRegistryTypes['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>[]>; onApprovalForAll(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onNewOwner(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onNewResolver(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onNewTTL(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onTransfer(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; extractLogsApprovalForAll(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsNewOwner(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsNewResolver(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsNewTTL(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsTransfer(tx: TEth.TxReceipt): ITxLogItem>[]; getPastLogsApprovalForAll(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { owner?: TAddress; operator?: TAddress; }; }): Promise>[]>; getPastLogsNewOwner(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { node?: TEth.Hex; label?: TEth.Hex; }; }): Promise>[]>; getPastLogsNewResolver(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { node?: TEth.Hex; }; }): Promise>[]>; getPastLogsNewTTL(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { node?: TEth.Hex; }; }): Promise>[]>; getPastLogsTransfer(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { node?: TEth.Hex; }; }): Promise>[]>; abi: TAbiItem[]; storage: EnsRegistryStorageReader; } type TSender = TAccount & { value?: string | number | bigint; }; type TEventLogOptions = { fromBlock?: number | Date; toBlock?: number | Date; params?: TParams; }; export type TEnsRegistryTypes = { Events: { ApprovalForAll: { outputParams: { owner: TAddress; operator: TAddress; approved: boolean; }; outputArgs: [owner: TAddress, operator: TAddress, approved: boolean]; }; NewOwner: { outputParams: { node: TEth.Hex; label: TEth.Hex; owner: TAddress; }; outputArgs: [node: TEth.Hex, label: TEth.Hex, owner: TAddress]; }; NewResolver: { outputParams: { node: TEth.Hex; resolver: TAddress; }; outputArgs: [node: TEth.Hex, resolver: TAddress]; }; NewTTL: { outputParams: { node: TEth.Hex; ttl: number; }; outputArgs: [node: TEth.Hex, ttl: number]; }; Transfer: { outputParams: { node: TEth.Hex; owner: TAddress; }; outputArgs: [node: TEth.Hex, owner: TAddress]; }; }; Methods: { isApprovedForAll: { method: "isApprovedForAll"; arguments: [owner: TAddress, operator: TAddress]; }; old: { method: "old"; arguments: []; }; owner: { method: "owner"; arguments: [node: TEth.Hex]; }; recordExists: { method: "recordExists"; arguments: [node: TEth.Hex]; }; resolver: { method: "resolver"; arguments: [node: TEth.Hex]; }; setApprovalForAll: { method: "setApprovalForAll"; arguments: [operator: TAddress, approved: boolean]; }; setOwner: { method: "setOwner"; arguments: [node: TEth.Hex, owner: TAddress]; }; setRecord: { method: "setRecord"; arguments: [node: TEth.Hex, owner: TAddress, resolver: TAddress, ttl: number]; }; setResolver: { method: "setResolver"; arguments: [node: TEth.Hex, resolver: TAddress]; }; setSubnodeOwner: { method: "setSubnodeOwner"; arguments: [node: TEth.Hex, label: TEth.Hex, owner: TAddress]; }; setSubnodeRecord: { method: "setSubnodeRecord"; arguments: [node: TEth.Hex, label: TEth.Hex, owner: TAddress, resolver: TAddress, ttl: number]; }; setTTL: { method: "setTTL"; arguments: [node: TEth.Hex, ttl: number]; }; ttl: { method: "ttl"; arguments: [node: TEth.Hex]; }; }; }; declare class EnsRegistryStorageReader extends ContractStorageReaderBase { address: TAddress; client: Web3Client; explorer: IBlockchainExplorer; constructor(address: TAddress, client: Web3Client, explorer: IBlockchainExplorer); records(key: TEth.Hex): Promise<{ owner: TAddress; resolver: TAddress; ttl: number; }>; operators(key: TAddress): Promise>; old(): Promise; $slots: { slot: number; position: number; name: string; size: number; type: string; }[]; } interface IEnsRegistryTxCaller { setApprovalForAll(sender: TSender, operator: TAddress, approved: boolean): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; setOwner(sender: TSender, node: TEth.Hex, owner: TAddress): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; setRecord(sender: TSender, node: TEth.Hex, owner: TAddress, resolver: TAddress, ttl: number): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; setResolver(sender: TSender, node: TEth.Hex, resolver: TAddress): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; setSubnodeOwner(sender: TSender, node: TEth.Hex, label: TEth.Hex, owner: TAddress): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; setSubnodeRecord(sender: TSender, node: TEth.Hex, label: TEth.Hex, owner: TAddress, resolver: TAddress, ttl: number): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; setTTL(sender: TSender, node: TEth.Hex, ttl: number): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; } interface IEnsRegistryTxData { setApprovalForAll(sender: TSender, operator: TAddress, approved: boolean): Promise; setOwner(sender: TSender, node: TEth.Hex, owner: TAddress): Promise; setRecord(sender: TSender, node: TEth.Hex, owner: TAddress, resolver: TAddress, ttl: number): Promise; setResolver(sender: TSender, node: TEth.Hex, resolver: TAddress): Promise; setSubnodeOwner(sender: TSender, node: TEth.Hex, label: TEth.Hex, owner: TAddress): Promise; setSubnodeRecord(sender: TSender, node: TEth.Hex, label: TEth.Hex, owner: TAddress, resolver: TAddress, ttl: number): Promise; setTTL(sender: TSender, node: TEth.Hex, ttl: number): Promise; } type TEvents = TEnsRegistryTypes['Events']; type TEventParams = Partial; type TEventArguments = Partial; export {};