import { TAddress } from 'dequanto/models/TAddress'; import { TAccount } from 'dequanto/models/TAccount'; import { ClientEventsStream, TClientEventsStreamData } from 'dequanto/clients/ClientEventsStream'; import { ContractBase } from 'dequanto/contracts/ContractBase'; import { ContractStorageReaderBase } from 'dequanto/contracts/ContractStorageReaderBase'; import { TxWriter } from 'dequanto/txs/TxWriter'; import { ITxLogItem } from 'dequanto/txs/receipt/ITxLogItem'; import { Web3Client } from 'dequanto/clients/Web3Client'; import { IBlockchainExplorer } from 'dequanto/explorer/IBlockchainExplorer'; import { SubjectStream } from 'dequanto/class/SubjectStream'; import type { TAbiItem } from 'dequanto/types/TAbi'; import type { TEth } from 'dequanto/models/TEth'; import type { TOverrideReturns } from 'dequanto/utils/types'; export declare namespace EnsEthRegistrarControllerErrors { interface CommitmentTooNew { type: 'CommitmentTooNew'; params: { commitment: TEth.Hex; }; } interface CommitmentTooOld { type: 'CommitmentTooOld'; params: { commitment: TEth.Hex; }; } interface DurationTooShort { type: 'DurationTooShort'; params: { duration: bigint; }; } interface InsufficientValue { type: 'InsufficientValue'; params: {}; } interface MaxCommitmentAgeTooHigh { type: 'MaxCommitmentAgeTooHigh'; params: {}; } interface MaxCommitmentAgeTooLow { type: 'MaxCommitmentAgeTooLow'; params: {}; } interface NameNotAvailable { type: 'NameNotAvailable'; params: { name: string; }; } interface ResolverRequiredWhenDataSupplied { type: 'ResolverRequiredWhenDataSupplied'; params: {}; } interface UnexpiredCommitmentExists { type: 'UnexpiredCommitmentExists'; params: { commitment: TEth.Hex; }; } type Error = CommitmentTooNew | CommitmentTooOld | DurationTooShort | InsufficientValue | MaxCommitmentAgeTooHigh | MaxCommitmentAgeTooLow | NameNotAvailable | ResolverRequiredWhenDataSupplied | UnexpiredCommitmentExists; } export declare class EnsEthRegistrarController extends ContractBase { address: TEth.Address; client: Web3Client; explorer: IBlockchainExplorer; constructor(address?: TEth.Address, client?: Web3Client, explorer?: IBlockchainExplorer); Types: TEnsEthRegistrarControllerTypes; $meta: { class: string; }; $constructor(deployer: TSender, _base: TAddress, _prices: TAddress, _minCommitmentAge: bigint, _maxCommitmentAge: bigint, _reverseRegistrar: TAddress, _nameWrapper: TAddress, _ens: TAddress): Promise; MIN_REGISTRATION_DURATION(): Promise; available(name: string): Promise; commit(sender: TSender, commitment: TEth.Hex): Promise; commitments(input0: TEth.Hex): Promise; makeCommitment(name: string, owner: TAddress, duration: bigint, secret: TEth.Hex, resolver: TAddress, data: TEth.Hex[], reverseRecord: boolean, ownerControlledFuses: number): Promise; maxCommitmentAge(): Promise; minCommitmentAge(): Promise; nameWrapper(): Promise; owner(): Promise; prices(): Promise; recoverFunds(sender: TSender, _token: TAddress, _to: TAddress, _amount: bigint): Promise; register(sender: TSender, name: string, owner: TAddress, duration: bigint, secret: TEth.Hex, resolver: TAddress, data: TEth.Hex[], reverseRecord: boolean, ownerControlledFuses: number): Promise; renew(sender: TSender, name: string, duration: bigint): Promise; renounceOwnership(sender: TSender): Promise; rentPrice(name: string, duration: bigint): Promise<{ base: bigint; premium: bigint; }>; reverseRegistrar(): Promise; supportsInterface(interfaceID: TEth.Hex): Promise; transferOwnership(sender: TSender, newOwner: TAddress): Promise; valid(name: string): Promise; withdraw(sender: TSender): Promise; $call(): IEnsEthRegistrarControllerTxCaller; $signed(): TOverrideReturns>; $data(): IEnsEthRegistrarControllerTxData; $gas(): TOverrideReturns>; onTransaction(method: TMethod, options: Parameters[0]): SubjectStream<{ tx: TEth.Tx; block: TEth.Block; calldata: { method: TMethod; arguments: TEnsEthRegistrarControllerTypes['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>[]>; onNameRegistered(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onNameRenewed(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; onOwnershipTransferred(fn?: (event: TClientEventsStreamData>) => void): ClientEventsStream>>; extractLogsNameRegistered(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsNameRenewed(tx: TEth.TxReceipt): ITxLogItem>[]; extractLogsOwnershipTransferred(tx: TEth.TxReceipt): ITxLogItem>[]; getPastLogsNameRegistered(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: {}; }): Promise>[]>; getPastLogsNameRenewed(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: {}; }): Promise>[]>; getPastLogsOwnershipTransferred(options?: { fromBlock?: number | Date; toBlock?: number | Date; params?: { previousOwner?: TAddress; newOwner?: TAddress; }; }): Promise>[]>; abi: TAbiItem[]; storage: EnsEthRegistrarControllerStorageReader; } type TSender = TAccount & { value?: string | number | bigint; }; type TEventLogOptions = { fromBlock?: number | Date; toBlock?: number | Date; params?: TParams; }; export type TEnsEthRegistrarControllerTypes = { Events: { NameRegistered: { outputParams: { name: string; label: TEth.Hex; owner: TAddress; baseCost: bigint; premium: bigint; expires: bigint; }; outputArgs: [name: string, label: TEth.Hex, owner: TAddress, baseCost: bigint, premium: bigint, expires: bigint]; }; NameRenewed: { outputParams: { name: string; label: TEth.Hex; cost: bigint; expires: bigint; }; outputArgs: [name: string, label: TEth.Hex, cost: bigint, expires: bigint]; }; OwnershipTransferred: { outputParams: { previousOwner: TAddress; newOwner: TAddress; }; outputArgs: [previousOwner: TAddress, newOwner: TAddress]; }; }; Methods: { MIN_REGISTRATION_DURATION: { method: "MIN_REGISTRATION_DURATION"; arguments: []; }; available: { method: "available"; arguments: [name: string]; }; commit: { method: "commit"; arguments: [commitment: TEth.Hex]; }; commitments: { method: "commitments"; arguments: [input0: TEth.Hex]; }; makeCommitment: { method: "makeCommitment"; arguments: [name: string, owner: TAddress, duration: bigint, secret: TEth.Hex, resolver: TAddress, data: TEth.Hex[], reverseRecord: boolean, ownerControlledFuses: number]; }; maxCommitmentAge: { method: "maxCommitmentAge"; arguments: []; }; minCommitmentAge: { method: "minCommitmentAge"; arguments: []; }; nameWrapper: { method: "nameWrapper"; arguments: []; }; owner: { method: "owner"; arguments: []; }; prices: { method: "prices"; arguments: []; }; recoverFunds: { method: "recoverFunds"; arguments: [_token: TAddress, _to: TAddress, _amount: bigint]; }; register: { method: "register"; arguments: [name: string, owner: TAddress, duration: bigint, secret: TEth.Hex, resolver: TAddress, data: TEth.Hex[], reverseRecord: boolean, ownerControlledFuses: number]; }; renew: { method: "renew"; arguments: [name: string, duration: bigint]; }; renounceOwnership: { method: "renounceOwnership"; arguments: []; }; rentPrice: { method: "rentPrice"; arguments: [name: string, duration: bigint]; }; reverseRegistrar: { method: "reverseRegistrar"; arguments: []; }; supportsInterface: { method: "supportsInterface"; arguments: [interfaceID: TEth.Hex]; }; transferOwnership: { method: "transferOwnership"; arguments: [newOwner: TAddress]; }; valid: { method: "valid"; arguments: [name: string]; }; withdraw: { method: "withdraw"; arguments: []; }; }; }; declare class EnsEthRegistrarControllerStorageReader extends ContractStorageReaderBase { address: TAddress; client: Web3Client; explorer: IBlockchainExplorer; constructor(address: TAddress, client: Web3Client, explorer: IBlockchainExplorer); _owner(): Promise; commitments(key: TEth.Hex): Promise; $slots: { slot: number; position: number; name: string; size: number; type: string; }[]; } interface IEnsEthRegistrarControllerTxCaller { commit(sender: TSender, commitment: TEth.Hex): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; recoverFunds(sender: TSender, _token: TAddress, _to: TAddress, _amount: bigint): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; register(sender: TSender, name: string, owner: TAddress, duration: bigint, secret: TEth.Hex, resolver: TAddress, data: TEth.Hex[], reverseRecord: boolean, ownerControlledFuses: number): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; renew(sender: TSender, name: string, duration: bigint): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; renounceOwnership(sender: TSender): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; transferOwnership(sender: TSender, newOwner: TAddress): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; withdraw(sender: TSender): Promise<{ error?: Error & { data?: { type: string; params: any; }; }; result?: any; }>; } interface IEnsEthRegistrarControllerTxData { commit(sender: TSender, commitment: TEth.Hex): Promise; recoverFunds(sender: TSender, _token: TAddress, _to: TAddress, _amount: bigint): Promise; register(sender: TSender, name: string, owner: TAddress, duration: bigint, secret: TEth.Hex, resolver: TAddress, data: TEth.Hex[], reverseRecord: boolean, ownerControlledFuses: number): Promise; renew(sender: TSender, name: string, duration: bigint): Promise; renounceOwnership(sender: TSender): Promise; transferOwnership(sender: TSender, newOwner: TAddress): Promise; withdraw(sender: TSender): Promise; } type TEvents = TEnsEthRegistrarControllerTypes['Events']; type TEventParams = Partial; type TEventArguments = Partial; export {};