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 EnsPublicResolver extends ContractBase { address: TEth.Address; client: Web3Client; explorer: IBlockchainExplorer; constructor(address?: TEth.Address, client?: Web3Client, explorer?: IBlockchainExplorer); Types: TEnsPublicResolverTypes; $meta: { class: string; }; $constructor(deployer: TSender, _ens: TAddress, wrapperAddress: TAddress, _trustedETHController: TAddress, _trustedReverseRegistrar: TAddress): Promise; ABI(node: TEth.Hex, contentTypes: bigint): Promise<[bigint, TEth.Hex]>; addr(node: TEth.Hex): Promise; addr(node: TEth.Hex, coinType: bigint): Promise; approve(sender: TSender, node: TEth.Hex, delegate: TAddress, approved: boolean): Promise; clearRecords(sender: TSender, node: TEth.Hex): Promise; contenthash(node: TEth.Hex): Promise; dnsRecord(node: TEth.Hex, name: TEth.Hex, resource: number): Promise; hasDNSRecords(node: TEth.Hex, name: TEth.Hex): Promise; interfaceImplementer(node: TEth.Hex, interfaceID: TEth.Hex): Promise; isApprovedFor(owner: TAddress, node: TEth.Hex, delegate: TAddress): Promise; isApprovedForAll(account: TAddress, operator: TAddress): Promise; multicall(sender: TSender, data: TEth.Hex[]): Promise; multicallWithNodeCheck(sender: TSender, nodehash: TEth.Hex, data: TEth.Hex[]): Promise; name(node: TEth.Hex): Promise; pubkey(node: TEth.Hex): Promise<{ x: TEth.Hex; y: TEth.Hex; }>; recordVersions(input0: TEth.Hex): Promise; setABI(sender: TSender, node: TEth.Hex, contentType: bigint, data: TEth.Hex): Promise; setAddr(sender: TSender, node: TEth.Hex, coinType: bigint, a: TEth.Hex): Promise; setAddr(sender: TSender, node: TEth.Hex, a: TAddress): Promise; setApprovalForAll(sender: TSender, operator: TAddress, approved: boolean): Promise; setContenthash(sender: TSender, node: TEth.Hex, hash: TEth.Hex): Promise; setDNSRecords(sender: TSender, node: TEth.Hex, data: TEth.Hex): Promise; setInterface(sender: TSender, node: TEth.Hex, interfaceID: TEth.Hex, implementer: TAddress): Promise; setName(sender: TSender, node: TEth.Hex, newName: string): Promise; setPubkey(sender: TSender, node: TEth.Hex, x: TEth.Hex, y: TEth.Hex): Promise; setText(sender: TSender, node: TEth.Hex, key: string, value: string): Promise; setZonehash(sender: TSender, node: TEth.Hex, hash: TEth.Hex): Promise; supportsInterface(interfaceID: TEth.Hex): Promise; text(node: TEth.Hex, key: string): Promise; zonehash(node: TEth.Hex): Promise; $call(): IEnsPublicResolverTxCaller; $signed(): TOverrideReturns>; $data(): IEnsPublicResolverTxData; $gas(): TOverrideReturns>; onTransaction(method: TMethod, options: Parameters[0]): SubjectStream<{ tx: TEth.Tx; block: TEth.Block; calldata: { method: TMethod; arguments: TEnsPublicResolverTypes['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>[]>; onABIChanged(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onAddrChanged(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onAddressChanged(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onApprovalForAll(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onApproved(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onContenthashChanged(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onDNSRecordChanged(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onDNSRecordDeleted(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onDNSZonehashChanged(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onInterfaceChanged(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onNameChanged(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onPubkeyChanged(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onTextChanged(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onVersionChanged(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; extractLogsABIChanged(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsAddrChanged(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsAddressChanged(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsApprovalForAll(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsApproved(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsContenthashChanged(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsDNSRecordChanged(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsDNSRecordDeleted(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsDNSZonehashChanged(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsInterfaceChanged(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsNameChanged(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsPubkeyChanged(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsTextChanged(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsVersionChanged(tx: TEth.TxReceipt): ITxLogItem>[]; getPastLogsABIChanged(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { node?: TEth.Hex; contentType?: bigint; }; }): Promise>[]>; getPastLogsAddrChanged(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { node?: TEth.Hex; }; }): Promise>[]>; getPastLogsAddressChanged(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { node?: TEth.Hex; }; }): Promise>[]>; getPastLogsApprovalForAll(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { owner?: TAddress; operator?: TAddress; }; }): Promise>[]>; getPastLogsApproved(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: {}; }): Promise>[]>; getPastLogsContenthashChanged(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { node?: TEth.Hex; }; }): Promise>[]>; getPastLogsDNSRecordChanged(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { node?: TEth.Hex; }; }): Promise>[]>; getPastLogsDNSRecordDeleted(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { node?: TEth.Hex; }; }): Promise>[]>; getPastLogsDNSZonehashChanged(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { node?: TEth.Hex; }; }): Promise>[]>; getPastLogsInterfaceChanged(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { node?: TEth.Hex; interfaceID?: TEth.Hex; }; }): Promise>[]>; getPastLogsNameChanged(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { node?: TEth.Hex; }; }): Promise>[]>; getPastLogsPubkeyChanged(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { node?: TEth.Hex; }; }): Promise>[]>; getPastLogsTextChanged(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { node?: TEth.Hex; indexedKey?: string; }; }): Promise>[]>; getPastLogsVersionChanged(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { node?: TEth.Hex; }; }): Promise>[]>; abi: TAbiItem[]; storage: EnsPublicResolverStorageReader; } type TSender = TAccount & { value?: string | number | bigint; }; type TEventLogOptions = { fromBlock?: number | Date; toBlock?: number | Date; params?: TParams; }; export type TEnsPublicResolverTypes = { Events: { ABIChanged: { outputParams: { node: TEth.Hex; contentType: bigint; }; outputArgs: [node: TEth.Hex, contentType: bigint]; }; AddrChanged: { outputParams: { node: TEth.Hex; a: TAddress; }; outputArgs: [node: TEth.Hex, a: TAddress]; }; AddressChanged: { outputParams: { node: TEth.Hex; coinType: bigint; newAddress: TEth.Hex; }; outputArgs: [node: TEth.Hex, coinType: bigint, newAddress: TEth.Hex]; }; ApprovalForAll: { outputParams: { owner: TAddress; operator: TAddress; approved: boolean; }; outputArgs: [owner: TAddress, operator: TAddress, approved: boolean]; }; Approved: { outputParams: { owner: TAddress; node: TEth.Hex; delegate: TAddress; approved: boolean; }; outputArgs: [owner: TAddress, node: TEth.Hex, delegate: TAddress, approved: boolean]; }; ContenthashChanged: { outputParams: { node: TEth.Hex; hash: TEth.Hex; }; outputArgs: [node: TEth.Hex, hash: TEth.Hex]; }; DNSRecordChanged: { outputParams: { node: TEth.Hex; name: TEth.Hex; resource: number; record: TEth.Hex; }; outputArgs: [node: TEth.Hex, name: TEth.Hex, resource: number, record: TEth.Hex]; }; DNSRecordDeleted: { outputParams: { node: TEth.Hex; name: TEth.Hex; resource: number; }; outputArgs: [node: TEth.Hex, name: TEth.Hex, resource: number]; }; DNSZonehashChanged: { outputParams: { node: TEth.Hex; lastzonehash: TEth.Hex; zonehash: TEth.Hex; }; outputArgs: [node: TEth.Hex, lastzonehash: TEth.Hex, zonehash: TEth.Hex]; }; InterfaceChanged: { outputParams: { node: TEth.Hex; interfaceID: TEth.Hex; implementer: TAddress; }; outputArgs: [node: TEth.Hex, interfaceID: TEth.Hex, implementer: TAddress]; }; NameChanged: { outputParams: { node: TEth.Hex; name: string; }; outputArgs: [node: TEth.Hex, name: string]; }; PubkeyChanged: { outputParams: { node: TEth.Hex; x: TEth.Hex; y: TEth.Hex; }; outputArgs: [node: TEth.Hex, x: TEth.Hex, y: TEth.Hex]; }; TextChanged: { outputParams: { node: TEth.Hex; indexedKey: string; key: string; value: string; }; outputArgs: [node: TEth.Hex, indexedKey: string, key: string, value: string]; }; VersionChanged: { outputParams: { node: TEth.Hex; newVersion: number; }; outputArgs: [node: TEth.Hex, newVersion: number]; }; }; Methods: { ABI: { method: "ABI"; arguments: [node: TEth.Hex, contentTypes: bigint]; }; addr: { method: "addr"; arguments: [node: TEth.Hex] | [node: TEth.Hex, coinType: bigint]; }; approve: { method: "approve"; arguments: [node: TEth.Hex, delegate: TAddress, approved: boolean]; }; clearRecords: { method: "clearRecords"; arguments: [node: TEth.Hex]; }; contenthash: { method: "contenthash"; arguments: [node: TEth.Hex]; }; dnsRecord: { method: "dnsRecord"; arguments: [node: TEth.Hex, name: TEth.Hex, resource: number]; }; hasDNSRecords: { method: "hasDNSRecords"; arguments: [node: TEth.Hex, name: TEth.Hex]; }; interfaceImplementer: { method: "interfaceImplementer"; arguments: [node: TEth.Hex, interfaceID: TEth.Hex]; }; isApprovedFor: { method: "isApprovedFor"; arguments: [owner: TAddress, node: TEth.Hex, delegate: TAddress]; }; isApprovedForAll: { method: "isApprovedForAll"; arguments: [account: TAddress, operator: TAddress]; }; multicall: { method: "multicall"; arguments: [data: TEth.Hex[]]; }; multicallWithNodeCheck: { method: "multicallWithNodeCheck"; arguments: [nodehash: TEth.Hex, data: TEth.Hex[]]; }; name: { method: "name"; arguments: [node: TEth.Hex]; }; pubkey: { method: "pubkey"; arguments: [node: TEth.Hex]; }; recordVersions: { method: "recordVersions"; arguments: [input0: TEth.Hex]; }; setABI: { method: "setABI"; arguments: [node: TEth.Hex, contentType: bigint, data: TEth.Hex]; }; setAddr: { method: "setAddr"; arguments: [node: TEth.Hex, coinType: bigint, a: TEth.Hex] | [node: TEth.Hex, a: TAddress]; }; setApprovalForAll: { method: "setApprovalForAll"; arguments: [operator: TAddress, approved: boolean]; }; setContenthash: { method: "setContenthash"; arguments: [node: TEth.Hex, hash: TEth.Hex]; }; setDNSRecords: { method: "setDNSRecords"; arguments: [node: TEth.Hex, data: TEth.Hex]; }; setInterface: { method: "setInterface"; arguments: [node: TEth.Hex, interfaceID: TEth.Hex, implementer: TAddress]; }; setName: { method: "setName"; arguments: [node: TEth.Hex, newName: string]; }; setPubkey: { method: "setPubkey"; arguments: [node: TEth.Hex, x: TEth.Hex, y: TEth.Hex]; }; setText: { method: "setText"; arguments: [node: TEth.Hex, key: string, value: string]; }; setZonehash: { method: "setZonehash"; arguments: [node: TEth.Hex, hash: TEth.Hex]; }; supportsInterface: { method: "supportsInterface"; arguments: [interfaceID: TEth.Hex]; }; text: { method: "text"; arguments: [node: TEth.Hex, key: string]; }; zonehash: { method: "zonehash"; arguments: [node: TEth.Hex]; }; }; }; declare class EnsPublicResolverStorageReader extends ContractStorageReaderBase { address: TAddress; client: Web3Client; explorer: IBlockchainExplorer; constructor(address: TAddress, client: Web3Client, explorer: IBlockchainExplorer); recordVersions(key: TEth.Hex): Promise; versionable_abis(key: number): Promise>>; versionable_addresses(key: number): Promise>>; versionable_hashes(key: number): Promise>; versionable_zonehashes(key: number): Promise>; versionable_records(key: number): Promise>>>; versionable_nameEntriesCount(key: number): Promise>>; versionable_interfaces(key: number): Promise>>; versionable_names(key: number): Promise>; versionable_pubkeys(key: number): Promise>; versionable_texts(key: number): Promise>>; _operatorApprovals(key: TAddress): Promise>; _tokenApprovals(key: TAddress): Promise>>; $slots: { slot: number; position: number; name: string; size: any; type: string; }[]; } interface IEnsPublicResolverTxCaller { approve(sender: TSender, node: TEth.Hex, delegate: TAddress, approved: boolean): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; clearRecords(sender: TSender, node: TEth.Hex): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; multicall(sender: TSender, data: TEth.Hex[]): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; multicallWithNodeCheck(sender: TSender, nodehash: TEth.Hex, data: TEth.Hex[]): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; setABI(sender: TSender, node: TEth.Hex, contentType: bigint, data: TEth.Hex): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; setAddr(sender: TSender, node: TEth.Hex, coinType: bigint, a: TEth.Hex): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; setAddr(sender: TSender, node: TEth.Hex, a: TAddress): 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; }>; setContenthash(sender: TSender, node: TEth.Hex, hash: TEth.Hex): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; setDNSRecords(sender: TSender, node: TEth.Hex, data: TEth.Hex): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; setInterface(sender: TSender, node: TEth.Hex, interfaceID: TEth.Hex, implementer: TAddress): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; setName(sender: TSender, node: TEth.Hex, newName: string): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; setPubkey(sender: TSender, node: TEth.Hex, x: TEth.Hex, y: TEth.Hex): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; setText(sender: TSender, node: TEth.Hex, key: string, value: string): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; setZonehash(sender: TSender, node: TEth.Hex, hash: TEth.Hex): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; } interface IEnsPublicResolverTxData { approve(sender: TSender, node: TEth.Hex, delegate: TAddress, approved: boolean): Promise; clearRecords(sender: TSender, node: TEth.Hex): Promise; multicall(sender: TSender, data: TEth.Hex[]): Promise; multicallWithNodeCheck(sender: TSender, nodehash: TEth.Hex, data: TEth.Hex[]): Promise; setABI(sender: TSender, node: TEth.Hex, contentType: bigint, data: TEth.Hex): Promise; setAddr(sender: TSender, node: TEth.Hex, coinType: bigint, a: TEth.Hex): Promise; setAddr(sender: TSender, node: TEth.Hex, a: TAddress): Promise; setApprovalForAll(sender: TSender, operator: TAddress, approved: boolean): Promise; setContenthash(sender: TSender, node: TEth.Hex, hash: TEth.Hex): Promise; setDNSRecords(sender: TSender, node: TEth.Hex, data: TEth.Hex): Promise; setInterface(sender: TSender, node: TEth.Hex, interfaceID: TEth.Hex, implementer: TAddress): Promise; setName(sender: TSender, node: TEth.Hex, newName: string): Promise; setPubkey(sender: TSender, node: TEth.Hex, x: TEth.Hex, y: TEth.Hex): Promise; setText(sender: TSender, node: TEth.Hex, key: string, value: string): Promise; setZonehash(sender: TSender, node: TEth.Hex, hash: TEth.Hex): Promise; } type TEvents = TEnsPublicResolverTypes['Events']; type TEventParams = Partial; type TEventArguments = Partial; export {};