import type { EventFragment, FunctionFragment, Result } from '@ethersproject/abi'; import { Interface } from '@ethersproject/abi'; import type { Listener, Provider } from '@ethersproject/abstract-provider'; import type { Signer } from '@ethersproject/abstract-signer'; import type { BigNumber } from '@ethersproject/bignumber'; import type { BytesLike } from '@ethersproject/bytes'; import type { BaseContract, CallOverrides, ContractTransaction, Overrides, PopulatedTransaction } from '@ethersproject/contracts'; import type { OnEvent, PromiseOrValue, TypedEvent, TypedEventFilter, TypedListener } from './common'; export declare namespace DNSSEC { type RRSetWithSignatureStruct = { rrset: PromiseOrValue; sig: PromiseOrValue; }; type RRSetWithSignatureStructOutput = [string, string] & { rrset: string; sig: string; }; } export interface DNSRegistrarInterface extends Interface { functions: { 'claim(bytes,bytes)': FunctionFragment; 'fns()': FunctionFragment; 'oracle()': FunctionFragment; 'proveAndClaim(bytes,(bytes,bytes)[],bytes)': FunctionFragment; 'proveAndClaimWithResolver(bytes,(bytes,bytes)[],bytes,address,address)': FunctionFragment; 'setOracle(address)': FunctionFragment; 'setPublicSuffixList(address)': FunctionFragment; 'suffixes()': FunctionFragment; 'supportsInterface(bytes4)': FunctionFragment; }; getFunction(nameOrSignatureOrTopic: 'claim' | 'fns' | 'oracle' | 'proveAndClaim' | 'proveAndClaimWithResolver' | 'setOracle' | 'setPublicSuffixList' | 'suffixes' | 'supportsInterface'): FunctionFragment; encodeFunctionData(functionFragment: 'claim', values: [PromiseOrValue, PromiseOrValue]): string; encodeFunctionData(functionFragment: 'fns', values?: undefined): string; encodeFunctionData(functionFragment: 'oracle', values?: undefined): string; encodeFunctionData(functionFragment: 'proveAndClaim', values: [ PromiseOrValue, DNSSEC.RRSetWithSignatureStruct[], PromiseOrValue ]): string; encodeFunctionData(functionFragment: 'proveAndClaimWithResolver', values: [ PromiseOrValue, DNSSEC.RRSetWithSignatureStruct[], PromiseOrValue, PromiseOrValue, PromiseOrValue ]): string; encodeFunctionData(functionFragment: 'setOracle', values: [PromiseOrValue]): string; encodeFunctionData(functionFragment: 'setPublicSuffixList', values: [PromiseOrValue]): string; encodeFunctionData(functionFragment: 'suffixes', values?: undefined): string; encodeFunctionData(functionFragment: 'supportsInterface', values: [PromiseOrValue]): string; decodeFunctionResult(functionFragment: 'claim', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'fns', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'oracle', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'proveAndClaim', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'proveAndClaimWithResolver', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'setOracle', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'setPublicSuffixList', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'suffixes', data: BytesLike): Result; decodeFunctionResult(functionFragment: 'supportsInterface', data: BytesLike): Result; events: { 'Claim(bytes32,address,bytes)': EventFragment; 'NewOracle(address)': EventFragment; 'NewPublicSuffixList(address)': EventFragment; }; getEvent(nameOrSignatureOrTopic: 'Claim'): EventFragment; getEvent(nameOrSignatureOrTopic: 'NewOracle'): EventFragment; getEvent(nameOrSignatureOrTopic: 'NewPublicSuffixList'): EventFragment; } export interface ClaimEventObject { node: string; owner: string; dnsname: string; } export declare type ClaimEvent = TypedEvent<[string, string, string], ClaimEventObject>; export declare type ClaimEventFilter = TypedEventFilter; export interface NewOracleEventObject { oracle: string; } export declare type NewOracleEvent = TypedEvent<[string], NewOracleEventObject>; export declare type NewOracleEventFilter = TypedEventFilter; export interface NewPublicSuffixListEventObject { suffixes: string; } export declare type NewPublicSuffixListEvent = TypedEvent<[ string ], NewPublicSuffixListEventObject>; export declare type NewPublicSuffixListEventFilter = TypedEventFilter; export interface DNSRegistrar extends BaseContract { connect(signerOrProvider: Signer | Provider | string): this; attach(addressOrName: string): this; deployed(): Promise; interface: DNSRegistrarInterface; 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: { /** * Claims a name by proving ownership of its DNS equivalent. * @param name The name to claim, in DNS wire format. * @param proof A DNS RRSet proving ownership of the name. Must be verified in the DNSSEC oracle before calling. This RRSET must contain a TXT record for '_fns.' + name, with the value 'a=0x...'. Ownership of the name will be transferred to the address specified in the TXT record. */ claim(name: PromiseOrValue, proof: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; fns(overrides?: CallOverrides): Promise<[string]>; oracle(overrides?: CallOverrides): Promise<[string]>; proveAndClaim(name: PromiseOrValue, input: DNSSEC.RRSetWithSignatureStruct[], proof: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; proveAndClaimWithResolver(name: PromiseOrValue, input: DNSSEC.RRSetWithSignatureStruct[], proof: PromiseOrValue, resolver: PromiseOrValue, addr: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; setOracle(_dnssec: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; setPublicSuffixList(_suffixes: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; suffixes(overrides?: CallOverrides): Promise<[string]>; supportsInterface(interfaceID: PromiseOrValue, overrides?: CallOverrides): Promise<[boolean]>; }; /** * Claims a name by proving ownership of its DNS equivalent. * @param name The name to claim, in DNS wire format. * @param proof A DNS RRSet proving ownership of the name. Must be verified in the DNSSEC oracle before calling. This RRSET must contain a TXT record for '_fns.' + name, with the value 'a=0x...'. Ownership of the name will be transferred to the address specified in the TXT record. */ claim(name: PromiseOrValue, proof: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; fns(overrides?: CallOverrides): Promise; oracle(overrides?: CallOverrides): Promise; proveAndClaim(name: PromiseOrValue, input: DNSSEC.RRSetWithSignatureStruct[], proof: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; proveAndClaimWithResolver(name: PromiseOrValue, input: DNSSEC.RRSetWithSignatureStruct[], proof: PromiseOrValue, resolver: PromiseOrValue, addr: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; setOracle(_dnssec: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; setPublicSuffixList(_suffixes: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; suffixes(overrides?: CallOverrides): Promise; supportsInterface(interfaceID: PromiseOrValue, overrides?: CallOverrides): Promise; callStatic: { /** * Claims a name by proving ownership of its DNS equivalent. * @param name The name to claim, in DNS wire format. * @param proof A DNS RRSet proving ownership of the name. Must be verified in the DNSSEC oracle before calling. This RRSET must contain a TXT record for '_fns.' + name, with the value 'a=0x...'. Ownership of the name will be transferred to the address specified in the TXT record. */ claim(name: PromiseOrValue, proof: PromiseOrValue, overrides?: CallOverrides): Promise; fns(overrides?: CallOverrides): Promise; oracle(overrides?: CallOverrides): Promise; proveAndClaim(name: PromiseOrValue, input: DNSSEC.RRSetWithSignatureStruct[], proof: PromiseOrValue, overrides?: CallOverrides): Promise; proveAndClaimWithResolver(name: PromiseOrValue, input: DNSSEC.RRSetWithSignatureStruct[], proof: PromiseOrValue, resolver: PromiseOrValue, addr: PromiseOrValue, overrides?: CallOverrides): Promise; setOracle(_dnssec: PromiseOrValue, overrides?: CallOverrides): Promise; setPublicSuffixList(_suffixes: PromiseOrValue, overrides?: CallOverrides): Promise; suffixes(overrides?: CallOverrides): Promise; supportsInterface(interfaceID: PromiseOrValue, overrides?: CallOverrides): Promise; }; filters: { 'Claim(bytes32,address,bytes)'(node?: PromiseOrValue | null, owner?: PromiseOrValue | null, dnsname?: null): ClaimEventFilter; Claim(node?: PromiseOrValue | null, owner?: PromiseOrValue | null, dnsname?: null): ClaimEventFilter; 'NewOracle(address)'(oracle?: null): NewOracleEventFilter; NewOracle(oracle?: null): NewOracleEventFilter; 'NewPublicSuffixList(address)'(suffixes?: null): NewPublicSuffixListEventFilter; NewPublicSuffixList(suffixes?: null): NewPublicSuffixListEventFilter; }; estimateGas: { /** * Claims a name by proving ownership of its DNS equivalent. * @param name The name to claim, in DNS wire format. * @param proof A DNS RRSet proving ownership of the name. Must be verified in the DNSSEC oracle before calling. This RRSET must contain a TXT record for '_fns.' + name, with the value 'a=0x...'. Ownership of the name will be transferred to the address specified in the TXT record. */ claim(name: PromiseOrValue, proof: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; fns(overrides?: CallOverrides): Promise; oracle(overrides?: CallOverrides): Promise; proveAndClaim(name: PromiseOrValue, input: DNSSEC.RRSetWithSignatureStruct[], proof: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; proveAndClaimWithResolver(name: PromiseOrValue, input: DNSSEC.RRSetWithSignatureStruct[], proof: PromiseOrValue, resolver: PromiseOrValue, addr: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; setOracle(_dnssec: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; setPublicSuffixList(_suffixes: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; suffixes(overrides?: CallOverrides): Promise; supportsInterface(interfaceID: PromiseOrValue, overrides?: CallOverrides): Promise; }; populateTransaction: { /** * Claims a name by proving ownership of its DNS equivalent. * @param name The name to claim, in DNS wire format. * @param proof A DNS RRSet proving ownership of the name. Must be verified in the DNSSEC oracle before calling. This RRSET must contain a TXT record for '_fns.' + name, with the value 'a=0x...'. Ownership of the name will be transferred to the address specified in the TXT record. */ claim(name: PromiseOrValue, proof: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; fns(overrides?: CallOverrides): Promise; oracle(overrides?: CallOverrides): Promise; proveAndClaim(name: PromiseOrValue, input: DNSSEC.RRSetWithSignatureStruct[], proof: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; proveAndClaimWithResolver(name: PromiseOrValue, input: DNSSEC.RRSetWithSignatureStruct[], proof: PromiseOrValue, resolver: PromiseOrValue, addr: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; setOracle(_dnssec: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; setPublicSuffixList(_suffixes: PromiseOrValue, overrides?: Overrides & { from?: PromiseOrValue; }): Promise; suffixes(overrides?: CallOverrides): Promise; supportsInterface(interfaceID: PromiseOrValue, overrides?: CallOverrides): Promise; }; }