import * as viem_experimental from 'viem/experimental';
import * as viem_chains from 'viem/chains';
import * as viem from 'viem';
import { Chain, Abi, Address } from 'viem';

/**
 * ENSNamespaceIds encodes the set of identifiers for well-known ENS namespaces.
 *
 * Each ENS namespace is a single, unified set of ENS names with a distinct onchain root
 * Registry (the ensroot Datasource) and the capability of spanning from that root Registry across
 * other `Datasource`s that may be distributed across multiple chains and offchain resources.
 *
 * For example, as of 9-Feb-2025 the canonical ENS namespace on mainnet includes:
 * - A root Registry on mainnet.
 * - An onchain Registrar for direct subnames of 'eth' on mainnet.
 * - An onchain Registry and Registrar for direct subnames of 'base.eth' on Base.
 * - An onchain Registry and Registrar subregistry for direct subnames of 'linea.eth' on Linea.
 * - An offchain subregistry for subnames of '.cb.id'.
 * - An offchain subregistry for subnames of '.uni.eth'.
 * - Etc..
 *
 * Each ENS namespace is logically independent of & isolated from the others, and not exclusively
 * correlated with a specific L1 chain. For example, the Sepolia and Holesky testnet ENS namepaces
 * are independent of the canonical ENS namespace on mainnet, and there could be an additional
 * deployment of the ENS protocol to mainnet, configured with different Datasources, resulting in a
 * logically isolated set of ENS names.
 *
 * 'ens-test-env' represents an ENS namespace running on a local Anvil chain for testing
 * protocol changes, running deterministic test suites, and local development.
 * https://github.com/ensdomains/ens-test-env
 */
declare const ENSNamespaceIds: {
    readonly Mainnet: "mainnet";
    readonly Sepolia: "sepolia";
    readonly Holesky: "holesky";
    readonly EnsTestEnv: "ens-test-env";
};
/**
 * ENSNamespaceId is the derived string union of possible ENS namespace identifiers.
 */
type ENSNamespaceId = (typeof ENSNamespaceIds)[keyof typeof ENSNamespaceIds];
/**
 * A Datasource describes a set of contracts on a given chain that interact with the ENS protocol.
 */
interface Datasource {
    chain: Chain;
    contracts: Record<string, ContractConfig>;
}
/**
 * DatasourceNames encodes a unique id for each known Datasource.
 */
declare const DatasourceNames: {
    readonly ENSRoot: "ensroot";
    readonly Basenames: "basenames";
    readonly Lineanames: "lineanames";
    readonly ThreeDNSOptimism: "threedns-optimism";
    readonly ThreeDNSBase: "threedns-base";
};
type DatasourceName = (typeof DatasourceNames)[keyof typeof DatasourceNames];
/**
 * EventFilter specifies a given event's name and arguments to filter that event by.
 * This type is intentionally a subset of Ponder's `ContractConfig['filter']`.
 */
interface EventFilter {
    event: string;
    args: Record<string, unknown>;
}
/**
 * Defines the abi, address, filter, and startBlock of a contract relevant to a Datasource.
 * A contract is located onchain either by a static `address` or the event signatures (`filter`)
 * one should filter the chain for. This type is intentionally a subset of Ponder's ContractConfig.
 *
 * @param abi - the ABI of the contract
 * @param address - (optional) address of the contract
 * @param filter - (optional) array of event signatures to filter the log by
 * @param startBlock - block number the contract was deployed in
 */
type ContractConfig = {
    readonly abi: Abi;
    readonly address: Address;
    readonly filter?: never;
    readonly startBlock: number;
} | {
    readonly abi: Abi;
    readonly address?: never;
    readonly filter: EventFilter[];
    readonly startBlock: number;
};
/**
 * ENSNamespace encodes a set of known Datasources associated with the same ENS namespace.
 *
 * The ENSRoot Datasource is required (this formally defines an ENS namespace). All other Datasources
 * within the ENSNamespace are optional.
 */
type ENSNamespace = {
    [DatasourceNames.ENSRoot]: Datasource;
} & Partial<Record<Exclude<DatasourceName, "ensroot">, Datasource>>;

declare const ENSNamespacesById: {
    readonly mainnet: {
        ensroot: {
            chain: {
                blockExplorers: {
                    readonly default: {
                        readonly name: "Etherscan";
                        readonly url: "https://etherscan.io";
                        readonly apiUrl: "https://api.etherscan.io/api";
                    };
                };
                contracts: {
                    readonly ensRegistry: {
                        readonly address: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e";
                    };
                    readonly ensUniversalResolver: {
                        readonly address: "0xce01f8eee7E479C928F8919abD53E553a36CeF67";
                        readonly blockCreated: 19258213;
                    };
                    readonly multicall3: {
                        readonly address: "0xca11bde05977b3631167028862be2a173976ca11";
                        readonly blockCreated: 14353601;
                    };
                };
                id: 1;
                name: "Ethereum";
                nativeCurrency: {
                    readonly name: "Ether";
                    readonly symbol: "ETH";
                    readonly decimals: 18;
                };
                rpcUrls: {
                    readonly default: {
                        readonly http: readonly ["https://eth.merkle.io"];
                    };
                };
                sourceId?: number | undefined;
                testnet?: boolean | undefined;
                custom?: Record<string, unknown> | undefined;
                fees?: viem.ChainFees<undefined> | undefined;
                formatters?: undefined;
                serializers?: viem.ChainSerializers<undefined, viem.TransactionSerializable> | undefined;
            };
            contracts: {
                RegistryOld: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "_old";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "NewOwner";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "NewResolver";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "NewTTL";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "Transfer";
                        readonly type: "event";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "old";
                        readonly outputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "recordExists";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "resolver";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "setOwner";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setRecord";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "setSubnodeOwner";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setSubnodeRecord";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setTTL";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "ttl";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }];
                    address: "0x314159265dd8dbb310642f98f50c066173c1259b";
                    startBlock: number;
                };
                Registry: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "_old";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "NewOwner";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "NewResolver";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "NewTTL";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "Transfer";
                        readonly type: "event";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "old";
                        readonly outputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "recordExists";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "resolver";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "setOwner";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setRecord";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "setSubnodeOwner";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setSubnodeRecord";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setTTL";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "ttl";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }];
                    address: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e";
                    startBlock: number;
                };
                Resolver: {
                    startBlock: number;
                    abi: readonly [{
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "contentType";
                            readonly type: "uint256";
                        }];
                        readonly name: "ABIChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "a";
                            readonly type: "address";
                        }];
                        readonly name: "AddrChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "newAddress";
                            readonly type: "bytes";
                        }];
                        readonly name: "AddressChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "target";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "isAuthorised";
                            readonly type: "bool";
                        }];
                        readonly name: "AuthorisationChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "ContenthashChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "record";
                            readonly type: "bytes";
                        }];
                        readonly name: "DNSRecordChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }];
                        readonly name: "DNSRecordDeleted";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "DNSZoneCleared";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "implementer";
                            readonly type: "address";
                        }];
                        readonly name: "InterfaceChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "NameChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly name: "PubkeyChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "string";
                            readonly name: "indexedKey";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }];
                        readonly name: "TextChanged";
                        readonly type: "event";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "contentTypes";
                            readonly type: "uint256";
                        }];
                        readonly name: "ABI";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "addr";
                        readonly outputs: readonly [{
                            readonly internalType: "address payable";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }];
                        readonly name: "addr";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly name: "authorisations";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "clearDNSZone";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "contenthash";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "name";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }];
                        readonly name: "dnsRecord";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "name";
                            readonly type: "bytes32";
                        }];
                        readonly name: "hasDNSRecords";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "interfaceImplementer";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }];
                        readonly name: "multicall";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "results";
                            readonly type: "bytes[]";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "name";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "pubkey";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "contentType";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "setABI";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "a";
                            readonly type: "bytes";
                        }];
                        readonly name: "setAddr";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "a";
                            readonly type: "address";
                        }];
                        readonly name: "setAddr";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "target";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "isAuthorised";
                            readonly type: "bool";
                        }];
                        readonly name: "setAuthorisation";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "setContenthash";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "setDNSRecords";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }, {
                            readonly internalType: "address";
                            readonly name: "implementer";
                            readonly type: "address";
                        }];
                        readonly name: "setInterface";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "setName";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly name: "setPubkey";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }, {
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }];
                        readonly name: "setText";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }];
                        readonly name: "text";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "Approved";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "lastzonehash";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "zonehash";
                            readonly type: "bytes";
                        }];
                        readonly name: "DNSZonehashChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "string";
                            readonly name: "indexedKey";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }];
                        readonly name: "TextChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "newVersion";
                            readonly type: "uint64";
                        }];
                        readonly name: "VersionChanged";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "approve";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "clearRecords";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedFor";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "nodehash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }];
                        readonly name: "multicallWithNodeCheck";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "results";
                            readonly type: "bytes[]";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "recordVersions";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "newName";
                            readonly type: "string";
                        }];
                        readonly name: "setName";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "setZonehash";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "zonehash";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly type: "event";
                        readonly name: "DNSRecordChanged";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "name";
                            readonly type: "bytes";
                            readonly indexed: false;
                            readonly internalType: "bytes";
                        }, {
                            readonly name: "resource";
                            readonly type: "uint16";
                            readonly indexed: false;
                            readonly internalType: "uint16";
                        }, {
                            readonly name: "ttl";
                            readonly type: "uint32";
                            readonly indexed: false;
                            readonly internalType: "uint32";
                        }, {
                            readonly name: "record";
                            readonly type: "bytes";
                            readonly indexed: false;
                            readonly internalType: "bytes";
                        }];
                        readonly anonymous: false;
                    }, {
                        readonly type: "event";
                        readonly name: "DNSZoneUpdated";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "serial";
                            readonly type: "uint32";
                            readonly indexed: false;
                            readonly internalType: "uint32";
                        }];
                        readonly anonymous: false;
                    }, {
                        readonly type: "event";
                        readonly name: "ZoneCreated";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "version";
                            readonly type: "uint64";
                            readonly indexed: true;
                            readonly internalType: "uint64";
                        }];
                        readonly anonymous: false;
                    }];
                    filter: [{
                        readonly event: "AddrChanged";
                        readonly args: {};
                    }, {
                        readonly event: "AddressChanged";
                        readonly args: {};
                    }, {
                        readonly event: "NameChanged";
                        readonly args: {};
                    }, {
                        readonly event: "ABIChanged";
                        readonly args: {};
                    }, {
                        readonly event: "PubkeyChanged";
                        readonly args: {};
                    }, {
                        readonly event: "TextChanged(bytes32 indexed node, string indexed indexedKey, string key)";
                        readonly args: {};
                    }, {
                        readonly event: "TextChanged(bytes32 indexed node, string indexed indexedKey, string key, string value)";
                        readonly args: {};
                    }, {
                        readonly event: "ContenthashChanged";
                        readonly args: {};
                    }, {
                        readonly event: "InterfaceChanged";
                        readonly args: {};
                    }, {
                        readonly event: "AuthorisationChanged";
                        readonly args: {};
                    }, {
                        readonly event: "VersionChanged";
                        readonly args: {};
                    }, {
                        readonly event: "DNSRecordChanged";
                        readonly args: {};
                    }, {
                        readonly event: "DNSRecordDeleted";
                        readonly args: {};
                    }, {
                        readonly event: "DNSZonehashChanged";
                        readonly args: {};
                    }];
                };
                BaseRegistrar: {
                    abi: readonly [{
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "getApproved";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "approve";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "transferFrom";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "reclaim";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "ens";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "safeTransferFrom";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "transferPeriodEnds";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "ownerOf";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "MIGRATION_LOCK_PERIOD";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "balanceOf";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "isOwner";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "available";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "addController";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "previousRegistrar";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }, {
                            readonly name: "_data";
                            readonly type: "bytes";
                        }];
                        readonly name: "safeTransferFrom";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "GRACE_PERIOD";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "nameExpires";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly name: "controllers";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "baseNode";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly name: "deed";
                            readonly type: "address";
                        }, {
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly name: "acceptRegistrarTransfer";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "removeController";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "register";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly name: "_ens";
                            readonly type: "address";
                        }, {
                            readonly name: "_previousRegistrar";
                            readonly type: "address";
                        }, {
                            readonly name: "_baseNode";
                            readonly type: "bytes32";
                        }, {
                            readonly name: "_transferPeriodEnds";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "ControllerAdded";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "ControllerRemoved";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: true;
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameMigrated";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: true;
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRegistered";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRenewed";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "previousOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "Transfer";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "approved";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "Approval";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }];
                    address: "0x57f1887a8BF19b14fC0dF6Fd9B2acc9Af147eA85";
                    startBlock: number;
                };
                EthRegistrarControllerOld: {
                    abi: readonly [{
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [];
                        readonly name: "withdraw";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "_prices";
                            readonly type: "address";
                        }];
                        readonly name: "setPriceOracle";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "_minCommitmentAge";
                            readonly type: "uint256";
                        }, {
                            readonly name: "_maxCommitmentAge";
                            readonly type: "uint256";
                        }];
                        readonly name: "setCommitmentAges";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "commitments";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "rentPrice";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly name: "secret";
                            readonly type: "bytes32";
                        }];
                        readonly name: "register";
                        readonly outputs: readonly [];
                        readonly payable: true;
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "MIN_REGISTRATION_DURATION";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "minCommitmentAge";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "isOwner";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "valid";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [];
                        readonly payable: true;
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "available";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "maxCommitmentAge";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "commit";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly name: "secret";
                            readonly type: "bytes32";
                        }];
                        readonly name: "makeCommitment";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly name: "_base";
                            readonly type: "address";
                        }, {
                            readonly name: "_prices";
                            readonly type: "address";
                        }, {
                            readonly name: "_minCommitmentAge";
                            readonly type: "uint256";
                        }, {
                            readonly name: "_maxCommitmentAge";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly name: "cost";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRegistered";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly name: "cost";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRenewed";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "oracle";
                            readonly type: "address";
                        }];
                        readonly name: "NewPriceOracle";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "previousOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }];
                    address: "0x283Af0B28c62C092C9727F1Ee09c02CA627EB7F5";
                    startBlock: number;
                };
                EthRegistrarController: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract BaseRegistrarImplementation";
                            readonly name: "_base";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IPriceOracle";
                            readonly name: "_prices";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_minCommitmentAge";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_maxCommitmentAge";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "contract ReverseRegistrar";
                            readonly name: "_reverseRegistrar";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract INameWrapper";
                            readonly name: "_nameWrapper";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "CommitmentTooNew";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "CommitmentTooOld";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "DurationTooShort";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "InsufficientValue";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MaxCommitmentAgeTooHigh";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MaxCommitmentAgeTooLow";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "NameNotAvailable";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "ResolverRequiredWhenDataSupplied";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "UnexpiredCommitmentExists";
                        readonly type: "error";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "baseCost";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "premium";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRegistered";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "cost";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRenewed";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "previousOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MIN_REGISTRATION_DURATION";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "available";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "commit";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "commitments";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "secret";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "reverseRecord";
                            readonly type: "bool";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }];
                        readonly name: "makeCommitment";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "maxCommitmentAge";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "minCommitmentAge";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "nameWrapper";
                        readonly outputs: readonly [{
                            readonly internalType: "contract INameWrapper";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "prices";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IPriceOracle";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "_token";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "_to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_amount";
                            readonly type: "uint256";
                        }];
                        readonly name: "recoverFunds";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "secret";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "reverseRecord";
                            readonly type: "bool";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }];
                        readonly name: "register";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "rentPrice";
                        readonly outputs: readonly [{
                            readonly components: readonly [{
                                readonly internalType: "uint256";
                                readonly name: "base";
                                readonly type: "uint256";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "premium";
                                readonly type: "uint256";
                            }];
                            readonly internalType: "struct IPriceOracle.Price";
                            readonly name: "price";
                            readonly type: "tuple";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "reverseRegistrar";
                        readonly outputs: readonly [{
                            readonly internalType: "contract ReverseRegistrar";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "valid";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "withdraw";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }];
                    address: "0x253553366Da8546fC250F225fe3d25d0C782303b";
                    startBlock: number;
                };
                NameWrapper: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "_ens";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IBaseRegistrar";
                            readonly name: "_registrar";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IMetadataService";
                            readonly name: "_metadataService";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "CannotUpgrade";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "IncompatibleParent";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "IncorrectTargetOwner";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "IncorrectTokenType";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "labelHash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "expectedLabelhash";
                            readonly type: "bytes32";
                        }];
                        readonly name: "LabelMismatch";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }];
                        readonly name: "LabelTooLong";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "LabelTooShort";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "NameIsNotWrapped";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "OperationProhibited";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "addr";
                            readonly type: "address";
                        }];
                        readonly name: "Unauthorised";
                        readonly type: "error";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "active";
                            readonly type: "bool";
                        }];
                        readonly name: "ControllerChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "ExpiryExtended";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }];
                        readonly name: "FusesSet";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "NameUnwrapped";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "NameWrapped";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "previousOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256[]";
                            readonly name: "ids";
                            readonly type: "uint256[]";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256[]";
                            readonly name: "values";
                            readonly type: "uint256[]";
                        }];
                        readonly name: "TransferBatch";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "value";
                            readonly type: "uint256";
                        }];
                        readonly name: "TransferSingle";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "URI";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly name: "_tokens";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuseMask";
                            readonly type: "uint32";
                        }];
                        readonly name: "allFusesBurned";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "balanceOf";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address[]";
                            readonly name: "accounts";
                            readonly type: "address[]";
                        }, {
                            readonly internalType: "uint256[]";
                            readonly name: "ids";
                            readonly type: "uint256[]";
                        }];
                        readonly name: "balanceOfBatch";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256[]";
                            readonly name: "";
                            readonly type: "uint256[]";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "addr";
                            readonly type: "address";
                        }];
                        readonly name: "canModifyName";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly name: "controllers";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "ens";
                        readonly outputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "extendExpiry";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "getData";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "isWrapped";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "metadataService";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IMetadataService";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "name";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "names";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "onERC721Received";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "";
                            readonly type: "bytes4";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "ownerOf";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "_token";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "_to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_amount";
                            readonly type: "uint256";
                        }];
                        readonly name: "recoverFunds";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }];
                        readonly name: "registerAndWrapETH2LD";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "registrarExpiry";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "registrar";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IBaseRegistrar";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256[]";
                            readonly name: "ids";
                            readonly type: "uint256[]";
                        }, {
                            readonly internalType: "uint256[]";
                            readonly name: "amounts";
                            readonly type: "uint256[]";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "safeBatchTransferFrom";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "amount";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "safeTransferFrom";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "setChildFuses";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "active";
                            readonly type: "bool";
                        }];
                        readonly name: "setController";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }];
                        readonly name: "setFuses";
                        readonly outputs: readonly [{
                            readonly internalType: "uint32";
                            readonly name: "";
                            readonly type: "uint32";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "contract IMetadataService";
                            readonly name: "_metadataService";
                            readonly type: "address";
                        }];
                        readonly name: "setMetadataService";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setRecord";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "setSubnodeOwner";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "setSubnodeRecord";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setTTL";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "contract INameWrapperUpgrade";
                            readonly name: "_upgradeAddress";
                            readonly type: "address";
                        }];
                        readonly name: "setUpgradeContract";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceId";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "unwrap";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "registrant";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "unwrapETH2LD";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "upgrade";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "upgradeContract";
                        readonly outputs: readonly [{
                            readonly internalType: "contract INameWrapperUpgrade";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "upgradeETH2LD";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "uri";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "wrap";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "wrapETH2LD";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }];
                    address: "0xD4416b13d2b3a9aBae7AcD5D6C2BbDBE25686401";
                    startBlock: number;
                };
            };
        };
        basenames: {
            chain: {
                blockExplorers: {
                    readonly default: {
                        readonly name: "Basescan";
                        readonly url: "https://basescan.org";
                        readonly apiUrl: "https://api.basescan.org/api";
                    };
                };
                contracts: {
                    readonly disputeGameFactory: {
                        readonly 1: {
                            readonly address: "0x43edB88C4B80fDD2AdFF2412A7BebF9dF42cB40e";
                        };
                    };
                    readonly l2OutputOracle: {
                        readonly 1: {
                            readonly address: "0x56315b90c40730925ec5485cf004d835058518A0";
                        };
                    };
                    readonly multicall3: {
                        readonly address: "0xca11bde05977b3631167028862be2a173976ca11";
                        readonly blockCreated: 5022;
                    };
                    readonly portal: {
                        readonly 1: {
                            readonly address: "0x49048044D57e1C92A77f79988d21Fa8fAF74E97e";
                            readonly blockCreated: 17482143;
                        };
                    };
                    readonly l1StandardBridge: {
                        readonly 1: {
                            readonly address: "0x3154Cf16ccdb4C6d922629664174b904d80F2C35";
                            readonly blockCreated: 17482143;
                        };
                    };
                    readonly gasPriceOracle: {
                        readonly address: "0x420000000000000000000000000000000000000F";
                    };
                    readonly l1Block: {
                        readonly address: "0x4200000000000000000000000000000000000015";
                    };
                    readonly l2CrossDomainMessenger: {
                        readonly address: "0x4200000000000000000000000000000000000007";
                    };
                    readonly l2Erc721Bridge: {
                        readonly address: "0x4200000000000000000000000000000000000014";
                    };
                    readonly l2StandardBridge: {
                        readonly address: "0x4200000000000000000000000000000000000010";
                    };
                    readonly l2ToL1MessagePasser: {
                        readonly address: "0x4200000000000000000000000000000000000016";
                    };
                };
                id: 8453;
                name: "Base";
                nativeCurrency: {
                    readonly name: "Ether";
                    readonly symbol: "ETH";
                    readonly decimals: 18;
                };
                rpcUrls: {
                    readonly default: {
                        readonly http: readonly ["https://mainnet.base.org"];
                    };
                };
                sourceId: 1;
                testnet?: boolean | undefined;
                custom?: Record<string, unknown> | undefined;
                fees?: viem.ChainFees<undefined> | undefined;
                formatters: {
                    readonly block: {
                        exclude: [] | undefined;
                        format: (args: viem_chains.OpStackRpcBlock) => {
                            baseFeePerGas: bigint | null;
                            blobGasUsed: bigint;
                            difficulty: bigint;
                            excessBlobGas: bigint;
                            extraData: viem.Hex;
                            gasLimit: bigint;
                            gasUsed: bigint;
                            hash: `0x${string}` | null;
                            logsBloom: `0x${string}` | null;
                            miner: viem.Address;
                            mixHash: viem.Hash;
                            nonce: `0x${string}` | null;
                            number: bigint | null;
                            parentBeaconBlockRoot?: viem.Hex | undefined;
                            parentHash: viem.Hash;
                            receiptsRoot: viem.Hex;
                            sealFields: viem.Hex[];
                            sha3Uncles: viem.Hash;
                            size: bigint;
                            stateRoot: viem.Hash;
                            timestamp: bigint;
                            totalDifficulty: bigint | null;
                            transactions: `0x${string}`[] | viem_chains.OpStackTransaction<boolean>[];
                            transactionsRoot: viem.Hash;
                            uncles: viem.Hash[];
                            withdrawals?: viem.Withdrawal[] | undefined;
                            withdrawalsRoot?: viem.Hex | undefined;
                        } & {};
                        type: "block";
                    };
                    readonly transaction: {
                        exclude: [] | undefined;
                        format: (args: viem_chains.OpStackRpcTransaction) => ({
                            blockHash: `0x${string}` | null;
                            blockNumber: bigint | null;
                            from: viem.Address;
                            gas: bigint;
                            hash: viem.Hash;
                            input: viem.Hex;
                            nonce: number;
                            r: viem.Hex;
                            s: viem.Hex;
                            to: viem.Address | null;
                            transactionIndex: number | null;
                            typeHex: viem.Hex | null;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                            gasPrice?: undefined;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas: bigint;
                            maxPriorityFeePerGas: bigint;
                            isSystemTx?: boolean;
                            mint?: bigint | undefined;
                            sourceHash: viem.Hex;
                            type: "deposit";
                        } | {
                            r: viem.Hex;
                            s: viem.Hex;
                            v: bigint;
                            to: viem.Address | null;
                            from: viem.Address;
                            gas: bigint;
                            nonce: number;
                            value: bigint;
                            blockHash: `0x${string}` | null;
                            blockNumber: bigint | null;
                            hash: viem.Hash;
                            input: viem.Hex;
                            transactionIndex: number | null;
                            typeHex: viem.Hex | null;
                            accessList?: undefined;
                            authorizationList?: undefined;
                            blobVersionedHashes?: undefined;
                            chainId?: number | undefined;
                            yParity?: undefined;
                            type: "legacy";
                            gasPrice: bigint;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas?: undefined;
                            maxPriorityFeePerGas?: undefined;
                            isSystemTx?: undefined;
                            mint?: undefined;
                            sourceHash?: undefined;
                        } | {
                            blockHash: `0x${string}` | null;
                            blockNumber: bigint | null;
                            from: viem.Address;
                            gas: bigint;
                            hash: viem.Hash;
                            input: viem.Hex;
                            nonce: number;
                            r: viem.Hex;
                            s: viem.Hex;
                            to: viem.Address | null;
                            transactionIndex: number | null;
                            typeHex: viem.Hex | null;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                            accessList: viem.AccessList;
                            authorizationList?: undefined;
                            blobVersionedHashes?: undefined;
                            chainId: number;
                            type: "eip2930";
                            gasPrice: bigint;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas?: undefined;
                            maxPriorityFeePerGas?: undefined;
                            isSystemTx?: undefined;
                            mint?: undefined;
                            sourceHash?: undefined;
                        } | {
                            blockHash: `0x${string}` | null;
                            blockNumber: bigint | null;
                            from: viem.Address;
                            gas: bigint;
                            hash: viem.Hash;
                            input: viem.Hex;
                            nonce: number;
                            r: viem.Hex;
                            s: viem.Hex;
                            to: viem.Address | null;
                            transactionIndex: number | null;
                            typeHex: viem.Hex | null;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                            accessList: viem.AccessList;
                            authorizationList?: undefined;
                            blobVersionedHashes?: undefined;
                            chainId: number;
                            type: "eip1559";
                            gasPrice?: undefined;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas: bigint;
                            maxPriorityFeePerGas: bigint;
                            isSystemTx?: undefined;
                            mint?: undefined;
                            sourceHash?: undefined;
                        } | {
                            blockHash: `0x${string}` | null;
                            blockNumber: bigint | null;
                            from: viem.Address;
                            gas: bigint;
                            hash: viem.Hash;
                            input: viem.Hex;
                            nonce: number;
                            r: viem.Hex;
                            s: viem.Hex;
                            to: viem.Address | null;
                            transactionIndex: number | null;
                            typeHex: viem.Hex | null;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                            accessList: viem.AccessList;
                            authorizationList?: undefined;
                            blobVersionedHashes: readonly viem.Hex[];
                            chainId: number;
                            type: "eip4844";
                            gasPrice?: undefined;
                            maxFeePerBlobGas: bigint;
                            maxFeePerGas: bigint;
                            maxPriorityFeePerGas: bigint;
                            isSystemTx?: undefined;
                            mint?: undefined;
                            sourceHash?: undefined;
                        } | {
                            blockHash: `0x${string}` | null;
                            blockNumber: bigint | null;
                            from: viem.Address;
                            gas: bigint;
                            hash: viem.Hash;
                            input: viem.Hex;
                            nonce: number;
                            r: viem.Hex;
                            s: viem.Hex;
                            to: viem.Address | null;
                            transactionIndex: number | null;
                            typeHex: viem.Hex | null;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                            accessList: viem.AccessList;
                            authorizationList: viem_experimental.SignedAuthorizationList;
                            blobVersionedHashes?: undefined;
                            chainId: number;
                            type: "eip7702";
                            gasPrice?: undefined;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas: bigint;
                            maxPriorityFeePerGas: bigint;
                            isSystemTx?: undefined;
                            mint?: undefined;
                            sourceHash?: undefined;
                        }) & {};
                        type: "transaction";
                    };
                    readonly transactionReceipt: {
                        exclude: [] | undefined;
                        format: (args: viem_chains.OpStackRpcTransactionReceipt) => {
                            blobGasPrice?: bigint | undefined;
                            blobGasUsed?: bigint | undefined;
                            blockHash: viem.Hash;
                            blockNumber: bigint;
                            contractAddress: viem.Address | null | undefined;
                            cumulativeGasUsed: bigint;
                            effectiveGasPrice: bigint;
                            from: viem.Address;
                            gasUsed: bigint;
                            logs: viem.Log<bigint, number, false>[];
                            logsBloom: viem.Hex;
                            root?: viem.Hash | undefined;
                            status: "success" | "reverted";
                            to: viem.Address | null;
                            transactionHash: viem.Hash;
                            transactionIndex: number;
                            type: viem.TransactionType;
                            l1GasPrice: bigint | null;
                            l1GasUsed: bigint | null;
                            l1Fee: bigint | null;
                            l1FeeScalar: number | null;
                        } & {};
                        type: "transactionReceipt";
                    };
                };
                serializers: {
                    readonly transaction: typeof viem_chains.serializeTransactionOpStack;
                };
            };
            contracts: {
                Registry: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "rootOwner";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "Unauthorized";
                        readonly type: "error";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "NewOwner";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "NewResolver";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "NewTTL";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "Transfer";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "recordExists";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "resolver";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner_";
                            readonly type: "address";
                        }];
                        readonly name: "setOwner";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl_";
                            readonly type: "uint64";
                        }];
                        readonly name: "setRecord";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver_";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner_";
                            readonly type: "address";
                        }];
                        readonly name: "setSubnodeOwner";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl_";
                            readonly type: "uint64";
                        }];
                        readonly name: "setSubnodeRecord";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl_";
                            readonly type: "uint64";
                        }];
                        readonly name: "setTTL";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "ttl";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }];
                    address: "0xb94704422c2a1e396835a571837aa5ae53285a95";
                    startBlock: number;
                };
                Resolver: {
                    startBlock: number;
                    abi: readonly [{
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "contentType";
                            readonly type: "uint256";
                        }];
                        readonly name: "ABIChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "a";
                            readonly type: "address";
                        }];
                        readonly name: "AddrChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "newAddress";
                            readonly type: "bytes";
                        }];
                        readonly name: "AddressChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "target";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "isAuthorised";
                            readonly type: "bool";
                        }];
                        readonly name: "AuthorisationChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "ContenthashChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "record";
                            readonly type: "bytes";
                        }];
                        readonly name: "DNSRecordChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }];
                        readonly name: "DNSRecordDeleted";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "DNSZoneCleared";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "implementer";
                            readonly type: "address";
                        }];
                        readonly name: "InterfaceChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "NameChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly name: "PubkeyChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "string";
                            readonly name: "indexedKey";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }];
                        readonly name: "TextChanged";
                        readonly type: "event";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "contentTypes";
                            readonly type: "uint256";
                        }];
                        readonly name: "ABI";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "addr";
                        readonly outputs: readonly [{
                            readonly internalType: "address payable";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }];
                        readonly name: "addr";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly name: "authorisations";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "clearDNSZone";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "contenthash";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "name";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }];
                        readonly name: "dnsRecord";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "name";
                            readonly type: "bytes32";
                        }];
                        readonly name: "hasDNSRecords";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "interfaceImplementer";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }];
                        readonly name: "multicall";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "results";
                            readonly type: "bytes[]";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "name";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "pubkey";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "contentType";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "setABI";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "a";
                            readonly type: "bytes";
                        }];
                        readonly name: "setAddr";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "a";
                            readonly type: "address";
                        }];
                        readonly name: "setAddr";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "target";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "isAuthorised";
                            readonly type: "bool";
                        }];
                        readonly name: "setAuthorisation";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "setContenthash";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "setDNSRecords";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }, {
                            readonly internalType: "address";
                            readonly name: "implementer";
                            readonly type: "address";
                        }];
                        readonly name: "setInterface";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "setName";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly name: "setPubkey";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }, {
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }];
                        readonly name: "setText";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }];
                        readonly name: "text";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "Approved";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "lastzonehash";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "zonehash";
                            readonly type: "bytes";
                        }];
                        readonly name: "DNSZonehashChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "string";
                            readonly name: "indexedKey";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }];
                        readonly name: "TextChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "newVersion";
                            readonly type: "uint64";
                        }];
                        readonly name: "VersionChanged";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "approve";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "clearRecords";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedFor";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "nodehash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }];
                        readonly name: "multicallWithNodeCheck";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "results";
                            readonly type: "bytes[]";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "recordVersions";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "newName";
                            readonly type: "string";
                        }];
                        readonly name: "setName";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "setZonehash";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "zonehash";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly type: "event";
                        readonly name: "DNSRecordChanged";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "name";
                            readonly type: "bytes";
                            readonly indexed: false;
                            readonly internalType: "bytes";
                        }, {
                            readonly name: "resource";
                            readonly type: "uint16";
                            readonly indexed: false;
                            readonly internalType: "uint16";
                        }, {
                            readonly name: "ttl";
                            readonly type: "uint32";
                            readonly indexed: false;
                            readonly internalType: "uint32";
                        }, {
                            readonly name: "record";
                            readonly type: "bytes";
                            readonly indexed: false;
                            readonly internalType: "bytes";
                        }];
                        readonly anonymous: false;
                    }, {
                        readonly type: "event";
                        readonly name: "DNSZoneUpdated";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "serial";
                            readonly type: "uint32";
                            readonly indexed: false;
                            readonly internalType: "uint32";
                        }];
                        readonly anonymous: false;
                    }, {
                        readonly type: "event";
                        readonly name: "ZoneCreated";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "version";
                            readonly type: "uint64";
                            readonly indexed: true;
                            readonly internalType: "uint64";
                        }];
                        readonly anonymous: false;
                    }];
                    filter: [{
                        readonly event: "AddrChanged";
                        readonly args: {};
                    }, {
                        readonly event: "AddressChanged";
                        readonly args: {};
                    }, {
                        readonly event: "NameChanged";
                        readonly args: {};
                    }, {
                        readonly event: "ABIChanged";
                        readonly args: {};
                    }, {
                        readonly event: "PubkeyChanged";
                        readonly args: {};
                    }, {
                        readonly event: "TextChanged(bytes32 indexed node, string indexed indexedKey, string key)";
                        readonly args: {};
                    }, {
                        readonly event: "TextChanged(bytes32 indexed node, string indexed indexedKey, string key, string value)";
                        readonly args: {};
                    }, {
                        readonly event: "ContenthashChanged";
                        readonly args: {};
                    }, {
                        readonly event: "InterfaceChanged";
                        readonly args: {};
                    }, {
                        readonly event: "AuthorisationChanged";
                        readonly args: {};
                    }, {
                        readonly event: "VersionChanged";
                        readonly args: {};
                    }, {
                        readonly event: "DNSRecordChanged";
                        readonly args: {};
                    }, {
                        readonly event: "DNSRecordDeleted";
                        readonly args: {};
                    }, {
                        readonly event: "DNSZonehashChanged";
                        readonly args: {};
                    }];
                };
                BaseRegistrar: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "registry_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "baseNode_";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "baseURI_";
                            readonly type: "string";
                        }, {
                            readonly internalType: "string";
                            readonly name: "collectionURI_";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "AccountBalanceOverflow";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "AlreadyInitialized";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "BalanceQueryForZeroAddress";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "Expired";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "NewOwnerIsZeroAddress";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "NoHandoverRequest";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "NonexistentToken";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "sender";
                            readonly type: "address";
                        }];
                        readonly name: "NotApprovedOwner";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "NotAvailable";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "NotOwnerNorApproved";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "NotRegisteredOrInGrace";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "OnlyController";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "RegistrarNotLive";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "TokenAlreadyExists";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "TokenDoesNotExist";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "TransferFromIncorrectOwner";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "TransferToNonERC721ReceiverImplementer";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "TransferToZeroAddress";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "Unauthorized";
                        readonly type: "error";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "Approval";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "isApproved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "_fromTokenId";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "_toTokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "BatchMetadataUpdate";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [];
                        readonly name: "ContractURIUpdated";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "ControllerAdded";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "ControllerRemoved";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRegistered";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "NameRegisteredWithRecord";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRenewed";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "pendingOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipHandoverCanceled";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "pendingOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipHandoverRequested";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "oldOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "Transfer";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "addController";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "approve";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "balanceOf";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "result";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "baseNode";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "cancelOwnershipHandover";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "pendingOwner";
                            readonly type: "address";
                        }];
                        readonly name: "completeOwnershipHandover";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "contractURI";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "controllers";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "isApproved";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "getApproved";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "result";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "result";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "isAvailable";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "name";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "nameExpires";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "expiry";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "result";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "ownerOf";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "pendingOwner";
                            readonly type: "address";
                        }];
                        readonly name: "ownershipHandoverExpiresAt";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "result";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "reclaim";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "register";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "registerOnly";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "registerWithRecord";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "registry";
                        readonly outputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "removeController";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "requestOwnershipHandover";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "safeTransferFrom";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "safeTransferFrom";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "isApproved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "baseURI_";
                            readonly type: "string";
                        }];
                        readonly name: "setBaseTokenURI";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "collectionURI_";
                            readonly type: "string";
                        }];
                        readonly name: "setContractURI";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "symbol";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "tokenURI";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "transferFrom";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }];
                    address: "0x03c4738Ee98aE44591e1A4A4F3CaB6641d95DD9a";
                    startBlock: number;
                };
                EARegistrarController: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract BaseRegistrar";
                            readonly name: "base_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IPriceOracle";
                            readonly name: "prices_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IReverseRegistrar";
                            readonly name: "reverseRegistrar_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "rootNode_";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "rootName_";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "paymentReceiver_";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "target";
                            readonly type: "address";
                        }];
                        readonly name: "AddressEmptyCode";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }];
                        readonly name: "AddressInsufficientBalance";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "AlreadyInitialized";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "sender";
                            readonly type: "address";
                        }];
                        readonly name: "AlreadyRegisteredWithDiscount";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "DurationTooShort";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "FailedInnerCall";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "key";
                            readonly type: "bytes32";
                        }];
                        readonly name: "InactiveDiscount";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "InsufficientValue";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "key";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "InvalidDiscount";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "key";
                            readonly type: "bytes32";
                        }];
                        readonly name: "InvalidDiscountAmount";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "InvalidPaymentReceiver";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "key";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "validator";
                            readonly type: "address";
                        }];
                        readonly name: "InvalidValidator";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "NameNotAvailable";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "NewOwnerIsZeroAddress";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "NoHandoverRequest";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "ResolverRequiredWhenDataSupplied";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "token";
                            readonly type: "address";
                        }];
                        readonly name: "SafeERC20FailedOperation";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "TransferFailed";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "Unauthorized";
                        readonly type: "error";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "registrant";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "discountKey";
                            readonly type: "bytes32";
                        }];
                        readonly name: "DiscountApplied";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "discountKey";
                            readonly type: "bytes32";
                        }, {
                            readonly components: readonly [{
                                readonly internalType: "bool";
                                readonly name: "active";
                                readonly type: "bool";
                            }, {
                                readonly internalType: "address";
                                readonly name: "discountValidator";
                                readonly type: "address";
                            }, {
                                readonly internalType: "bytes32";
                                readonly name: "key";
                                readonly type: "bytes32";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "discount";
                                readonly type: "uint256";
                            }];
                            readonly indexed: false;
                            readonly internalType: "struct EARegistrarController.DiscountDetails";
                            readonly name: "details";
                            readonly type: "tuple";
                        }];
                        readonly name: "DiscountUpdated";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "payee";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "price";
                            readonly type: "uint256";
                        }];
                        readonly name: "ETHPaymentProcessed";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRegistered";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "pendingOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipHandoverCanceled";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "pendingOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipHandoverRequested";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "oldOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "newPaymentReceiver";
                            readonly type: "address";
                        }];
                        readonly name: "PaymentReceiverUpdated";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "newPrices";
                            readonly type: "address";
                        }];
                        readonly name: "PriceOracleUpdated";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "newReverseRegistrar";
                            readonly type: "address";
                        }];
                        readonly name: "ReverseRegistrarUpdated";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MIN_NAME_LENGTH";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MIN_REGISTRATION_DURATION";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "available";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "cancelOwnershipHandover";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "pendingOwner";
                            readonly type: "address";
                        }];
                        readonly name: "completeOwnershipHandover";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly components: readonly [{
                                readonly internalType: "string";
                                readonly name: "name";
                                readonly type: "string";
                            }, {
                                readonly internalType: "address";
                                readonly name: "owner";
                                readonly type: "address";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "duration";
                                readonly type: "uint256";
                            }, {
                                readonly internalType: "address";
                                readonly name: "resolver";
                                readonly type: "address";
                            }, {
                                readonly internalType: "bytes[]";
                                readonly name: "data";
                                readonly type: "bytes[]";
                            }, {
                                readonly internalType: "bool";
                                readonly name: "reverseRecord";
                                readonly type: "bool";
                            }];
                            readonly internalType: "struct EARegistrarController.RegisterRequest";
                            readonly name: "request";
                            readonly type: "tuple";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "discountKey";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "validationData";
                            readonly type: "bytes";
                        }];
                        readonly name: "discountedRegister";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "discountKey";
                            readonly type: "bytes32";
                        }];
                        readonly name: "discountedRegisterPrice";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "price";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "registrant";
                            readonly type: "address";
                        }];
                        readonly name: "discountedRegistrants";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "hasRegisteredWithDiscount";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "key";
                            readonly type: "bytes32";
                        }];
                        readonly name: "discounts";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "active";
                            readonly type: "bool";
                        }, {
                            readonly internalType: "address";
                            readonly name: "discountValidator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "key";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "discount";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "getActiveDiscounts";
                        readonly outputs: readonly [{
                            readonly components: readonly [{
                                readonly internalType: "bool";
                                readonly name: "active";
                                readonly type: "bool";
                            }, {
                                readonly internalType: "address";
                                readonly name: "discountValidator";
                                readonly type: "address";
                            }, {
                                readonly internalType: "bytes32";
                                readonly name: "key";
                                readonly type: "bytes32";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "discount";
                                readonly type: "uint256";
                            }];
                            readonly internalType: "struct EARegistrarController.DiscountDetails[]";
                            readonly name: "";
                            readonly type: "tuple[]";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address[]";
                            readonly name: "addresses";
                            readonly type: "address[]";
                        }];
                        readonly name: "hasRegisteredWithDiscount";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "result";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "pendingOwner";
                            readonly type: "address";
                        }];
                        readonly name: "ownershipHandoverExpiresAt";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "result";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "paymentReceiver";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "prices";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IPriceOracle";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "_token";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "_to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_amount";
                            readonly type: "uint256";
                        }];
                        readonly name: "recoverFunds";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "registerPrice";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "rentPrice";
                        readonly outputs: readonly [{
                            readonly components: readonly [{
                                readonly internalType: "uint256";
                                readonly name: "base";
                                readonly type: "uint256";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "premium";
                                readonly type: "uint256";
                            }];
                            readonly internalType: "struct IPriceOracle.Price";
                            readonly name: "price";
                            readonly type: "tuple";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "requestOwnershipHandover";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "reverseRegistrar";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IReverseRegistrar";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "rootName";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "rootNode";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly components: readonly [{
                                readonly internalType: "bool";
                                readonly name: "active";
                                readonly type: "bool";
                            }, {
                                readonly internalType: "address";
                                readonly name: "discountValidator";
                                readonly type: "address";
                            }, {
                                readonly internalType: "bytes32";
                                readonly name: "key";
                                readonly type: "bytes32";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "discount";
                                readonly type: "uint256";
                            }];
                            readonly internalType: "struct EARegistrarController.DiscountDetails";
                            readonly name: "details";
                            readonly type: "tuple";
                        }];
                        readonly name: "setDiscountDetails";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "paymentReceiver_";
                            readonly type: "address";
                        }];
                        readonly name: "setPaymentReceiver";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "contract IPriceOracle";
                            readonly name: "prices_";
                            readonly type: "address";
                        }];
                        readonly name: "setPriceOracle";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "contract IReverseRegistrar";
                            readonly name: "reverse_";
                            readonly type: "address";
                        }];
                        readonly name: "setReverseRegistrar";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "valid";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "withdrawETH";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }];
                    address: "0xd3e6775ed9b7dc12b205c8e608dc3767b9e5efda";
                    startBlock: number;
                };
                RegistrarController: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract BaseRegistrar";
                            readonly name: "base_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IPriceOracle";
                            readonly name: "prices_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IReverseRegistrar";
                            readonly name: "reverseRegistrar_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "rootNode_";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "rootName_";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "paymentReceiver_";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "target";
                            readonly type: "address";
                        }];
                        readonly name: "AddressEmptyCode";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }];
                        readonly name: "AddressInsufficientBalance";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "AlreadyInitialized";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "sender";
                            readonly type: "address";
                        }];
                        readonly name: "AlreadyRegisteredWithDiscount";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "DurationTooShort";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "FailedInnerCall";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "key";
                            readonly type: "bytes32";
                        }];
                        readonly name: "InactiveDiscount";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "InsufficientValue";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "key";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "InvalidDiscount";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "key";
                            readonly type: "bytes32";
                        }];
                        readonly name: "InvalidDiscountAmount";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "InvalidPaymentReceiver";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "key";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "validator";
                            readonly type: "address";
                        }];
                        readonly name: "InvalidValidator";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "NameNotAvailable";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "NewOwnerIsZeroAddress";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "NoHandoverRequest";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "ResolverRequiredWhenDataSupplied";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "token";
                            readonly type: "address";
                        }];
                        readonly name: "SafeERC20FailedOperation";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "TransferFailed";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "Unauthorized";
                        readonly type: "error";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "registrant";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "discountKey";
                            readonly type: "bytes32";
                        }];
                        readonly name: "DiscountApplied";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "discountKey";
                            readonly type: "bytes32";
                        }, {
                            readonly components: readonly [{
                                readonly internalType: "bool";
                                readonly name: "active";
                                readonly type: "bool";
                            }, {
                                readonly internalType: "address";
                                readonly name: "discountValidator";
                                readonly type: "address";
                            }, {
                                readonly internalType: "bytes32";
                                readonly name: "key";
                                readonly type: "bytes32";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "discount";
                                readonly type: "uint256";
                            }];
                            readonly indexed: false;
                            readonly internalType: "struct RegistrarController.DiscountDetails";
                            readonly name: "details";
                            readonly type: "tuple";
                        }];
                        readonly name: "DiscountUpdated";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "payee";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "price";
                            readonly type: "uint256";
                        }];
                        readonly name: "ETHPaymentProcessed";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRegistered";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRenewed";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "pendingOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipHandoverCanceled";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "pendingOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipHandoverRequested";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "oldOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "newPaymentReceiver";
                            readonly type: "address";
                        }];
                        readonly name: "PaymentReceiverUpdated";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "newPrices";
                            readonly type: "address";
                        }];
                        readonly name: "PriceOracleUpdated";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "newReverseRegistrar";
                            readonly type: "address";
                        }];
                        readonly name: "ReverseRegistrarUpdated";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MIN_NAME_LENGTH";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MIN_REGISTRATION_DURATION";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "available";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "cancelOwnershipHandover";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "pendingOwner";
                            readonly type: "address";
                        }];
                        readonly name: "completeOwnershipHandover";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly components: readonly [{
                                readonly internalType: "string";
                                readonly name: "name";
                                readonly type: "string";
                            }, {
                                readonly internalType: "address";
                                readonly name: "owner";
                                readonly type: "address";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "duration";
                                readonly type: "uint256";
                            }, {
                                readonly internalType: "address";
                                readonly name: "resolver";
                                readonly type: "address";
                            }, {
                                readonly internalType: "bytes[]";
                                readonly name: "data";
                                readonly type: "bytes[]";
                            }, {
                                readonly internalType: "bool";
                                readonly name: "reverseRecord";
                                readonly type: "bool";
                            }];
                            readonly internalType: "struct RegistrarController.RegisterRequest";
                            readonly name: "request";
                            readonly type: "tuple";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "discountKey";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "validationData";
                            readonly type: "bytes";
                        }];
                        readonly name: "discountedRegister";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "discountKey";
                            readonly type: "bytes32";
                        }];
                        readonly name: "discountedRegisterPrice";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "price";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "registrant";
                            readonly type: "address";
                        }];
                        readonly name: "discountedRegistrants";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "hasRegisteredWithDiscount";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "key";
                            readonly type: "bytes32";
                        }];
                        readonly name: "discounts";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "active";
                            readonly type: "bool";
                        }, {
                            readonly internalType: "address";
                            readonly name: "discountValidator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "key";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "discount";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "getActiveDiscounts";
                        readonly outputs: readonly [{
                            readonly components: readonly [{
                                readonly internalType: "bool";
                                readonly name: "active";
                                readonly type: "bool";
                            }, {
                                readonly internalType: "address";
                                readonly name: "discountValidator";
                                readonly type: "address";
                            }, {
                                readonly internalType: "bytes32";
                                readonly name: "key";
                                readonly type: "bytes32";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "discount";
                                readonly type: "uint256";
                            }];
                            readonly internalType: "struct RegistrarController.DiscountDetails[]";
                            readonly name: "";
                            readonly type: "tuple[]";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address[]";
                            readonly name: "addresses";
                            readonly type: "address[]";
                        }];
                        readonly name: "hasRegisteredWithDiscount";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "launchTime";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "result";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "pendingOwner";
                            readonly type: "address";
                        }];
                        readonly name: "ownershipHandoverExpiresAt";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "result";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "paymentReceiver";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "prices";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IPriceOracle";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "_token";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "_to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_amount";
                            readonly type: "uint256";
                        }];
                        readonly name: "recoverFunds";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly components: readonly [{
                                readonly internalType: "string";
                                readonly name: "name";
                                readonly type: "string";
                            }, {
                                readonly internalType: "address";
                                readonly name: "owner";
                                readonly type: "address";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "duration";
                                readonly type: "uint256";
                            }, {
                                readonly internalType: "address";
                                readonly name: "resolver";
                                readonly type: "address";
                            }, {
                                readonly internalType: "bytes[]";
                                readonly name: "data";
                                readonly type: "bytes[]";
                            }, {
                                readonly internalType: "bool";
                                readonly name: "reverseRecord";
                                readonly type: "bool";
                            }];
                            readonly internalType: "struct RegistrarController.RegisterRequest";
                            readonly name: "request";
                            readonly type: "tuple";
                        }];
                        readonly name: "register";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "registerPrice";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "rentPrice";
                        readonly outputs: readonly [{
                            readonly components: readonly [{
                                readonly internalType: "uint256";
                                readonly name: "base";
                                readonly type: "uint256";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "premium";
                                readonly type: "uint256";
                            }];
                            readonly internalType: "struct IPriceOracle.Price";
                            readonly name: "price";
                            readonly type: "tuple";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "requestOwnershipHandover";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "reverseRegistrar";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IReverseRegistrar";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "rootName";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "rootNode";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly components: readonly [{
                                readonly internalType: "bool";
                                readonly name: "active";
                                readonly type: "bool";
                            }, {
                                readonly internalType: "address";
                                readonly name: "discountValidator";
                                readonly type: "address";
                            }, {
                                readonly internalType: "bytes32";
                                readonly name: "key";
                                readonly type: "bytes32";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "discount";
                                readonly type: "uint256";
                            }];
                            readonly internalType: "struct RegistrarController.DiscountDetails";
                            readonly name: "details";
                            readonly type: "tuple";
                        }];
                        readonly name: "setDiscountDetails";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "launchTime_";
                            readonly type: "uint256";
                        }];
                        readonly name: "setLaunchTime";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "paymentReceiver_";
                            readonly type: "address";
                        }];
                        readonly name: "setPaymentReceiver";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "contract IPriceOracle";
                            readonly name: "prices_";
                            readonly type: "address";
                        }];
                        readonly name: "setPriceOracle";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "contract IReverseRegistrar";
                            readonly name: "reverse_";
                            readonly type: "address";
                        }];
                        readonly name: "setReverseRegistrar";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "valid";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "withdrawETH";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }];
                    address: "0x4cCb0BB02FCABA27e82a56646E81d8c5bC4119a5";
                    startBlock: number;
                };
            };
        };
        lineanames: {
            chain: {
                blockExplorers: {
                    readonly default: {
                        readonly name: "Etherscan";
                        readonly url: "https://lineascan.build";
                        readonly apiUrl: "https://api.lineascan.build/api";
                    };
                };
                contracts: {
                    readonly multicall3: {
                        readonly address: "0xcA11bde05977b3631167028862bE2a173976CA11";
                        readonly blockCreated: 42;
                    };
                };
                id: 59144;
                name: "Linea Mainnet";
                nativeCurrency: {
                    readonly name: "Linea Ether";
                    readonly symbol: "ETH";
                    readonly decimals: 18;
                };
                rpcUrls: {
                    readonly default: {
                        readonly http: readonly ["https://rpc.linea.build"];
                        readonly webSocket: readonly ["wss://rpc.linea.build"];
                    };
                };
                sourceId?: number | undefined;
                testnet: false;
                custom?: Record<string, unknown> | undefined;
                fees: {
                    readonly estimateFeesPerGas: ({ client, multiply, request, type, }: Parameters<viem.ChainEstimateFeesPerGasFn>[0]) => ReturnType<viem.ChainEstimateFeesPerGasFn>;
                    readonly maxPriorityFeePerGas: ({ block, client, request }: viem.ChainFeesFnParameters<viem.ChainFormatters | undefined>) => Promise<bigint | null>;
                };
                formatters?: undefined;
                serializers?: viem.ChainSerializers<undefined, viem.TransactionSerializable> | undefined;
            };
            contracts: {
                Registry: {
                    abi: readonly [{
                        readonly inputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "NewOwner";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "NewResolver";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "NewTTL";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "Transfer";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "recordExists";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "resolver";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "setOwner";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setRecord";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "setSubnodeOwner";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setSubnodeRecord";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setTTL";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "ttl";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }];
                    address: "0x50130b669B28C339991d8676FA73CF122a121267";
                    startBlock: number;
                };
                Resolver: {
                    startBlock: number;
                    abi: readonly [{
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "contentType";
                            readonly type: "uint256";
                        }];
                        readonly name: "ABIChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "a";
                            readonly type: "address";
                        }];
                        readonly name: "AddrChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "newAddress";
                            readonly type: "bytes";
                        }];
                        readonly name: "AddressChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "target";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "isAuthorised";
                            readonly type: "bool";
                        }];
                        readonly name: "AuthorisationChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "ContenthashChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "record";
                            readonly type: "bytes";
                        }];
                        readonly name: "DNSRecordChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }];
                        readonly name: "DNSRecordDeleted";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "DNSZoneCleared";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "implementer";
                            readonly type: "address";
                        }];
                        readonly name: "InterfaceChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "NameChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly name: "PubkeyChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "string";
                            readonly name: "indexedKey";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }];
                        readonly name: "TextChanged";
                        readonly type: "event";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "contentTypes";
                            readonly type: "uint256";
                        }];
                        readonly name: "ABI";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "addr";
                        readonly outputs: readonly [{
                            readonly internalType: "address payable";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }];
                        readonly name: "addr";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly name: "authorisations";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "clearDNSZone";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "contenthash";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "name";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }];
                        readonly name: "dnsRecord";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "name";
                            readonly type: "bytes32";
                        }];
                        readonly name: "hasDNSRecords";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "interfaceImplementer";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }];
                        readonly name: "multicall";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "results";
                            readonly type: "bytes[]";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "name";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "pubkey";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "contentType";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "setABI";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "a";
                            readonly type: "bytes";
                        }];
                        readonly name: "setAddr";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "a";
                            readonly type: "address";
                        }];
                        readonly name: "setAddr";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "target";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "isAuthorised";
                            readonly type: "bool";
                        }];
                        readonly name: "setAuthorisation";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "setContenthash";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "setDNSRecords";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }, {
                            readonly internalType: "address";
                            readonly name: "implementer";
                            readonly type: "address";
                        }];
                        readonly name: "setInterface";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "setName";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly name: "setPubkey";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }, {
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }];
                        readonly name: "setText";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }];
                        readonly name: "text";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "Approved";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "lastzonehash";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "zonehash";
                            readonly type: "bytes";
                        }];
                        readonly name: "DNSZonehashChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "string";
                            readonly name: "indexedKey";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }];
                        readonly name: "TextChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "newVersion";
                            readonly type: "uint64";
                        }];
                        readonly name: "VersionChanged";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "approve";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "clearRecords";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedFor";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "nodehash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }];
                        readonly name: "multicallWithNodeCheck";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "results";
                            readonly type: "bytes[]";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "recordVersions";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "newName";
                            readonly type: "string";
                        }];
                        readonly name: "setName";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "setZonehash";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "zonehash";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly type: "event";
                        readonly name: "DNSRecordChanged";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "name";
                            readonly type: "bytes";
                            readonly indexed: false;
                            readonly internalType: "bytes";
                        }, {
                            readonly name: "resource";
                            readonly type: "uint16";
                            readonly indexed: false;
                            readonly internalType: "uint16";
                        }, {
                            readonly name: "ttl";
                            readonly type: "uint32";
                            readonly indexed: false;
                            readonly internalType: "uint32";
                        }, {
                            readonly name: "record";
                            readonly type: "bytes";
                            readonly indexed: false;
                            readonly internalType: "bytes";
                        }];
                        readonly anonymous: false;
                    }, {
                        readonly type: "event";
                        readonly name: "DNSZoneUpdated";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "serial";
                            readonly type: "uint32";
                            readonly indexed: false;
                            readonly internalType: "uint32";
                        }];
                        readonly anonymous: false;
                    }, {
                        readonly type: "event";
                        readonly name: "ZoneCreated";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "version";
                            readonly type: "uint64";
                            readonly indexed: true;
                            readonly internalType: "uint64";
                        }];
                        readonly anonymous: false;
                    }];
                    filter: [{
                        readonly event: "AddrChanged";
                        readonly args: {};
                    }, {
                        readonly event: "AddressChanged";
                        readonly args: {};
                    }, {
                        readonly event: "NameChanged";
                        readonly args: {};
                    }, {
                        readonly event: "ABIChanged";
                        readonly args: {};
                    }, {
                        readonly event: "PubkeyChanged";
                        readonly args: {};
                    }, {
                        readonly event: "TextChanged(bytes32 indexed node, string indexed indexedKey, string key)";
                        readonly args: {};
                    }, {
                        readonly event: "TextChanged(bytes32 indexed node, string indexed indexedKey, string key, string value)";
                        readonly args: {};
                    }, {
                        readonly event: "ContenthashChanged";
                        readonly args: {};
                    }, {
                        readonly event: "InterfaceChanged";
                        readonly args: {};
                    }, {
                        readonly event: "AuthorisationChanged";
                        readonly args: {};
                    }, {
                        readonly event: "VersionChanged";
                        readonly args: {};
                    }, {
                        readonly event: "DNSRecordChanged";
                        readonly args: {};
                    }, {
                        readonly event: "DNSRecordDeleted";
                        readonly args: {};
                    }, {
                        readonly event: "DNSZonehashChanged";
                        readonly args: {};
                    }];
                };
                BaseRegistrar: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "_ens";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "_baseNode";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "approved";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "Approval";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "ControllerAdded";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "ControllerRemoved";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameMigrated";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRegistered";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRenewed";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "previousOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "Transfer";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "GRACE_PERIOD";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "addController";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "approve";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "available";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "balanceOf";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "baseNode";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly name: "controllers";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "ens";
                        readonly outputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "getApproved";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "name";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "nameExpires";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "ownerOf";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "reclaim";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "register";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "registerOnly";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "removeController";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "safeTransferFrom";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "safeTransferFrom";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "symbol";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "tokenURI";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "transferFrom";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }];
                    address: "0x6e84390dCc5195414eC91A8c56A5c91021B95704";
                    startBlock: number;
                };
                EthRegistrarController: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract BaseRegistrarImplementation";
                            readonly name: "_base";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IPriceOracle";
                            readonly name: "_prices";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_minCommitmentAge";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_maxCommitmentAge";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "contract ReverseRegistrar";
                            readonly name: "_reverseRegistrar";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract INameWrapper";
                            readonly name: "_nameWrapper";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract ENS";
                            readonly name: "_ens";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract PohVerifier";
                            readonly name: "_pohVerifier";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract PohRegistrationManager";
                            readonly name: "_pohRegistrationManager";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "_baseNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "_baseDomain";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "BaseNodeAsETHNodeOrROOTNodeNotAllowed";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "CommitmentTooNew";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "CommitmentTooOld";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "DifferentBaseDomainBaseNode";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "DurationTooShort";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "EmptyStringNotAllowed";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "InsufficientValue";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MaxCommitmentAgeTooHigh";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MaxCommitmentAgeTooLow";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "NameNotAvailable";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnerAlreadyRegistered";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "PohVerificationFailed";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "currentTime";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "renewTimeStart";
                            readonly type: "uint256";
                        }];
                        readonly name: "RenewPOHNotStarted";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "ResolverRequiredWhenDataSupplied";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "sender";
                            readonly type: "address";
                        }];
                        readonly name: "SenderNotOwner";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "UnexpiredCommitmentExists";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "WrongPohRegistrationDuration";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "ZeroAddressNotAllowed";
                        readonly type: "error";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "baseCost";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "premium";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRegistered";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "cost";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRenewed";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRenewedPoh";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "OwnerNameRegistered";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "previousOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "PohNameRegistered";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "GRACE_PERIOD";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MIN_REGISTRATION_DURATION";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "POH_REGISTRATION_DURATION";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "available";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "baseDomain";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "baseNode";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "commit";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "commitments";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "secret";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "reverseRecord";
                            readonly type: "bool";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }];
                        readonly name: "makeCommitment";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "maxCommitmentAge";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "minCommitmentAge";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "nameWrapper";
                        readonly outputs: readonly [{
                            readonly internalType: "contract INameWrapper";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "reverseRecord";
                            readonly type: "bool";
                        }];
                        readonly name: "ownerRegister";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "pohRegistrationManager";
                        readonly outputs: readonly [{
                            readonly internalType: "contract PohRegistrationManager";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "pohVerifier";
                        readonly outputs: readonly [{
                            readonly internalType: "contract PohVerifier";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "prices";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IPriceOracle";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "_token";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "_to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_amount";
                            readonly type: "uint256";
                        }];
                        readonly name: "recoverFunds";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "_address";
                            readonly type: "address";
                        }];
                        readonly name: "redeemed";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "secret";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "reverseRecord";
                            readonly type: "bool";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }];
                        readonly name: "register";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "secret";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "reverseRecord";
                            readonly type: "bool";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "signature";
                            readonly type: "bytes";
                        }];
                        readonly name: "registerPoh";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "signature";
                            readonly type: "bytes";
                        }];
                        readonly name: "renewPoh";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "rentPrice";
                        readonly outputs: readonly [{
                            readonly components: readonly [{
                                readonly internalType: "uint256";
                                readonly name: "base";
                                readonly type: "uint256";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "premium";
                                readonly type: "uint256";
                            }];
                            readonly internalType: "struct IPriceOracle.Price";
                            readonly name: "price";
                            readonly type: "tuple";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "reverseRegistrar";
                        readonly outputs: readonly [{
                            readonly internalType: "contract ReverseRegistrar";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "valid";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "withdraw";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }];
                    address: "0xDb75Db974B1F2bD3b5916d503036208064D18295";
                    startBlock: number;
                };
                NameWrapper: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "_ens";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IBaseRegistrar";
                            readonly name: "_registrar";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IMetadataService";
                            readonly name: "_metadataService";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "_baseNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "_baseNodeDnsEncoded";
                            readonly type: "bytes";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "BaseNodeAsETHNodeOrROOTNodeNotAllowed";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "CannotUpgrade";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "DifferentBaseNodeBaseNodeDnsEncoded";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "EmptyDataNotAllowed";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "IncompatibleParent";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "IncorrectTargetOwner";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "IncorrectTokenType";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "labelHash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "expectedLabelhash";
                            readonly type: "bytes32";
                        }];
                        readonly name: "LabelMismatch";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }];
                        readonly name: "LabelTooLong";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "LabelTooShort";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "NameIsNotWrapped";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "OperationProhibited";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "addr";
                            readonly type: "address";
                        }];
                        readonly name: "Unauthorised";
                        readonly type: "error";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "approved";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "Approval";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "active";
                            readonly type: "bool";
                        }];
                        readonly name: "ControllerChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "ExpiryExtended";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }];
                        readonly name: "FusesSet";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "NameUnwrapped";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "NameWrapped";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "previousOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256[]";
                            readonly name: "ids";
                            readonly type: "uint256[]";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256[]";
                            readonly name: "values";
                            readonly type: "uint256[]";
                        }];
                        readonly name: "TransferBatch";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "value";
                            readonly type: "uint256";
                        }];
                        readonly name: "TransferSingle";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "URI";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly name: "_tokens";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuseMask";
                            readonly type: "uint32";
                        }];
                        readonly name: "allFusesBurned";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "approve";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "balanceOf";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address[]";
                            readonly name: "accounts";
                            readonly type: "address[]";
                        }, {
                            readonly internalType: "uint256[]";
                            readonly name: "ids";
                            readonly type: "uint256[]";
                        }];
                        readonly name: "balanceOfBatch";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256[]";
                            readonly name: "";
                            readonly type: "uint256[]";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "baseNode";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "addr";
                            readonly type: "address";
                        }];
                        readonly name: "canExtendSubnames";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "addr";
                            readonly type: "address";
                        }];
                        readonly name: "canModifyName";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly name: "controllers";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "ens";
                        readonly outputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "extendExpiry";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "getApproved";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "getData";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }];
                        readonly name: "isWrapped";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "isWrapped";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "metadataService";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IMetadataService";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "name";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "names";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "onERC721Received";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "";
                            readonly type: "bytes4";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "ownerOf";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "_token";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "_to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_amount";
                            readonly type: "uint256";
                        }];
                        readonly name: "recoverFunds";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }];
                        readonly name: "registerAndWrap";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "registrarExpiry";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "registrar";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IBaseRegistrar";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256[]";
                            readonly name: "ids";
                            readonly type: "uint256[]";
                        }, {
                            readonly internalType: "uint256[]";
                            readonly name: "amounts";
                            readonly type: "uint256[]";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "safeBatchTransferFrom";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "amount";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "safeTransferFrom";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "setChildFuses";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "active";
                            readonly type: "bool";
                        }];
                        readonly name: "setController";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }];
                        readonly name: "setFuses";
                        readonly outputs: readonly [{
                            readonly internalType: "uint32";
                            readonly name: "";
                            readonly type: "uint32";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "contract IMetadataService";
                            readonly name: "_metadataService";
                            readonly type: "address";
                        }];
                        readonly name: "setMetadataService";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setRecord";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "setSubnodeOwner";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "setSubnodeRecord";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setTTL";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "contract INameWrapperUpgrade";
                            readonly name: "_upgradeAddress";
                            readonly type: "address";
                        }];
                        readonly name: "setUpgradeContract";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceId";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "unwrap";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "registrant";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "unwrapAnyLD";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "extraData";
                            readonly type: "bytes";
                        }];
                        readonly name: "upgrade";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "upgradeContract";
                        readonly outputs: readonly [{
                            readonly internalType: "contract INameWrapperUpgrade";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "uri";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "wrap";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "wrapAnyLD";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }];
                    address: "0xA53cca02F98D590819141Aa85C891e2Af713C223";
                    startBlock: number;
                };
            };
        };
        "threedns-optimism": {
            chain: {
                blockExplorers: {
                    readonly default: {
                        readonly name: "Optimism Explorer";
                        readonly url: "https://optimistic.etherscan.io";
                        readonly apiUrl: "https://api-optimistic.etherscan.io/api";
                    };
                };
                contracts: {
                    readonly disputeGameFactory: {
                        readonly 1: {
                            readonly address: "0xe5965Ab5962eDc7477C8520243A95517CD252fA9";
                        };
                    };
                    readonly l2OutputOracle: {
                        readonly 1: {
                            readonly address: "0xdfe97868233d1aa22e815a266982f2cf17685a27";
                        };
                    };
                    readonly multicall3: {
                        readonly address: "0xca11bde05977b3631167028862be2a173976ca11";
                        readonly blockCreated: 4286263;
                    };
                    readonly portal: {
                        readonly 1: {
                            readonly address: "0xbEb5Fc579115071764c7423A4f12eDde41f106Ed";
                        };
                    };
                    readonly l1StandardBridge: {
                        readonly 1: {
                            readonly address: "0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1";
                        };
                    };
                    readonly gasPriceOracle: {
                        readonly address: "0x420000000000000000000000000000000000000F";
                    };
                    readonly l1Block: {
                        readonly address: "0x4200000000000000000000000000000000000015";
                    };
                    readonly l2CrossDomainMessenger: {
                        readonly address: "0x4200000000000000000000000000000000000007";
                    };
                    readonly l2Erc721Bridge: {
                        readonly address: "0x4200000000000000000000000000000000000014";
                    };
                    readonly l2StandardBridge: {
                        readonly address: "0x4200000000000000000000000000000000000010";
                    };
                    readonly l2ToL1MessagePasser: {
                        readonly address: "0x4200000000000000000000000000000000000016";
                    };
                };
                id: 10;
                name: "OP Mainnet";
                nativeCurrency: {
                    readonly name: "Ether";
                    readonly symbol: "ETH";
                    readonly decimals: 18;
                };
                rpcUrls: {
                    readonly default: {
                        readonly http: readonly ["https://mainnet.optimism.io"];
                    };
                };
                sourceId: 1;
                testnet?: boolean | undefined;
                custom?: Record<string, unknown> | undefined;
                fees?: viem.ChainFees<undefined> | undefined;
                formatters: {
                    readonly block: {
                        exclude: [] | undefined;
                        format: (args: viem_chains.OpStackRpcBlock) => {
                            baseFeePerGas: bigint | null;
                            blobGasUsed: bigint;
                            difficulty: bigint;
                            excessBlobGas: bigint;
                            extraData: viem.Hex;
                            gasLimit: bigint;
                            gasUsed: bigint;
                            hash: `0x${string}` | null;
                            logsBloom: `0x${string}` | null;
                            miner: viem.Address;
                            mixHash: viem.Hash;
                            nonce: `0x${string}` | null;
                            number: bigint | null;
                            parentBeaconBlockRoot?: viem.Hex | undefined;
                            parentHash: viem.Hash;
                            receiptsRoot: viem.Hex;
                            sealFields: viem.Hex[];
                            sha3Uncles: viem.Hash;
                            size: bigint;
                            stateRoot: viem.Hash;
                            timestamp: bigint;
                            totalDifficulty: bigint | null;
                            transactions: `0x${string}`[] | viem_chains.OpStackTransaction<boolean>[];
                            transactionsRoot: viem.Hash;
                            uncles: viem.Hash[];
                            withdrawals?: viem.Withdrawal[] | undefined;
                            withdrawalsRoot?: viem.Hex | undefined;
                        } & {};
                        type: "block";
                    };
                    readonly transaction: {
                        exclude: [] | undefined;
                        format: (args: viem_chains.OpStackRpcTransaction) => ({
                            blockHash: `0x${string}` | null;
                            blockNumber: bigint | null;
                            from: viem.Address;
                            gas: bigint;
                            hash: viem.Hash;
                            input: viem.Hex;
                            nonce: number;
                            r: viem.Hex;
                            s: viem.Hex;
                            to: viem.Address | null;
                            transactionIndex: number | null;
                            typeHex: viem.Hex | null;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                            gasPrice?: undefined;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas: bigint;
                            maxPriorityFeePerGas: bigint;
                            isSystemTx?: boolean;
                            mint?: bigint | undefined;
                            sourceHash: viem.Hex;
                            type: "deposit";
                        } | {
                            r: viem.Hex;
                            s: viem.Hex;
                            v: bigint;
                            to: viem.Address | null;
                            from: viem.Address;
                            gas: bigint;
                            nonce: number;
                            value: bigint;
                            blockHash: `0x${string}` | null;
                            blockNumber: bigint | null;
                            hash: viem.Hash;
                            input: viem.Hex;
                            transactionIndex: number | null;
                            typeHex: viem.Hex | null;
                            accessList?: undefined;
                            authorizationList?: undefined;
                            blobVersionedHashes?: undefined;
                            chainId?: number | undefined;
                            yParity?: undefined;
                            type: "legacy";
                            gasPrice: bigint;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas?: undefined;
                            maxPriorityFeePerGas?: undefined;
                            isSystemTx?: undefined;
                            mint?: undefined;
                            sourceHash?: undefined;
                        } | {
                            blockHash: `0x${string}` | null;
                            blockNumber: bigint | null;
                            from: viem.Address;
                            gas: bigint;
                            hash: viem.Hash;
                            input: viem.Hex;
                            nonce: number;
                            r: viem.Hex;
                            s: viem.Hex;
                            to: viem.Address | null;
                            transactionIndex: number | null;
                            typeHex: viem.Hex | null;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                            accessList: viem.AccessList;
                            authorizationList?: undefined;
                            blobVersionedHashes?: undefined;
                            chainId: number;
                            type: "eip2930";
                            gasPrice: bigint;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas?: undefined;
                            maxPriorityFeePerGas?: undefined;
                            isSystemTx?: undefined;
                            mint?: undefined;
                            sourceHash?: undefined;
                        } | {
                            blockHash: `0x${string}` | null;
                            blockNumber: bigint | null;
                            from: viem.Address;
                            gas: bigint;
                            hash: viem.Hash;
                            input: viem.Hex;
                            nonce: number;
                            r: viem.Hex;
                            s: viem.Hex;
                            to: viem.Address | null;
                            transactionIndex: number | null;
                            typeHex: viem.Hex | null;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                            accessList: viem.AccessList;
                            authorizationList?: undefined;
                            blobVersionedHashes?: undefined;
                            chainId: number;
                            type: "eip1559";
                            gasPrice?: undefined;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas: bigint;
                            maxPriorityFeePerGas: bigint;
                            isSystemTx?: undefined;
                            mint?: undefined;
                            sourceHash?: undefined;
                        } | {
                            blockHash: `0x${string}` | null;
                            blockNumber: bigint | null;
                            from: viem.Address;
                            gas: bigint;
                            hash: viem.Hash;
                            input: viem.Hex;
                            nonce: number;
                            r: viem.Hex;
                            s: viem.Hex;
                            to: viem.Address | null;
                            transactionIndex: number | null;
                            typeHex: viem.Hex | null;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                            accessList: viem.AccessList;
                            authorizationList?: undefined;
                            blobVersionedHashes: readonly viem.Hex[];
                            chainId: number;
                            type: "eip4844";
                            gasPrice?: undefined;
                            maxFeePerBlobGas: bigint;
                            maxFeePerGas: bigint;
                            maxPriorityFeePerGas: bigint;
                            isSystemTx?: undefined;
                            mint?: undefined;
                            sourceHash?: undefined;
                        } | {
                            blockHash: `0x${string}` | null;
                            blockNumber: bigint | null;
                            from: viem.Address;
                            gas: bigint;
                            hash: viem.Hash;
                            input: viem.Hex;
                            nonce: number;
                            r: viem.Hex;
                            s: viem.Hex;
                            to: viem.Address | null;
                            transactionIndex: number | null;
                            typeHex: viem.Hex | null;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                            accessList: viem.AccessList;
                            authorizationList: viem_experimental.SignedAuthorizationList;
                            blobVersionedHashes?: undefined;
                            chainId: number;
                            type: "eip7702";
                            gasPrice?: undefined;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas: bigint;
                            maxPriorityFeePerGas: bigint;
                            isSystemTx?: undefined;
                            mint?: undefined;
                            sourceHash?: undefined;
                        }) & {};
                        type: "transaction";
                    };
                    readonly transactionReceipt: {
                        exclude: [] | undefined;
                        format: (args: viem_chains.OpStackRpcTransactionReceipt) => {
                            blobGasPrice?: bigint | undefined;
                            blobGasUsed?: bigint | undefined;
                            blockHash: viem.Hash;
                            blockNumber: bigint;
                            contractAddress: viem.Address | null | undefined;
                            cumulativeGasUsed: bigint;
                            effectiveGasPrice: bigint;
                            from: viem.Address;
                            gasUsed: bigint;
                            logs: viem.Log<bigint, number, false>[];
                            logsBloom: viem.Hex;
                            root?: viem.Hash | undefined;
                            status: "success" | "reverted";
                            to: viem.Address | null;
                            transactionHash: viem.Hash;
                            transactionIndex: number;
                            type: viem.TransactionType;
                            l1GasPrice: bigint | null;
                            l1GasUsed: bigint | null;
                            l1Fee: bigint | null;
                            l1FeeScalar: number | null;
                        } & {};
                        type: "transactionReceipt";
                    };
                };
                serializers: {
                    readonly transaction: typeof viem_chains.serializeTransactionOpStack;
                };
            };
            contracts: {
                ThreeDNSToken: {
                    abi: readonly [{
                        readonly type: "event";
                        readonly name: "NewOwner";
                        readonly inputs: readonly [{
                            readonly type: "bytes32";
                            readonly name: "node";
                            readonly indexed: true;
                        }, {
                            readonly type: "bytes32";
                            readonly name: "label";
                            readonly indexed: true;
                        }, {
                            readonly type: "address";
                            readonly name: "owner";
                            readonly indexed: false;
                        }];
                    }, {
                        readonly type: "event";
                        readonly name: "RegistrationCreated";
                        readonly inputs: readonly [{
                            readonly type: "bytes32";
                            readonly name: "node";
                            readonly indexed: true;
                        }, {
                            readonly type: "bytes32";
                            readonly name: "tld";
                            readonly indexed: true;
                        }, {
                            readonly type: "bytes";
                            readonly name: "fqdn";
                            readonly indexed: false;
                        }, {
                            readonly type: "address";
                            readonly name: "registrant";
                            readonly indexed: false;
                        }, {
                            readonly type: "uint32";
                            readonly name: "controlBitmap";
                            readonly indexed: false;
                        }, {
                            readonly type: "uint64";
                            readonly name: "expiry";
                            readonly indexed: false;
                        }];
                    }, {
                        readonly type: "event";
                        readonly name: "RegistrationExtended";
                        readonly inputs: readonly [{
                            readonly type: "bytes32";
                            readonly name: "node";
                            readonly indexed: true;
                        }, {
                            readonly type: "uint64";
                            readonly name: "duration";
                            readonly indexed: true;
                        }, {
                            readonly type: "uint64";
                            readonly name: "newExpiry";
                            readonly indexed: true;
                        }];
                    }, {
                        readonly type: "event";
                        readonly name: "RegistrationTransferred";
                        readonly inputs: readonly [{
                            readonly type: "bytes32";
                            readonly name: "node";
                            readonly indexed: true;
                        }, {
                            readonly type: "address";
                            readonly name: "newOwner";
                            readonly indexed: true;
                        }, {
                            readonly type: "address";
                            readonly name: "operator";
                            readonly indexed: true;
                        }];
                    }, {
                        readonly type: "event";
                        readonly name: "RegistrationBurned";
                        readonly inputs: readonly [{
                            readonly type: "bytes32";
                            readonly name: "node";
                            readonly indexed: true;
                        }, {
                            readonly type: "address";
                            readonly name: "burner";
                            readonly indexed: true;
                        }];
                    }, {
                        readonly type: "function";
                        readonly name: "uri";
                        readonly inputs: readonly [{
                            readonly type: "uint256";
                            readonly name: "tokenId_";
                        }];
                        readonly outputs: readonly [{
                            readonly type: "string";
                            readonly name: "";
                        }];
                        readonly stateMutability: "view";
                    }, {
                        readonly type: "function";
                        readonly name: "resolver";
                        readonly inputs: readonly [{
                            readonly type: "bytes32";
                            readonly name: "node";
                        }];
                        readonly outputs: readonly [{
                            readonly type: "address";
                            readonly name: "";
                        }];
                        readonly stateMutability: "view";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "Transfer";
                        readonly type: "event";
                    }];
                    address: "0xBB7B805B257d7C76CA9435B3ffe780355E4C4B17";
                    startBlock: number;
                };
                Resolver: {
                    abi: readonly [{
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "contentType";
                            readonly type: "uint256";
                        }];
                        readonly name: "ABIChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "a";
                            readonly type: "address";
                        }];
                        readonly name: "AddrChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "newAddress";
                            readonly type: "bytes";
                        }];
                        readonly name: "AddressChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "target";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "isAuthorised";
                            readonly type: "bool";
                        }];
                        readonly name: "AuthorisationChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "ContenthashChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "record";
                            readonly type: "bytes";
                        }];
                        readonly name: "DNSRecordChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }];
                        readonly name: "DNSRecordDeleted";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "DNSZoneCleared";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "implementer";
                            readonly type: "address";
                        }];
                        readonly name: "InterfaceChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "NameChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly name: "PubkeyChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "string";
                            readonly name: "indexedKey";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }];
                        readonly name: "TextChanged";
                        readonly type: "event";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "contentTypes";
                            readonly type: "uint256";
                        }];
                        readonly name: "ABI";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "addr";
                        readonly outputs: readonly [{
                            readonly internalType: "address payable";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }];
                        readonly name: "addr";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly name: "authorisations";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "clearDNSZone";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "contenthash";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "name";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }];
                        readonly name: "dnsRecord";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "name";
                            readonly type: "bytes32";
                        }];
                        readonly name: "hasDNSRecords";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "interfaceImplementer";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }];
                        readonly name: "multicall";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "results";
                            readonly type: "bytes[]";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "name";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "pubkey";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "contentType";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "setABI";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "a";
                            readonly type: "bytes";
                        }];
                        readonly name: "setAddr";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "a";
                            readonly type: "address";
                        }];
                        readonly name: "setAddr";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "target";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "isAuthorised";
                            readonly type: "bool";
                        }];
                        readonly name: "setAuthorisation";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "setContenthash";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "setDNSRecords";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }, {
                            readonly internalType: "address";
                            readonly name: "implementer";
                            readonly type: "address";
                        }];
                        readonly name: "setInterface";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "setName";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly name: "setPubkey";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }, {
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }];
                        readonly name: "setText";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }];
                        readonly name: "text";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "Approved";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "lastzonehash";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "zonehash";
                            readonly type: "bytes";
                        }];
                        readonly name: "DNSZonehashChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "string";
                            readonly name: "indexedKey";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }];
                        readonly name: "TextChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "newVersion";
                            readonly type: "uint64";
                        }];
                        readonly name: "VersionChanged";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "approve";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "clearRecords";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedFor";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "nodehash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }];
                        readonly name: "multicallWithNodeCheck";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "results";
                            readonly type: "bytes[]";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "recordVersions";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "newName";
                            readonly type: "string";
                        }];
                        readonly name: "setName";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "setZonehash";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "zonehash";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly type: "event";
                        readonly name: "DNSRecordChanged";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "name";
                            readonly type: "bytes";
                            readonly indexed: false;
                            readonly internalType: "bytes";
                        }, {
                            readonly name: "resource";
                            readonly type: "uint16";
                            readonly indexed: false;
                            readonly internalType: "uint16";
                        }, {
                            readonly name: "ttl";
                            readonly type: "uint32";
                            readonly indexed: false;
                            readonly internalType: "uint32";
                        }, {
                            readonly name: "record";
                            readonly type: "bytes";
                            readonly indexed: false;
                            readonly internalType: "bytes";
                        }];
                        readonly anonymous: false;
                    }, {
                        readonly type: "event";
                        readonly name: "DNSZoneUpdated";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "serial";
                            readonly type: "uint32";
                            readonly indexed: false;
                            readonly internalType: "uint32";
                        }];
                        readonly anonymous: false;
                    }, {
                        readonly type: "event";
                        readonly name: "ZoneCreated";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "version";
                            readonly type: "uint64";
                            readonly indexed: true;
                            readonly internalType: "uint64";
                        }];
                        readonly anonymous: false;
                    }];
                    address: "0xF97aAc6C8dbaEBCB54ff166d79706E3AF7a813c8";
                    startBlock: number;
                };
            };
        };
        "threedns-base": {
            chain: {
                blockExplorers: {
                    readonly default: {
                        readonly name: "Basescan";
                        readonly url: "https://basescan.org";
                        readonly apiUrl: "https://api.basescan.org/api";
                    };
                };
                contracts: {
                    readonly disputeGameFactory: {
                        readonly 1: {
                            readonly address: "0x43edB88C4B80fDD2AdFF2412A7BebF9dF42cB40e";
                        };
                    };
                    readonly l2OutputOracle: {
                        readonly 1: {
                            readonly address: "0x56315b90c40730925ec5485cf004d835058518A0";
                        };
                    };
                    readonly multicall3: {
                        readonly address: "0xca11bde05977b3631167028862be2a173976ca11";
                        readonly blockCreated: 5022;
                    };
                    readonly portal: {
                        readonly 1: {
                            readonly address: "0x49048044D57e1C92A77f79988d21Fa8fAF74E97e";
                            readonly blockCreated: 17482143;
                        };
                    };
                    readonly l1StandardBridge: {
                        readonly 1: {
                            readonly address: "0x3154Cf16ccdb4C6d922629664174b904d80F2C35";
                            readonly blockCreated: 17482143;
                        };
                    };
                    readonly gasPriceOracle: {
                        readonly address: "0x420000000000000000000000000000000000000F";
                    };
                    readonly l1Block: {
                        readonly address: "0x4200000000000000000000000000000000000015";
                    };
                    readonly l2CrossDomainMessenger: {
                        readonly address: "0x4200000000000000000000000000000000000007";
                    };
                    readonly l2Erc721Bridge: {
                        readonly address: "0x4200000000000000000000000000000000000014";
                    };
                    readonly l2StandardBridge: {
                        readonly address: "0x4200000000000000000000000000000000000010";
                    };
                    readonly l2ToL1MessagePasser: {
                        readonly address: "0x4200000000000000000000000000000000000016";
                    };
                };
                id: 8453;
                name: "Base";
                nativeCurrency: {
                    readonly name: "Ether";
                    readonly symbol: "ETH";
                    readonly decimals: 18;
                };
                rpcUrls: {
                    readonly default: {
                        readonly http: readonly ["https://mainnet.base.org"];
                    };
                };
                sourceId: 1;
                testnet?: boolean | undefined;
                custom?: Record<string, unknown> | undefined;
                fees?: viem.ChainFees<undefined> | undefined;
                formatters: {
                    readonly block: {
                        exclude: [] | undefined;
                        format: (args: viem_chains.OpStackRpcBlock) => {
                            baseFeePerGas: bigint | null;
                            blobGasUsed: bigint;
                            difficulty: bigint;
                            excessBlobGas: bigint;
                            extraData: viem.Hex;
                            gasLimit: bigint;
                            gasUsed: bigint;
                            hash: `0x${string}` | null;
                            logsBloom: `0x${string}` | null;
                            miner: viem.Address;
                            mixHash: viem.Hash;
                            nonce: `0x${string}` | null;
                            number: bigint | null;
                            parentBeaconBlockRoot?: viem.Hex | undefined;
                            parentHash: viem.Hash;
                            receiptsRoot: viem.Hex;
                            sealFields: viem.Hex[];
                            sha3Uncles: viem.Hash;
                            size: bigint;
                            stateRoot: viem.Hash;
                            timestamp: bigint;
                            totalDifficulty: bigint | null;
                            transactions: `0x${string}`[] | viem_chains.OpStackTransaction<boolean>[];
                            transactionsRoot: viem.Hash;
                            uncles: viem.Hash[];
                            withdrawals?: viem.Withdrawal[] | undefined;
                            withdrawalsRoot?: viem.Hex | undefined;
                        } & {};
                        type: "block";
                    };
                    readonly transaction: {
                        exclude: [] | undefined;
                        format: (args: viem_chains.OpStackRpcTransaction) => ({
                            blockHash: `0x${string}` | null;
                            blockNumber: bigint | null;
                            from: viem.Address;
                            gas: bigint;
                            hash: viem.Hash;
                            input: viem.Hex;
                            nonce: number;
                            r: viem.Hex;
                            s: viem.Hex;
                            to: viem.Address | null;
                            transactionIndex: number | null;
                            typeHex: viem.Hex | null;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                            gasPrice?: undefined;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas: bigint;
                            maxPriorityFeePerGas: bigint;
                            isSystemTx?: boolean;
                            mint?: bigint | undefined;
                            sourceHash: viem.Hex;
                            type: "deposit";
                        } | {
                            r: viem.Hex;
                            s: viem.Hex;
                            v: bigint;
                            to: viem.Address | null;
                            from: viem.Address;
                            gas: bigint;
                            nonce: number;
                            value: bigint;
                            blockHash: `0x${string}` | null;
                            blockNumber: bigint | null;
                            hash: viem.Hash;
                            input: viem.Hex;
                            transactionIndex: number | null;
                            typeHex: viem.Hex | null;
                            accessList?: undefined;
                            authorizationList?: undefined;
                            blobVersionedHashes?: undefined;
                            chainId?: number | undefined;
                            yParity?: undefined;
                            type: "legacy";
                            gasPrice: bigint;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas?: undefined;
                            maxPriorityFeePerGas?: undefined;
                            isSystemTx?: undefined;
                            mint?: undefined;
                            sourceHash?: undefined;
                        } | {
                            blockHash: `0x${string}` | null;
                            blockNumber: bigint | null;
                            from: viem.Address;
                            gas: bigint;
                            hash: viem.Hash;
                            input: viem.Hex;
                            nonce: number;
                            r: viem.Hex;
                            s: viem.Hex;
                            to: viem.Address | null;
                            transactionIndex: number | null;
                            typeHex: viem.Hex | null;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                            accessList: viem.AccessList;
                            authorizationList?: undefined;
                            blobVersionedHashes?: undefined;
                            chainId: number;
                            type: "eip2930";
                            gasPrice: bigint;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas?: undefined;
                            maxPriorityFeePerGas?: undefined;
                            isSystemTx?: undefined;
                            mint?: undefined;
                            sourceHash?: undefined;
                        } | {
                            blockHash: `0x${string}` | null;
                            blockNumber: bigint | null;
                            from: viem.Address;
                            gas: bigint;
                            hash: viem.Hash;
                            input: viem.Hex;
                            nonce: number;
                            r: viem.Hex;
                            s: viem.Hex;
                            to: viem.Address | null;
                            transactionIndex: number | null;
                            typeHex: viem.Hex | null;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                            accessList: viem.AccessList;
                            authorizationList?: undefined;
                            blobVersionedHashes?: undefined;
                            chainId: number;
                            type: "eip1559";
                            gasPrice?: undefined;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas: bigint;
                            maxPriorityFeePerGas: bigint;
                            isSystemTx?: undefined;
                            mint?: undefined;
                            sourceHash?: undefined;
                        } | {
                            blockHash: `0x${string}` | null;
                            blockNumber: bigint | null;
                            from: viem.Address;
                            gas: bigint;
                            hash: viem.Hash;
                            input: viem.Hex;
                            nonce: number;
                            r: viem.Hex;
                            s: viem.Hex;
                            to: viem.Address | null;
                            transactionIndex: number | null;
                            typeHex: viem.Hex | null;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                            accessList: viem.AccessList;
                            authorizationList?: undefined;
                            blobVersionedHashes: readonly viem.Hex[];
                            chainId: number;
                            type: "eip4844";
                            gasPrice?: undefined;
                            maxFeePerBlobGas: bigint;
                            maxFeePerGas: bigint;
                            maxPriorityFeePerGas: bigint;
                            isSystemTx?: undefined;
                            mint?: undefined;
                            sourceHash?: undefined;
                        } | {
                            blockHash: `0x${string}` | null;
                            blockNumber: bigint | null;
                            from: viem.Address;
                            gas: bigint;
                            hash: viem.Hash;
                            input: viem.Hex;
                            nonce: number;
                            r: viem.Hex;
                            s: viem.Hex;
                            to: viem.Address | null;
                            transactionIndex: number | null;
                            typeHex: viem.Hex | null;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                            accessList: viem.AccessList;
                            authorizationList: viem_experimental.SignedAuthorizationList;
                            blobVersionedHashes?: undefined;
                            chainId: number;
                            type: "eip7702";
                            gasPrice?: undefined;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas: bigint;
                            maxPriorityFeePerGas: bigint;
                            isSystemTx?: undefined;
                            mint?: undefined;
                            sourceHash?: undefined;
                        }) & {};
                        type: "transaction";
                    };
                    readonly transactionReceipt: {
                        exclude: [] | undefined;
                        format: (args: viem_chains.OpStackRpcTransactionReceipt) => {
                            blobGasPrice?: bigint | undefined;
                            blobGasUsed?: bigint | undefined;
                            blockHash: viem.Hash;
                            blockNumber: bigint;
                            contractAddress: viem.Address | null | undefined;
                            cumulativeGasUsed: bigint;
                            effectiveGasPrice: bigint;
                            from: viem.Address;
                            gasUsed: bigint;
                            logs: viem.Log<bigint, number, false>[];
                            logsBloom: viem.Hex;
                            root?: viem.Hash | undefined;
                            status: "success" | "reverted";
                            to: viem.Address | null;
                            transactionHash: viem.Hash;
                            transactionIndex: number;
                            type: viem.TransactionType;
                            l1GasPrice: bigint | null;
                            l1GasUsed: bigint | null;
                            l1Fee: bigint | null;
                            l1FeeScalar: number | null;
                        } & {};
                        type: "transactionReceipt";
                    };
                };
                serializers: {
                    readonly transaction: typeof viem_chains.serializeTransactionOpStack;
                };
            };
            contracts: {
                ThreeDNSToken: {
                    abi: readonly [{
                        readonly type: "event";
                        readonly name: "NewOwner";
                        readonly inputs: readonly [{
                            readonly type: "bytes32";
                            readonly name: "node";
                            readonly indexed: true;
                        }, {
                            readonly type: "bytes32";
                            readonly name: "label";
                            readonly indexed: true;
                        }, {
                            readonly type: "address";
                            readonly name: "owner";
                            readonly indexed: false;
                        }];
                    }, {
                        readonly type: "event";
                        readonly name: "RegistrationCreated";
                        readonly inputs: readonly [{
                            readonly type: "bytes32";
                            readonly name: "node";
                            readonly indexed: true;
                        }, {
                            readonly type: "bytes32";
                            readonly name: "tld";
                            readonly indexed: true;
                        }, {
                            readonly type: "bytes";
                            readonly name: "fqdn";
                            readonly indexed: false;
                        }, {
                            readonly type: "address";
                            readonly name: "registrant";
                            readonly indexed: false;
                        }, {
                            readonly type: "uint32";
                            readonly name: "controlBitmap";
                            readonly indexed: false;
                        }, {
                            readonly type: "uint64";
                            readonly name: "expiry";
                            readonly indexed: false;
                        }];
                    }, {
                        readonly type: "event";
                        readonly name: "RegistrationExtended";
                        readonly inputs: readonly [{
                            readonly type: "bytes32";
                            readonly name: "node";
                            readonly indexed: true;
                        }, {
                            readonly type: "uint64";
                            readonly name: "duration";
                            readonly indexed: true;
                        }, {
                            readonly type: "uint64";
                            readonly name: "newExpiry";
                            readonly indexed: true;
                        }];
                    }, {
                        readonly type: "event";
                        readonly name: "RegistrationTransferred";
                        readonly inputs: readonly [{
                            readonly type: "bytes32";
                            readonly name: "node";
                            readonly indexed: true;
                        }, {
                            readonly type: "address";
                            readonly name: "newOwner";
                            readonly indexed: true;
                        }, {
                            readonly type: "address";
                            readonly name: "operator";
                            readonly indexed: true;
                        }];
                    }, {
                        readonly type: "event";
                        readonly name: "RegistrationBurned";
                        readonly inputs: readonly [{
                            readonly type: "bytes32";
                            readonly name: "node";
                            readonly indexed: true;
                        }, {
                            readonly type: "address";
                            readonly name: "burner";
                            readonly indexed: true;
                        }];
                    }, {
                        readonly type: "function";
                        readonly name: "uri";
                        readonly inputs: readonly [{
                            readonly type: "uint256";
                            readonly name: "tokenId_";
                        }];
                        readonly outputs: readonly [{
                            readonly type: "string";
                            readonly name: "";
                        }];
                        readonly stateMutability: "view";
                    }, {
                        readonly type: "function";
                        readonly name: "resolver";
                        readonly inputs: readonly [{
                            readonly type: "bytes32";
                            readonly name: "node";
                        }];
                        readonly outputs: readonly [{
                            readonly type: "address";
                            readonly name: "";
                        }];
                        readonly stateMutability: "view";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "Transfer";
                        readonly type: "event";
                    }];
                    address: "0xBB7B805B257d7C76CA9435B3ffe780355E4C4B17";
                    startBlock: number;
                };
                Resolver: {
                    abi: readonly [{
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "contentType";
                            readonly type: "uint256";
                        }];
                        readonly name: "ABIChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "a";
                            readonly type: "address";
                        }];
                        readonly name: "AddrChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "newAddress";
                            readonly type: "bytes";
                        }];
                        readonly name: "AddressChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "target";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "isAuthorised";
                            readonly type: "bool";
                        }];
                        readonly name: "AuthorisationChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "ContenthashChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "record";
                            readonly type: "bytes";
                        }];
                        readonly name: "DNSRecordChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }];
                        readonly name: "DNSRecordDeleted";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "DNSZoneCleared";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "implementer";
                            readonly type: "address";
                        }];
                        readonly name: "InterfaceChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "NameChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly name: "PubkeyChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "string";
                            readonly name: "indexedKey";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }];
                        readonly name: "TextChanged";
                        readonly type: "event";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "contentTypes";
                            readonly type: "uint256";
                        }];
                        readonly name: "ABI";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "addr";
                        readonly outputs: readonly [{
                            readonly internalType: "address payable";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }];
                        readonly name: "addr";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly name: "authorisations";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "clearDNSZone";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "contenthash";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "name";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }];
                        readonly name: "dnsRecord";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "name";
                            readonly type: "bytes32";
                        }];
                        readonly name: "hasDNSRecords";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "interfaceImplementer";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }];
                        readonly name: "multicall";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "results";
                            readonly type: "bytes[]";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "name";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "pubkey";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "contentType";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "setABI";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "a";
                            readonly type: "bytes";
                        }];
                        readonly name: "setAddr";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "a";
                            readonly type: "address";
                        }];
                        readonly name: "setAddr";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "target";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "isAuthorised";
                            readonly type: "bool";
                        }];
                        readonly name: "setAuthorisation";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "setContenthash";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "setDNSRecords";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }, {
                            readonly internalType: "address";
                            readonly name: "implementer";
                            readonly type: "address";
                        }];
                        readonly name: "setInterface";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "setName";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly name: "setPubkey";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }, {
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }];
                        readonly name: "setText";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }];
                        readonly name: "text";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "Approved";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "lastzonehash";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "zonehash";
                            readonly type: "bytes";
                        }];
                        readonly name: "DNSZonehashChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "string";
                            readonly name: "indexedKey";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }];
                        readonly name: "TextChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "newVersion";
                            readonly type: "uint64";
                        }];
                        readonly name: "VersionChanged";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "approve";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "clearRecords";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedFor";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "nodehash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }];
                        readonly name: "multicallWithNodeCheck";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "results";
                            readonly type: "bytes[]";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "recordVersions";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "newName";
                            readonly type: "string";
                        }];
                        readonly name: "setName";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "setZonehash";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "zonehash";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly type: "event";
                        readonly name: "DNSRecordChanged";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "name";
                            readonly type: "bytes";
                            readonly indexed: false;
                            readonly internalType: "bytes";
                        }, {
                            readonly name: "resource";
                            readonly type: "uint16";
                            readonly indexed: false;
                            readonly internalType: "uint16";
                        }, {
                            readonly name: "ttl";
                            readonly type: "uint32";
                            readonly indexed: false;
                            readonly internalType: "uint32";
                        }, {
                            readonly name: "record";
                            readonly type: "bytes";
                            readonly indexed: false;
                            readonly internalType: "bytes";
                        }];
                        readonly anonymous: false;
                    }, {
                        readonly type: "event";
                        readonly name: "DNSZoneUpdated";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "serial";
                            readonly type: "uint32";
                            readonly indexed: false;
                            readonly internalType: "uint32";
                        }];
                        readonly anonymous: false;
                    }, {
                        readonly type: "event";
                        readonly name: "ZoneCreated";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "version";
                            readonly type: "uint64";
                            readonly indexed: true;
                            readonly internalType: "uint64";
                        }];
                        readonly anonymous: false;
                    }];
                    address: "0xF97aAc6C8dbaEBCB54ff166d79706E3AF7a813c8";
                    startBlock: number;
                };
            };
        };
    };
    readonly sepolia: {
        ensroot: {
            chain: {
                blockExplorers: {
                    readonly default: {
                        readonly name: "Etherscan";
                        readonly url: "https://sepolia.etherscan.io";
                        readonly apiUrl: "https://api-sepolia.etherscan.io/api";
                    };
                };
                contracts: {
                    readonly multicall3: {
                        readonly address: "0xca11bde05977b3631167028862be2a173976ca11";
                        readonly blockCreated: 751532;
                    };
                    readonly ensRegistry: {
                        readonly address: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e";
                    };
                    readonly ensUniversalResolver: {
                        readonly address: "0xc8Af999e38273D658BE1b921b88A9Ddf005769cC";
                        readonly blockCreated: 5317080;
                    };
                };
                id: 11155111;
                name: "Sepolia";
                nativeCurrency: {
                    readonly name: "Sepolia Ether";
                    readonly symbol: "ETH";
                    readonly decimals: 18;
                };
                rpcUrls: {
                    readonly default: {
                        readonly http: readonly ["https://sepolia.drpc.org"];
                    };
                };
                sourceId?: number | undefined;
                testnet: true;
                custom?: Record<string, unknown> | undefined;
                fees?: viem.ChainFees<undefined> | undefined;
                formatters?: undefined;
                serializers?: viem.ChainSerializers<undefined, viem.TransactionSerializable> | undefined;
            };
            contracts: {
                RegistryOld: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "_old";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "NewOwner";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "NewResolver";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "NewTTL";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "Transfer";
                        readonly type: "event";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "old";
                        readonly outputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "recordExists";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "resolver";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "setOwner";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setRecord";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "setSubnodeOwner";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setSubnodeRecord";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setTTL";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "ttl";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }];
                    address: "0x94f523b8261B815b87EFfCf4d18E6aBeF18d6e4b";
                    startBlock: number;
                };
                Registry: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "_old";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "NewOwner";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "NewResolver";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "NewTTL";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "Transfer";
                        readonly type: "event";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "old";
                        readonly outputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "recordExists";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "resolver";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "setOwner";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setRecord";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "setSubnodeOwner";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setSubnodeRecord";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setTTL";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "ttl";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }];
                    address: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e";
                    startBlock: number;
                };
                Resolver: {
                    startBlock: number;
                    abi: readonly [{
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "contentType";
                            readonly type: "uint256";
                        }];
                        readonly name: "ABIChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "a";
                            readonly type: "address";
                        }];
                        readonly name: "AddrChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "newAddress";
                            readonly type: "bytes";
                        }];
                        readonly name: "AddressChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "target";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "isAuthorised";
                            readonly type: "bool";
                        }];
                        readonly name: "AuthorisationChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "ContenthashChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "record";
                            readonly type: "bytes";
                        }];
                        readonly name: "DNSRecordChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }];
                        readonly name: "DNSRecordDeleted";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "DNSZoneCleared";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "implementer";
                            readonly type: "address";
                        }];
                        readonly name: "InterfaceChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "NameChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly name: "PubkeyChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "string";
                            readonly name: "indexedKey";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }];
                        readonly name: "TextChanged";
                        readonly type: "event";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "contentTypes";
                            readonly type: "uint256";
                        }];
                        readonly name: "ABI";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "addr";
                        readonly outputs: readonly [{
                            readonly internalType: "address payable";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }];
                        readonly name: "addr";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly name: "authorisations";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "clearDNSZone";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "contenthash";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "name";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }];
                        readonly name: "dnsRecord";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "name";
                            readonly type: "bytes32";
                        }];
                        readonly name: "hasDNSRecords";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "interfaceImplementer";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }];
                        readonly name: "multicall";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "results";
                            readonly type: "bytes[]";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "name";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "pubkey";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "contentType";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "setABI";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "a";
                            readonly type: "bytes";
                        }];
                        readonly name: "setAddr";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "a";
                            readonly type: "address";
                        }];
                        readonly name: "setAddr";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "target";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "isAuthorised";
                            readonly type: "bool";
                        }];
                        readonly name: "setAuthorisation";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "setContenthash";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "setDNSRecords";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }, {
                            readonly internalType: "address";
                            readonly name: "implementer";
                            readonly type: "address";
                        }];
                        readonly name: "setInterface";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "setName";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly name: "setPubkey";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }, {
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }];
                        readonly name: "setText";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }];
                        readonly name: "text";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "Approved";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "lastzonehash";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "zonehash";
                            readonly type: "bytes";
                        }];
                        readonly name: "DNSZonehashChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "string";
                            readonly name: "indexedKey";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }];
                        readonly name: "TextChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "newVersion";
                            readonly type: "uint64";
                        }];
                        readonly name: "VersionChanged";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "approve";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "clearRecords";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedFor";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "nodehash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }];
                        readonly name: "multicallWithNodeCheck";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "results";
                            readonly type: "bytes[]";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "recordVersions";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "newName";
                            readonly type: "string";
                        }];
                        readonly name: "setName";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "setZonehash";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "zonehash";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly type: "event";
                        readonly name: "DNSRecordChanged";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "name";
                            readonly type: "bytes";
                            readonly indexed: false;
                            readonly internalType: "bytes";
                        }, {
                            readonly name: "resource";
                            readonly type: "uint16";
                            readonly indexed: false;
                            readonly internalType: "uint16";
                        }, {
                            readonly name: "ttl";
                            readonly type: "uint32";
                            readonly indexed: false;
                            readonly internalType: "uint32";
                        }, {
                            readonly name: "record";
                            readonly type: "bytes";
                            readonly indexed: false;
                            readonly internalType: "bytes";
                        }];
                        readonly anonymous: false;
                    }, {
                        readonly type: "event";
                        readonly name: "DNSZoneUpdated";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "serial";
                            readonly type: "uint32";
                            readonly indexed: false;
                            readonly internalType: "uint32";
                        }];
                        readonly anonymous: false;
                    }, {
                        readonly type: "event";
                        readonly name: "ZoneCreated";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "version";
                            readonly type: "uint64";
                            readonly indexed: true;
                            readonly internalType: "uint64";
                        }];
                        readonly anonymous: false;
                    }];
                    filter: [{
                        readonly event: "AddrChanged";
                        readonly args: {};
                    }, {
                        readonly event: "AddressChanged";
                        readonly args: {};
                    }, {
                        readonly event: "NameChanged";
                        readonly args: {};
                    }, {
                        readonly event: "ABIChanged";
                        readonly args: {};
                    }, {
                        readonly event: "PubkeyChanged";
                        readonly args: {};
                    }, {
                        readonly event: "TextChanged(bytes32 indexed node, string indexed indexedKey, string key)";
                        readonly args: {};
                    }, {
                        readonly event: "TextChanged(bytes32 indexed node, string indexed indexedKey, string key, string value)";
                        readonly args: {};
                    }, {
                        readonly event: "ContenthashChanged";
                        readonly args: {};
                    }, {
                        readonly event: "InterfaceChanged";
                        readonly args: {};
                    }, {
                        readonly event: "AuthorisationChanged";
                        readonly args: {};
                    }, {
                        readonly event: "VersionChanged";
                        readonly args: {};
                    }, {
                        readonly event: "DNSRecordChanged";
                        readonly args: {};
                    }, {
                        readonly event: "DNSRecordDeleted";
                        readonly args: {};
                    }, {
                        readonly event: "DNSZonehashChanged";
                        readonly args: {};
                    }];
                };
                BaseRegistrar: {
                    abi: readonly [{
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "getApproved";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "approve";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "transferFrom";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "reclaim";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "ens";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "safeTransferFrom";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "transferPeriodEnds";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "ownerOf";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "MIGRATION_LOCK_PERIOD";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "balanceOf";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "isOwner";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "available";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "addController";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "previousRegistrar";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }, {
                            readonly name: "_data";
                            readonly type: "bytes";
                        }];
                        readonly name: "safeTransferFrom";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "GRACE_PERIOD";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "nameExpires";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly name: "controllers";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "baseNode";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly name: "deed";
                            readonly type: "address";
                        }, {
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly name: "acceptRegistrarTransfer";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "removeController";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "register";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly name: "_ens";
                            readonly type: "address";
                        }, {
                            readonly name: "_previousRegistrar";
                            readonly type: "address";
                        }, {
                            readonly name: "_baseNode";
                            readonly type: "bytes32";
                        }, {
                            readonly name: "_transferPeriodEnds";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "ControllerAdded";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "ControllerRemoved";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: true;
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameMigrated";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: true;
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRegistered";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRenewed";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "previousOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "Transfer";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "approved";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "Approval";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }];
                    address: "0x57f1887a8BF19b14fC0dF6Fd9B2acc9Af147eA85";
                    startBlock: number;
                };
                EthRegistrarControllerOld: {
                    abi: readonly [{
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [];
                        readonly name: "withdraw";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "_prices";
                            readonly type: "address";
                        }];
                        readonly name: "setPriceOracle";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "_minCommitmentAge";
                            readonly type: "uint256";
                        }, {
                            readonly name: "_maxCommitmentAge";
                            readonly type: "uint256";
                        }];
                        readonly name: "setCommitmentAges";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "commitments";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "rentPrice";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly name: "secret";
                            readonly type: "bytes32";
                        }];
                        readonly name: "register";
                        readonly outputs: readonly [];
                        readonly payable: true;
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "MIN_REGISTRATION_DURATION";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "minCommitmentAge";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "isOwner";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "valid";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [];
                        readonly payable: true;
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "available";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "maxCommitmentAge";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "commit";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly name: "secret";
                            readonly type: "bytes32";
                        }];
                        readonly name: "makeCommitment";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly name: "_base";
                            readonly type: "address";
                        }, {
                            readonly name: "_prices";
                            readonly type: "address";
                        }, {
                            readonly name: "_minCommitmentAge";
                            readonly type: "uint256";
                        }, {
                            readonly name: "_maxCommitmentAge";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly name: "cost";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRegistered";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly name: "cost";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRenewed";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "oracle";
                            readonly type: "address";
                        }];
                        readonly name: "NewPriceOracle";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "previousOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }];
                    address: "0x7e02892cfc2Bfd53a75275451d73cF620e793fc0";
                    startBlock: number;
                };
                EthRegistrarController: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract BaseRegistrarImplementation";
                            readonly name: "_base";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IPriceOracle";
                            readonly name: "_prices";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_minCommitmentAge";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_maxCommitmentAge";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "contract ReverseRegistrar";
                            readonly name: "_reverseRegistrar";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract INameWrapper";
                            readonly name: "_nameWrapper";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "CommitmentTooNew";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "CommitmentTooOld";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "DurationTooShort";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "InsufficientValue";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MaxCommitmentAgeTooHigh";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MaxCommitmentAgeTooLow";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "NameNotAvailable";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "ResolverRequiredWhenDataSupplied";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "UnexpiredCommitmentExists";
                        readonly type: "error";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "baseCost";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "premium";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRegistered";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "cost";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRenewed";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "previousOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MIN_REGISTRATION_DURATION";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "available";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "commit";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "commitments";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "secret";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "reverseRecord";
                            readonly type: "bool";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }];
                        readonly name: "makeCommitment";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "maxCommitmentAge";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "minCommitmentAge";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "nameWrapper";
                        readonly outputs: readonly [{
                            readonly internalType: "contract INameWrapper";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "prices";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IPriceOracle";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "_token";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "_to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_amount";
                            readonly type: "uint256";
                        }];
                        readonly name: "recoverFunds";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "secret";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "reverseRecord";
                            readonly type: "bool";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }];
                        readonly name: "register";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "rentPrice";
                        readonly outputs: readonly [{
                            readonly components: readonly [{
                                readonly internalType: "uint256";
                                readonly name: "base";
                                readonly type: "uint256";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "premium";
                                readonly type: "uint256";
                            }];
                            readonly internalType: "struct IPriceOracle.Price";
                            readonly name: "price";
                            readonly type: "tuple";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "reverseRegistrar";
                        readonly outputs: readonly [{
                            readonly internalType: "contract ReverseRegistrar";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "valid";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "withdraw";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }];
                    address: "0xFED6a969AaA60E4961FCD3EBF1A2e8913ac65B72";
                    startBlock: number;
                };
                NameWrapper: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "_ens";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IBaseRegistrar";
                            readonly name: "_registrar";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IMetadataService";
                            readonly name: "_metadataService";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "CannotUpgrade";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "IncompatibleParent";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "IncorrectTargetOwner";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "IncorrectTokenType";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "labelHash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "expectedLabelhash";
                            readonly type: "bytes32";
                        }];
                        readonly name: "LabelMismatch";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }];
                        readonly name: "LabelTooLong";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "LabelTooShort";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "NameIsNotWrapped";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "OperationProhibited";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "addr";
                            readonly type: "address";
                        }];
                        readonly name: "Unauthorised";
                        readonly type: "error";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "active";
                            readonly type: "bool";
                        }];
                        readonly name: "ControllerChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "ExpiryExtended";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }];
                        readonly name: "FusesSet";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "NameUnwrapped";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "NameWrapped";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "previousOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256[]";
                            readonly name: "ids";
                            readonly type: "uint256[]";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256[]";
                            readonly name: "values";
                            readonly type: "uint256[]";
                        }];
                        readonly name: "TransferBatch";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "value";
                            readonly type: "uint256";
                        }];
                        readonly name: "TransferSingle";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "URI";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly name: "_tokens";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuseMask";
                            readonly type: "uint32";
                        }];
                        readonly name: "allFusesBurned";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "balanceOf";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address[]";
                            readonly name: "accounts";
                            readonly type: "address[]";
                        }, {
                            readonly internalType: "uint256[]";
                            readonly name: "ids";
                            readonly type: "uint256[]";
                        }];
                        readonly name: "balanceOfBatch";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256[]";
                            readonly name: "";
                            readonly type: "uint256[]";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "addr";
                            readonly type: "address";
                        }];
                        readonly name: "canModifyName";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly name: "controllers";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "ens";
                        readonly outputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "extendExpiry";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "getData";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "isWrapped";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "metadataService";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IMetadataService";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "name";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "names";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "onERC721Received";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "";
                            readonly type: "bytes4";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "ownerOf";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "_token";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "_to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_amount";
                            readonly type: "uint256";
                        }];
                        readonly name: "recoverFunds";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }];
                        readonly name: "registerAndWrapETH2LD";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "registrarExpiry";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "registrar";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IBaseRegistrar";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256[]";
                            readonly name: "ids";
                            readonly type: "uint256[]";
                        }, {
                            readonly internalType: "uint256[]";
                            readonly name: "amounts";
                            readonly type: "uint256[]";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "safeBatchTransferFrom";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "amount";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "safeTransferFrom";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "setChildFuses";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "active";
                            readonly type: "bool";
                        }];
                        readonly name: "setController";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }];
                        readonly name: "setFuses";
                        readonly outputs: readonly [{
                            readonly internalType: "uint32";
                            readonly name: "";
                            readonly type: "uint32";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "contract IMetadataService";
                            readonly name: "_metadataService";
                            readonly type: "address";
                        }];
                        readonly name: "setMetadataService";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setRecord";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "setSubnodeOwner";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "setSubnodeRecord";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setTTL";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "contract INameWrapperUpgrade";
                            readonly name: "_upgradeAddress";
                            readonly type: "address";
                        }];
                        readonly name: "setUpgradeContract";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceId";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "unwrap";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "registrant";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "unwrapETH2LD";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "upgrade";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "upgradeContract";
                        readonly outputs: readonly [{
                            readonly internalType: "contract INameWrapperUpgrade";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "upgradeETH2LD";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "uri";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "wrap";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "wrapETH2LD";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }];
                    address: "0x0635513f179D50A207757E05759CbD106d7dFcE8";
                    startBlock: number;
                };
            };
        };
        basenames: {
            chain: {
                blockExplorers: {
                    readonly default: {
                        readonly name: "Basescan";
                        readonly url: "https://sepolia.basescan.org";
                        readonly apiUrl: "https://api-sepolia.basescan.org/api";
                    };
                };
                contracts: {
                    readonly disputeGameFactory: {
                        readonly 11155111: {
                            readonly address: "0xd6E6dBf4F7EA0ac412fD8b65ED297e64BB7a06E1";
                        };
                    };
                    readonly l2OutputOracle: {
                        readonly 11155111: {
                            readonly address: "0x84457ca9D0163FbC4bbfe4Dfbb20ba46e48DF254";
                        };
                    };
                    readonly portal: {
                        readonly 11155111: {
                            readonly address: "0x49f53e41452c74589e85ca1677426ba426459e85";
                            readonly blockCreated: 4446677;
                        };
                    };
                    readonly l1StandardBridge: {
                        readonly 11155111: {
                            readonly address: "0xfd0Bf71F60660E2f608ed56e1659C450eB113120";
                            readonly blockCreated: 4446677;
                        };
                    };
                    readonly multicall3: {
                        readonly address: "0xca11bde05977b3631167028862be2a173976ca11";
                        readonly blockCreated: 1059647;
                    };
                    readonly gasPriceOracle: {
                        readonly address: "0x420000000000000000000000000000000000000F";
                    };
                    readonly l1Block: {
                        readonly address: "0x4200000000000000000000000000000000000015";
                    };
                    readonly l2CrossDomainMessenger: {
                        readonly address: "0x4200000000000000000000000000000000000007";
                    };
                    readonly l2Erc721Bridge: {
                        readonly address: "0x4200000000000000000000000000000000000014";
                    };
                    readonly l2StandardBridge: {
                        readonly address: "0x4200000000000000000000000000000000000010";
                    };
                    readonly l2ToL1MessagePasser: {
                        readonly address: "0x4200000000000000000000000000000000000016";
                    };
                };
                id: 84532;
                name: "Base Sepolia";
                nativeCurrency: {
                    readonly name: "Sepolia Ether";
                    readonly symbol: "ETH";
                    readonly decimals: 18;
                };
                rpcUrls: {
                    readonly default: {
                        readonly http: readonly ["https://sepolia.base.org"];
                    };
                };
                sourceId: 11155111;
                testnet: true;
                custom?: Record<string, unknown> | undefined;
                fees?: viem.ChainFees<undefined> | undefined;
                formatters: {
                    readonly block: {
                        exclude: [] | undefined;
                        format: (args: viem_chains.OpStackRpcBlock) => {
                            baseFeePerGas: bigint | null;
                            blobGasUsed: bigint;
                            difficulty: bigint;
                            excessBlobGas: bigint;
                            extraData: viem.Hex;
                            gasLimit: bigint;
                            gasUsed: bigint;
                            hash: `0x${string}` | null;
                            logsBloom: `0x${string}` | null;
                            miner: viem.Address;
                            mixHash: viem.Hash;
                            nonce: `0x${string}` | null;
                            number: bigint | null;
                            parentBeaconBlockRoot?: viem.Hex | undefined;
                            parentHash: viem.Hash;
                            receiptsRoot: viem.Hex;
                            sealFields: viem.Hex[];
                            sha3Uncles: viem.Hash;
                            size: bigint;
                            stateRoot: viem.Hash;
                            timestamp: bigint;
                            totalDifficulty: bigint | null;
                            transactions: `0x${string}`[] | viem_chains.OpStackTransaction<boolean>[];
                            transactionsRoot: viem.Hash;
                            uncles: viem.Hash[];
                            withdrawals?: viem.Withdrawal[] | undefined;
                            withdrawalsRoot?: viem.Hex | undefined;
                        } & {};
                        type: "block";
                    };
                    readonly transaction: {
                        exclude: [] | undefined;
                        format: (args: viem_chains.OpStackRpcTransaction) => ({
                            blockHash: `0x${string}` | null;
                            blockNumber: bigint | null;
                            from: viem.Address;
                            gas: bigint;
                            hash: viem.Hash;
                            input: viem.Hex;
                            nonce: number;
                            r: viem.Hex;
                            s: viem.Hex;
                            to: viem.Address | null;
                            transactionIndex: number | null;
                            typeHex: viem.Hex | null;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                            gasPrice?: undefined;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas: bigint;
                            maxPriorityFeePerGas: bigint;
                            isSystemTx?: boolean;
                            mint?: bigint | undefined;
                            sourceHash: viem.Hex;
                            type: "deposit";
                        } | {
                            r: viem.Hex;
                            s: viem.Hex;
                            v: bigint;
                            to: viem.Address | null;
                            from: viem.Address;
                            gas: bigint;
                            nonce: number;
                            value: bigint;
                            blockHash: `0x${string}` | null;
                            blockNumber: bigint | null;
                            hash: viem.Hash;
                            input: viem.Hex;
                            transactionIndex: number | null;
                            typeHex: viem.Hex | null;
                            accessList?: undefined;
                            authorizationList?: undefined;
                            blobVersionedHashes?: undefined;
                            chainId?: number | undefined;
                            yParity?: undefined;
                            type: "legacy";
                            gasPrice: bigint;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas?: undefined;
                            maxPriorityFeePerGas?: undefined;
                            isSystemTx?: undefined;
                            mint?: undefined;
                            sourceHash?: undefined;
                        } | {
                            blockHash: `0x${string}` | null;
                            blockNumber: bigint | null;
                            from: viem.Address;
                            gas: bigint;
                            hash: viem.Hash;
                            input: viem.Hex;
                            nonce: number;
                            r: viem.Hex;
                            s: viem.Hex;
                            to: viem.Address | null;
                            transactionIndex: number | null;
                            typeHex: viem.Hex | null;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                            accessList: viem.AccessList;
                            authorizationList?: undefined;
                            blobVersionedHashes?: undefined;
                            chainId: number;
                            type: "eip2930";
                            gasPrice: bigint;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas?: undefined;
                            maxPriorityFeePerGas?: undefined;
                            isSystemTx?: undefined;
                            mint?: undefined;
                            sourceHash?: undefined;
                        } | {
                            blockHash: `0x${string}` | null;
                            blockNumber: bigint | null;
                            from: viem.Address;
                            gas: bigint;
                            hash: viem.Hash;
                            input: viem.Hex;
                            nonce: number;
                            r: viem.Hex;
                            s: viem.Hex;
                            to: viem.Address | null;
                            transactionIndex: number | null;
                            typeHex: viem.Hex | null;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                            accessList: viem.AccessList;
                            authorizationList?: undefined;
                            blobVersionedHashes?: undefined;
                            chainId: number;
                            type: "eip1559";
                            gasPrice?: undefined;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas: bigint;
                            maxPriorityFeePerGas: bigint;
                            isSystemTx?: undefined;
                            mint?: undefined;
                            sourceHash?: undefined;
                        } | {
                            blockHash: `0x${string}` | null;
                            blockNumber: bigint | null;
                            from: viem.Address;
                            gas: bigint;
                            hash: viem.Hash;
                            input: viem.Hex;
                            nonce: number;
                            r: viem.Hex;
                            s: viem.Hex;
                            to: viem.Address | null;
                            transactionIndex: number | null;
                            typeHex: viem.Hex | null;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                            accessList: viem.AccessList;
                            authorizationList?: undefined;
                            blobVersionedHashes: readonly viem.Hex[];
                            chainId: number;
                            type: "eip4844";
                            gasPrice?: undefined;
                            maxFeePerBlobGas: bigint;
                            maxFeePerGas: bigint;
                            maxPriorityFeePerGas: bigint;
                            isSystemTx?: undefined;
                            mint?: undefined;
                            sourceHash?: undefined;
                        } | {
                            blockHash: `0x${string}` | null;
                            blockNumber: bigint | null;
                            from: viem.Address;
                            gas: bigint;
                            hash: viem.Hash;
                            input: viem.Hex;
                            nonce: number;
                            r: viem.Hex;
                            s: viem.Hex;
                            to: viem.Address | null;
                            transactionIndex: number | null;
                            typeHex: viem.Hex | null;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                            accessList: viem.AccessList;
                            authorizationList: viem_experimental.SignedAuthorizationList;
                            blobVersionedHashes?: undefined;
                            chainId: number;
                            type: "eip7702";
                            gasPrice?: undefined;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas: bigint;
                            maxPriorityFeePerGas: bigint;
                            isSystemTx?: undefined;
                            mint?: undefined;
                            sourceHash?: undefined;
                        }) & {};
                        type: "transaction";
                    };
                    readonly transactionReceipt: {
                        exclude: [] | undefined;
                        format: (args: viem_chains.OpStackRpcTransactionReceipt) => {
                            blobGasPrice?: bigint | undefined;
                            blobGasUsed?: bigint | undefined;
                            blockHash: viem.Hash;
                            blockNumber: bigint;
                            contractAddress: viem.Address | null | undefined;
                            cumulativeGasUsed: bigint;
                            effectiveGasPrice: bigint;
                            from: viem.Address;
                            gasUsed: bigint;
                            logs: viem.Log<bigint, number, false>[];
                            logsBloom: viem.Hex;
                            root?: viem.Hash | undefined;
                            status: "success" | "reverted";
                            to: viem.Address | null;
                            transactionHash: viem.Hash;
                            transactionIndex: number;
                            type: viem.TransactionType;
                            l1GasPrice: bigint | null;
                            l1GasUsed: bigint | null;
                            l1Fee: bigint | null;
                            l1FeeScalar: number | null;
                        } & {};
                        type: "transactionReceipt";
                    };
                };
                serializers: {
                    readonly transaction: typeof viem_chains.serializeTransactionOpStack;
                };
                readonly network: "base-sepolia";
            };
            contracts: {
                Registry: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "rootOwner";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "Unauthorized";
                        readonly type: "error";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "NewOwner";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "NewResolver";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "NewTTL";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "Transfer";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "recordExists";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "resolver";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner_";
                            readonly type: "address";
                        }];
                        readonly name: "setOwner";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl_";
                            readonly type: "uint64";
                        }];
                        readonly name: "setRecord";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver_";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner_";
                            readonly type: "address";
                        }];
                        readonly name: "setSubnodeOwner";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl_";
                            readonly type: "uint64";
                        }];
                        readonly name: "setSubnodeRecord";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl_";
                            readonly type: "uint64";
                        }];
                        readonly name: "setTTL";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "ttl";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }];
                    address: "0x1493b2567056c2181630115660963E13A8E32735";
                    startBlock: number;
                };
                Resolver: {
                    startBlock: number;
                    abi: readonly [{
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "contentType";
                            readonly type: "uint256";
                        }];
                        readonly name: "ABIChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "a";
                            readonly type: "address";
                        }];
                        readonly name: "AddrChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "newAddress";
                            readonly type: "bytes";
                        }];
                        readonly name: "AddressChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "target";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "isAuthorised";
                            readonly type: "bool";
                        }];
                        readonly name: "AuthorisationChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "ContenthashChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "record";
                            readonly type: "bytes";
                        }];
                        readonly name: "DNSRecordChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }];
                        readonly name: "DNSRecordDeleted";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "DNSZoneCleared";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "implementer";
                            readonly type: "address";
                        }];
                        readonly name: "InterfaceChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "NameChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly name: "PubkeyChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "string";
                            readonly name: "indexedKey";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }];
                        readonly name: "TextChanged";
                        readonly type: "event";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "contentTypes";
                            readonly type: "uint256";
                        }];
                        readonly name: "ABI";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "addr";
                        readonly outputs: readonly [{
                            readonly internalType: "address payable";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }];
                        readonly name: "addr";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly name: "authorisations";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "clearDNSZone";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "contenthash";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "name";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }];
                        readonly name: "dnsRecord";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "name";
                            readonly type: "bytes32";
                        }];
                        readonly name: "hasDNSRecords";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "interfaceImplementer";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }];
                        readonly name: "multicall";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "results";
                            readonly type: "bytes[]";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "name";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "pubkey";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "contentType";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "setABI";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "a";
                            readonly type: "bytes";
                        }];
                        readonly name: "setAddr";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "a";
                            readonly type: "address";
                        }];
                        readonly name: "setAddr";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "target";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "isAuthorised";
                            readonly type: "bool";
                        }];
                        readonly name: "setAuthorisation";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "setContenthash";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "setDNSRecords";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }, {
                            readonly internalType: "address";
                            readonly name: "implementer";
                            readonly type: "address";
                        }];
                        readonly name: "setInterface";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "setName";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly name: "setPubkey";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }, {
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }];
                        readonly name: "setText";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }];
                        readonly name: "text";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "Approved";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "lastzonehash";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "zonehash";
                            readonly type: "bytes";
                        }];
                        readonly name: "DNSZonehashChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "string";
                            readonly name: "indexedKey";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }];
                        readonly name: "TextChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "newVersion";
                            readonly type: "uint64";
                        }];
                        readonly name: "VersionChanged";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "approve";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "clearRecords";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedFor";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "nodehash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }];
                        readonly name: "multicallWithNodeCheck";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "results";
                            readonly type: "bytes[]";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "recordVersions";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "newName";
                            readonly type: "string";
                        }];
                        readonly name: "setName";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "setZonehash";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "zonehash";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly type: "event";
                        readonly name: "DNSRecordChanged";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "name";
                            readonly type: "bytes";
                            readonly indexed: false;
                            readonly internalType: "bytes";
                        }, {
                            readonly name: "resource";
                            readonly type: "uint16";
                            readonly indexed: false;
                            readonly internalType: "uint16";
                        }, {
                            readonly name: "ttl";
                            readonly type: "uint32";
                            readonly indexed: false;
                            readonly internalType: "uint32";
                        }, {
                            readonly name: "record";
                            readonly type: "bytes";
                            readonly indexed: false;
                            readonly internalType: "bytes";
                        }];
                        readonly anonymous: false;
                    }, {
                        readonly type: "event";
                        readonly name: "DNSZoneUpdated";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "serial";
                            readonly type: "uint32";
                            readonly indexed: false;
                            readonly internalType: "uint32";
                        }];
                        readonly anonymous: false;
                    }, {
                        readonly type: "event";
                        readonly name: "ZoneCreated";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "version";
                            readonly type: "uint64";
                            readonly indexed: true;
                            readonly internalType: "uint64";
                        }];
                        readonly anonymous: false;
                    }];
                    filter: [{
                        readonly event: "AddrChanged";
                        readonly args: {};
                    }, {
                        readonly event: "AddressChanged";
                        readonly args: {};
                    }, {
                        readonly event: "NameChanged";
                        readonly args: {};
                    }, {
                        readonly event: "ABIChanged";
                        readonly args: {};
                    }, {
                        readonly event: "PubkeyChanged";
                        readonly args: {};
                    }, {
                        readonly event: "TextChanged(bytes32 indexed node, string indexed indexedKey, string key)";
                        readonly args: {};
                    }, {
                        readonly event: "TextChanged(bytes32 indexed node, string indexed indexedKey, string key, string value)";
                        readonly args: {};
                    }, {
                        readonly event: "ContenthashChanged";
                        readonly args: {};
                    }, {
                        readonly event: "InterfaceChanged";
                        readonly args: {};
                    }, {
                        readonly event: "AuthorisationChanged";
                        readonly args: {};
                    }, {
                        readonly event: "VersionChanged";
                        readonly args: {};
                    }, {
                        readonly event: "DNSRecordChanged";
                        readonly args: {};
                    }, {
                        readonly event: "DNSRecordDeleted";
                        readonly args: {};
                    }, {
                        readonly event: "DNSZonehashChanged";
                        readonly args: {};
                    }];
                };
                BaseRegistrar: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "registry_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "baseNode_";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "baseURI_";
                            readonly type: "string";
                        }, {
                            readonly internalType: "string";
                            readonly name: "collectionURI_";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "AccountBalanceOverflow";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "AlreadyInitialized";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "BalanceQueryForZeroAddress";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "Expired";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "NewOwnerIsZeroAddress";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "NoHandoverRequest";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "NonexistentToken";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "sender";
                            readonly type: "address";
                        }];
                        readonly name: "NotApprovedOwner";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "NotAvailable";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "NotOwnerNorApproved";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "NotRegisteredOrInGrace";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "OnlyController";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "RegistrarNotLive";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "TokenAlreadyExists";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "TokenDoesNotExist";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "TransferFromIncorrectOwner";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "TransferToNonERC721ReceiverImplementer";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "TransferToZeroAddress";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "Unauthorized";
                        readonly type: "error";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "Approval";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "isApproved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "_fromTokenId";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "_toTokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "BatchMetadataUpdate";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [];
                        readonly name: "ContractURIUpdated";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "ControllerAdded";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "ControllerRemoved";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRegistered";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "NameRegisteredWithRecord";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRenewed";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "pendingOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipHandoverCanceled";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "pendingOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipHandoverRequested";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "oldOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "Transfer";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "addController";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "approve";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "balanceOf";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "result";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "baseNode";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "cancelOwnershipHandover";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "pendingOwner";
                            readonly type: "address";
                        }];
                        readonly name: "completeOwnershipHandover";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "contractURI";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "controllers";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "isApproved";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "getApproved";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "result";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "result";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "isAvailable";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "name";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "nameExpires";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "expiry";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "result";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "ownerOf";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "pendingOwner";
                            readonly type: "address";
                        }];
                        readonly name: "ownershipHandoverExpiresAt";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "result";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "reclaim";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "register";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "registerOnly";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "registerWithRecord";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "registry";
                        readonly outputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "removeController";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "requestOwnershipHandover";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "safeTransferFrom";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "safeTransferFrom";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "isApproved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "baseURI_";
                            readonly type: "string";
                        }];
                        readonly name: "setBaseTokenURI";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "collectionURI_";
                            readonly type: "string";
                        }];
                        readonly name: "setContractURI";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "symbol";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "tokenURI";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "transferFrom";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }];
                    address: "0xA0c70ec36c010B55E3C434D6c6EbEEC50c705794";
                    startBlock: number;
                };
                EARegistrarController: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract BaseRegistrar";
                            readonly name: "base_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IPriceOracle";
                            readonly name: "prices_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IReverseRegistrar";
                            readonly name: "reverseRegistrar_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "rootNode_";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "rootName_";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "paymentReceiver_";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "target";
                            readonly type: "address";
                        }];
                        readonly name: "AddressEmptyCode";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }];
                        readonly name: "AddressInsufficientBalance";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "AlreadyInitialized";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "sender";
                            readonly type: "address";
                        }];
                        readonly name: "AlreadyRegisteredWithDiscount";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "DurationTooShort";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "FailedInnerCall";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "key";
                            readonly type: "bytes32";
                        }];
                        readonly name: "InactiveDiscount";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "InsufficientValue";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "key";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "InvalidDiscount";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "key";
                            readonly type: "bytes32";
                        }];
                        readonly name: "InvalidDiscountAmount";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "InvalidPaymentReceiver";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "key";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "validator";
                            readonly type: "address";
                        }];
                        readonly name: "InvalidValidator";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "NameNotAvailable";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "NewOwnerIsZeroAddress";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "NoHandoverRequest";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "ResolverRequiredWhenDataSupplied";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "token";
                            readonly type: "address";
                        }];
                        readonly name: "SafeERC20FailedOperation";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "TransferFailed";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "Unauthorized";
                        readonly type: "error";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "registrant";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "discountKey";
                            readonly type: "bytes32";
                        }];
                        readonly name: "DiscountApplied";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "discountKey";
                            readonly type: "bytes32";
                        }, {
                            readonly components: readonly [{
                                readonly internalType: "bool";
                                readonly name: "active";
                                readonly type: "bool";
                            }, {
                                readonly internalType: "address";
                                readonly name: "discountValidator";
                                readonly type: "address";
                            }, {
                                readonly internalType: "bytes32";
                                readonly name: "key";
                                readonly type: "bytes32";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "discount";
                                readonly type: "uint256";
                            }];
                            readonly indexed: false;
                            readonly internalType: "struct EARegistrarController.DiscountDetails";
                            readonly name: "details";
                            readonly type: "tuple";
                        }];
                        readonly name: "DiscountUpdated";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "payee";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "price";
                            readonly type: "uint256";
                        }];
                        readonly name: "ETHPaymentProcessed";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRegistered";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "pendingOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipHandoverCanceled";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "pendingOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipHandoverRequested";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "oldOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "newPaymentReceiver";
                            readonly type: "address";
                        }];
                        readonly name: "PaymentReceiverUpdated";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "newPrices";
                            readonly type: "address";
                        }];
                        readonly name: "PriceOracleUpdated";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "newReverseRegistrar";
                            readonly type: "address";
                        }];
                        readonly name: "ReverseRegistrarUpdated";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MIN_NAME_LENGTH";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MIN_REGISTRATION_DURATION";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "available";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "cancelOwnershipHandover";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "pendingOwner";
                            readonly type: "address";
                        }];
                        readonly name: "completeOwnershipHandover";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly components: readonly [{
                                readonly internalType: "string";
                                readonly name: "name";
                                readonly type: "string";
                            }, {
                                readonly internalType: "address";
                                readonly name: "owner";
                                readonly type: "address";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "duration";
                                readonly type: "uint256";
                            }, {
                                readonly internalType: "address";
                                readonly name: "resolver";
                                readonly type: "address";
                            }, {
                                readonly internalType: "bytes[]";
                                readonly name: "data";
                                readonly type: "bytes[]";
                            }, {
                                readonly internalType: "bool";
                                readonly name: "reverseRecord";
                                readonly type: "bool";
                            }];
                            readonly internalType: "struct EARegistrarController.RegisterRequest";
                            readonly name: "request";
                            readonly type: "tuple";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "discountKey";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "validationData";
                            readonly type: "bytes";
                        }];
                        readonly name: "discountedRegister";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "discountKey";
                            readonly type: "bytes32";
                        }];
                        readonly name: "discountedRegisterPrice";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "price";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "registrant";
                            readonly type: "address";
                        }];
                        readonly name: "discountedRegistrants";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "hasRegisteredWithDiscount";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "key";
                            readonly type: "bytes32";
                        }];
                        readonly name: "discounts";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "active";
                            readonly type: "bool";
                        }, {
                            readonly internalType: "address";
                            readonly name: "discountValidator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "key";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "discount";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "getActiveDiscounts";
                        readonly outputs: readonly [{
                            readonly components: readonly [{
                                readonly internalType: "bool";
                                readonly name: "active";
                                readonly type: "bool";
                            }, {
                                readonly internalType: "address";
                                readonly name: "discountValidator";
                                readonly type: "address";
                            }, {
                                readonly internalType: "bytes32";
                                readonly name: "key";
                                readonly type: "bytes32";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "discount";
                                readonly type: "uint256";
                            }];
                            readonly internalType: "struct EARegistrarController.DiscountDetails[]";
                            readonly name: "";
                            readonly type: "tuple[]";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address[]";
                            readonly name: "addresses";
                            readonly type: "address[]";
                        }];
                        readonly name: "hasRegisteredWithDiscount";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "result";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "pendingOwner";
                            readonly type: "address";
                        }];
                        readonly name: "ownershipHandoverExpiresAt";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "result";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "paymentReceiver";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "prices";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IPriceOracle";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "_token";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "_to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_amount";
                            readonly type: "uint256";
                        }];
                        readonly name: "recoverFunds";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "registerPrice";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "rentPrice";
                        readonly outputs: readonly [{
                            readonly components: readonly [{
                                readonly internalType: "uint256";
                                readonly name: "base";
                                readonly type: "uint256";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "premium";
                                readonly type: "uint256";
                            }];
                            readonly internalType: "struct IPriceOracle.Price";
                            readonly name: "price";
                            readonly type: "tuple";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "requestOwnershipHandover";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "reverseRegistrar";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IReverseRegistrar";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "rootName";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "rootNode";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly components: readonly [{
                                readonly internalType: "bool";
                                readonly name: "active";
                                readonly type: "bool";
                            }, {
                                readonly internalType: "address";
                                readonly name: "discountValidator";
                                readonly type: "address";
                            }, {
                                readonly internalType: "bytes32";
                                readonly name: "key";
                                readonly type: "bytes32";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "discount";
                                readonly type: "uint256";
                            }];
                            readonly internalType: "struct EARegistrarController.DiscountDetails";
                            readonly name: "details";
                            readonly type: "tuple";
                        }];
                        readonly name: "setDiscountDetails";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "paymentReceiver_";
                            readonly type: "address";
                        }];
                        readonly name: "setPaymentReceiver";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "contract IPriceOracle";
                            readonly name: "prices_";
                            readonly type: "address";
                        }];
                        readonly name: "setPriceOracle";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "contract IReverseRegistrar";
                            readonly name: "reverse_";
                            readonly type: "address";
                        }];
                        readonly name: "setReverseRegistrar";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "valid";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "withdrawETH";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }];
                    address: "0x3a0e8c2a0a28f396a5e5b69edb2e630311f1517a";
                    startBlock: number;
                };
                RegistrarController: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract BaseRegistrar";
                            readonly name: "base_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IPriceOracle";
                            readonly name: "prices_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IReverseRegistrar";
                            readonly name: "reverseRegistrar_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "rootNode_";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "rootName_";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "paymentReceiver_";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "target";
                            readonly type: "address";
                        }];
                        readonly name: "AddressEmptyCode";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }];
                        readonly name: "AddressInsufficientBalance";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "AlreadyInitialized";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "sender";
                            readonly type: "address";
                        }];
                        readonly name: "AlreadyRegisteredWithDiscount";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "DurationTooShort";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "FailedInnerCall";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "key";
                            readonly type: "bytes32";
                        }];
                        readonly name: "InactiveDiscount";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "InsufficientValue";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "key";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "InvalidDiscount";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "key";
                            readonly type: "bytes32";
                        }];
                        readonly name: "InvalidDiscountAmount";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "InvalidPaymentReceiver";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "key";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "validator";
                            readonly type: "address";
                        }];
                        readonly name: "InvalidValidator";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "NameNotAvailable";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "NewOwnerIsZeroAddress";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "NoHandoverRequest";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "ResolverRequiredWhenDataSupplied";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "token";
                            readonly type: "address";
                        }];
                        readonly name: "SafeERC20FailedOperation";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "TransferFailed";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "Unauthorized";
                        readonly type: "error";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "registrant";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "discountKey";
                            readonly type: "bytes32";
                        }];
                        readonly name: "DiscountApplied";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "discountKey";
                            readonly type: "bytes32";
                        }, {
                            readonly components: readonly [{
                                readonly internalType: "bool";
                                readonly name: "active";
                                readonly type: "bool";
                            }, {
                                readonly internalType: "address";
                                readonly name: "discountValidator";
                                readonly type: "address";
                            }, {
                                readonly internalType: "bytes32";
                                readonly name: "key";
                                readonly type: "bytes32";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "discount";
                                readonly type: "uint256";
                            }];
                            readonly indexed: false;
                            readonly internalType: "struct RegistrarController.DiscountDetails";
                            readonly name: "details";
                            readonly type: "tuple";
                        }];
                        readonly name: "DiscountUpdated";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "payee";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "price";
                            readonly type: "uint256";
                        }];
                        readonly name: "ETHPaymentProcessed";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRegistered";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRenewed";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "pendingOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipHandoverCanceled";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "pendingOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipHandoverRequested";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "oldOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "newPaymentReceiver";
                            readonly type: "address";
                        }];
                        readonly name: "PaymentReceiverUpdated";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "newPrices";
                            readonly type: "address";
                        }];
                        readonly name: "PriceOracleUpdated";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "newReverseRegistrar";
                            readonly type: "address";
                        }];
                        readonly name: "ReverseRegistrarUpdated";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MIN_NAME_LENGTH";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MIN_REGISTRATION_DURATION";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "available";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "cancelOwnershipHandover";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "pendingOwner";
                            readonly type: "address";
                        }];
                        readonly name: "completeOwnershipHandover";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly components: readonly [{
                                readonly internalType: "string";
                                readonly name: "name";
                                readonly type: "string";
                            }, {
                                readonly internalType: "address";
                                readonly name: "owner";
                                readonly type: "address";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "duration";
                                readonly type: "uint256";
                            }, {
                                readonly internalType: "address";
                                readonly name: "resolver";
                                readonly type: "address";
                            }, {
                                readonly internalType: "bytes[]";
                                readonly name: "data";
                                readonly type: "bytes[]";
                            }, {
                                readonly internalType: "bool";
                                readonly name: "reverseRecord";
                                readonly type: "bool";
                            }];
                            readonly internalType: "struct RegistrarController.RegisterRequest";
                            readonly name: "request";
                            readonly type: "tuple";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "discountKey";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "validationData";
                            readonly type: "bytes";
                        }];
                        readonly name: "discountedRegister";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "discountKey";
                            readonly type: "bytes32";
                        }];
                        readonly name: "discountedRegisterPrice";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "price";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "registrant";
                            readonly type: "address";
                        }];
                        readonly name: "discountedRegistrants";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "hasRegisteredWithDiscount";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "key";
                            readonly type: "bytes32";
                        }];
                        readonly name: "discounts";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "active";
                            readonly type: "bool";
                        }, {
                            readonly internalType: "address";
                            readonly name: "discountValidator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "key";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "discount";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "getActiveDiscounts";
                        readonly outputs: readonly [{
                            readonly components: readonly [{
                                readonly internalType: "bool";
                                readonly name: "active";
                                readonly type: "bool";
                            }, {
                                readonly internalType: "address";
                                readonly name: "discountValidator";
                                readonly type: "address";
                            }, {
                                readonly internalType: "bytes32";
                                readonly name: "key";
                                readonly type: "bytes32";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "discount";
                                readonly type: "uint256";
                            }];
                            readonly internalType: "struct RegistrarController.DiscountDetails[]";
                            readonly name: "";
                            readonly type: "tuple[]";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address[]";
                            readonly name: "addresses";
                            readonly type: "address[]";
                        }];
                        readonly name: "hasRegisteredWithDiscount";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "launchTime";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "result";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "pendingOwner";
                            readonly type: "address";
                        }];
                        readonly name: "ownershipHandoverExpiresAt";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "result";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "paymentReceiver";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "prices";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IPriceOracle";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "_token";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "_to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_amount";
                            readonly type: "uint256";
                        }];
                        readonly name: "recoverFunds";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly components: readonly [{
                                readonly internalType: "string";
                                readonly name: "name";
                                readonly type: "string";
                            }, {
                                readonly internalType: "address";
                                readonly name: "owner";
                                readonly type: "address";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "duration";
                                readonly type: "uint256";
                            }, {
                                readonly internalType: "address";
                                readonly name: "resolver";
                                readonly type: "address";
                            }, {
                                readonly internalType: "bytes[]";
                                readonly name: "data";
                                readonly type: "bytes[]";
                            }, {
                                readonly internalType: "bool";
                                readonly name: "reverseRecord";
                                readonly type: "bool";
                            }];
                            readonly internalType: "struct RegistrarController.RegisterRequest";
                            readonly name: "request";
                            readonly type: "tuple";
                        }];
                        readonly name: "register";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "registerPrice";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "rentPrice";
                        readonly outputs: readonly [{
                            readonly components: readonly [{
                                readonly internalType: "uint256";
                                readonly name: "base";
                                readonly type: "uint256";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "premium";
                                readonly type: "uint256";
                            }];
                            readonly internalType: "struct IPriceOracle.Price";
                            readonly name: "price";
                            readonly type: "tuple";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "requestOwnershipHandover";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "reverseRegistrar";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IReverseRegistrar";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "rootName";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "rootNode";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly components: readonly [{
                                readonly internalType: "bool";
                                readonly name: "active";
                                readonly type: "bool";
                            }, {
                                readonly internalType: "address";
                                readonly name: "discountValidator";
                                readonly type: "address";
                            }, {
                                readonly internalType: "bytes32";
                                readonly name: "key";
                                readonly type: "bytes32";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "discount";
                                readonly type: "uint256";
                            }];
                            readonly internalType: "struct RegistrarController.DiscountDetails";
                            readonly name: "details";
                            readonly type: "tuple";
                        }];
                        readonly name: "setDiscountDetails";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "launchTime_";
                            readonly type: "uint256";
                        }];
                        readonly name: "setLaunchTime";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "paymentReceiver_";
                            readonly type: "address";
                        }];
                        readonly name: "setPaymentReceiver";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "contract IPriceOracle";
                            readonly name: "prices_";
                            readonly type: "address";
                        }];
                        readonly name: "setPriceOracle";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "contract IReverseRegistrar";
                            readonly name: "reverse_";
                            readonly type: "address";
                        }];
                        readonly name: "setReverseRegistrar";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "valid";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "withdrawETH";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }];
                    address: "0x49aE3cC2e3AA768B1e5654f5D3C6002144A59581";
                    startBlock: number;
                };
            };
        };
        lineanames: {
            chain: {
                blockExplorers: {
                    readonly default: {
                        readonly name: "Etherscan";
                        readonly url: "https://sepolia.lineascan.build";
                        readonly apiUrl: "https://api-sepolia.lineascan.build/api";
                    };
                };
                contracts: {
                    readonly multicall3: {
                        readonly address: "0xca11bde05977b3631167028862be2a173976ca11";
                        readonly blockCreated: 227427;
                    };
                };
                id: 59141;
                name: "Linea Sepolia Testnet";
                nativeCurrency: {
                    readonly name: "Linea Ether";
                    readonly symbol: "ETH";
                    readonly decimals: 18;
                };
                rpcUrls: {
                    readonly default: {
                        readonly http: readonly ["https://rpc.sepolia.linea.build"];
                        readonly webSocket: readonly ["wss://rpc.sepolia.linea.build"];
                    };
                };
                sourceId?: number | undefined;
                testnet: true;
                custom?: Record<string, unknown> | undefined;
                fees: {
                    readonly estimateFeesPerGas: ({ client, multiply, request, type, }: Parameters<viem.ChainEstimateFeesPerGasFn>[0]) => ReturnType<viem.ChainEstimateFeesPerGasFn>;
                    readonly maxPriorityFeePerGas: ({ block, client, request }: viem.ChainFeesFnParameters<viem.ChainFormatters | undefined>) => Promise<bigint | null>;
                };
                formatters?: undefined;
                serializers?: viem.ChainSerializers<undefined, viem.TransactionSerializable> | undefined;
            };
            contracts: {
                Registry: {
                    abi: readonly [{
                        readonly inputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "NewOwner";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "NewResolver";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "NewTTL";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "Transfer";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "recordExists";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "resolver";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "setOwner";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setRecord";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "setSubnodeOwner";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setSubnodeRecord";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setTTL";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "ttl";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }];
                    address: "0x5B2636F0f2137B4aE722C01dd5122D7d3e9541f7";
                    startBlock: number;
                };
                Resolver: {
                    startBlock: number;
                    abi: readonly [{
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "contentType";
                            readonly type: "uint256";
                        }];
                        readonly name: "ABIChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "a";
                            readonly type: "address";
                        }];
                        readonly name: "AddrChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "newAddress";
                            readonly type: "bytes";
                        }];
                        readonly name: "AddressChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "target";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "isAuthorised";
                            readonly type: "bool";
                        }];
                        readonly name: "AuthorisationChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "ContenthashChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "record";
                            readonly type: "bytes";
                        }];
                        readonly name: "DNSRecordChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }];
                        readonly name: "DNSRecordDeleted";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "DNSZoneCleared";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "implementer";
                            readonly type: "address";
                        }];
                        readonly name: "InterfaceChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "NameChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly name: "PubkeyChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "string";
                            readonly name: "indexedKey";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }];
                        readonly name: "TextChanged";
                        readonly type: "event";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "contentTypes";
                            readonly type: "uint256";
                        }];
                        readonly name: "ABI";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "addr";
                        readonly outputs: readonly [{
                            readonly internalType: "address payable";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }];
                        readonly name: "addr";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly name: "authorisations";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "clearDNSZone";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "contenthash";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "name";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }];
                        readonly name: "dnsRecord";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "name";
                            readonly type: "bytes32";
                        }];
                        readonly name: "hasDNSRecords";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "interfaceImplementer";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }];
                        readonly name: "multicall";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "results";
                            readonly type: "bytes[]";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "name";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "pubkey";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "contentType";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "setABI";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "a";
                            readonly type: "bytes";
                        }];
                        readonly name: "setAddr";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "a";
                            readonly type: "address";
                        }];
                        readonly name: "setAddr";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "target";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "isAuthorised";
                            readonly type: "bool";
                        }];
                        readonly name: "setAuthorisation";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "setContenthash";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "setDNSRecords";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }, {
                            readonly internalType: "address";
                            readonly name: "implementer";
                            readonly type: "address";
                        }];
                        readonly name: "setInterface";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "setName";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly name: "setPubkey";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }, {
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }];
                        readonly name: "setText";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }];
                        readonly name: "text";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "Approved";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "lastzonehash";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "zonehash";
                            readonly type: "bytes";
                        }];
                        readonly name: "DNSZonehashChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "string";
                            readonly name: "indexedKey";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }];
                        readonly name: "TextChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "newVersion";
                            readonly type: "uint64";
                        }];
                        readonly name: "VersionChanged";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "approve";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "clearRecords";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedFor";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "nodehash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }];
                        readonly name: "multicallWithNodeCheck";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "results";
                            readonly type: "bytes[]";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "recordVersions";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "newName";
                            readonly type: "string";
                        }];
                        readonly name: "setName";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "setZonehash";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "zonehash";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly type: "event";
                        readonly name: "DNSRecordChanged";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "name";
                            readonly type: "bytes";
                            readonly indexed: false;
                            readonly internalType: "bytes";
                        }, {
                            readonly name: "resource";
                            readonly type: "uint16";
                            readonly indexed: false;
                            readonly internalType: "uint16";
                        }, {
                            readonly name: "ttl";
                            readonly type: "uint32";
                            readonly indexed: false;
                            readonly internalType: "uint32";
                        }, {
                            readonly name: "record";
                            readonly type: "bytes";
                            readonly indexed: false;
                            readonly internalType: "bytes";
                        }];
                        readonly anonymous: false;
                    }, {
                        readonly type: "event";
                        readonly name: "DNSZoneUpdated";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "serial";
                            readonly type: "uint32";
                            readonly indexed: false;
                            readonly internalType: "uint32";
                        }];
                        readonly anonymous: false;
                    }, {
                        readonly type: "event";
                        readonly name: "ZoneCreated";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "version";
                            readonly type: "uint64";
                            readonly indexed: true;
                            readonly internalType: "uint64";
                        }];
                        readonly anonymous: false;
                    }];
                    filter: [{
                        readonly event: "AddrChanged";
                        readonly args: {};
                    }, {
                        readonly event: "AddressChanged";
                        readonly args: {};
                    }, {
                        readonly event: "NameChanged";
                        readonly args: {};
                    }, {
                        readonly event: "ABIChanged";
                        readonly args: {};
                    }, {
                        readonly event: "PubkeyChanged";
                        readonly args: {};
                    }, {
                        readonly event: "TextChanged(bytes32 indexed node, string indexed indexedKey, string key)";
                        readonly args: {};
                    }, {
                        readonly event: "TextChanged(bytes32 indexed node, string indexed indexedKey, string key, string value)";
                        readonly args: {};
                    }, {
                        readonly event: "ContenthashChanged";
                        readonly args: {};
                    }, {
                        readonly event: "InterfaceChanged";
                        readonly args: {};
                    }, {
                        readonly event: "AuthorisationChanged";
                        readonly args: {};
                    }, {
                        readonly event: "VersionChanged";
                        readonly args: {};
                    }, {
                        readonly event: "DNSRecordChanged";
                        readonly args: {};
                    }, {
                        readonly event: "DNSRecordDeleted";
                        readonly args: {};
                    }, {
                        readonly event: "DNSZonehashChanged";
                        readonly args: {};
                    }];
                };
                BaseRegistrar: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "_ens";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "_baseNode";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "approved";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "Approval";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "ControllerAdded";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "ControllerRemoved";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameMigrated";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRegistered";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRenewed";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "previousOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "Transfer";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "GRACE_PERIOD";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "addController";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "approve";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "available";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "balanceOf";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "baseNode";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly name: "controllers";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "ens";
                        readonly outputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "getApproved";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "name";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "nameExpires";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "ownerOf";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "reclaim";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "register";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "registerOnly";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "removeController";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "safeTransferFrom";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "safeTransferFrom";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "symbol";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "tokenURI";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "transferFrom";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }];
                    address: "0x83475a84C0ea834F06c8e636A62631e7d2e07A44";
                    startBlock: number;
                };
                EthRegistrarController: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract BaseRegistrarImplementation";
                            readonly name: "_base";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IPriceOracle";
                            readonly name: "_prices";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_minCommitmentAge";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_maxCommitmentAge";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "contract ReverseRegistrar";
                            readonly name: "_reverseRegistrar";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract INameWrapper";
                            readonly name: "_nameWrapper";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract ENS";
                            readonly name: "_ens";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract PohVerifier";
                            readonly name: "_pohVerifier";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract PohRegistrationManager";
                            readonly name: "_pohRegistrationManager";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "_baseNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "_baseDomain";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "BaseNodeAsETHNodeOrROOTNodeNotAllowed";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "CommitmentTooNew";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "CommitmentTooOld";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "DifferentBaseDomainBaseNode";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "DurationTooShort";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "EmptyStringNotAllowed";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "InsufficientValue";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MaxCommitmentAgeTooHigh";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MaxCommitmentAgeTooLow";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "NameNotAvailable";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnerAlreadyRegistered";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "PohVerificationFailed";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "currentTime";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "renewTimeStart";
                            readonly type: "uint256";
                        }];
                        readonly name: "RenewPOHNotStarted";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "ResolverRequiredWhenDataSupplied";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "sender";
                            readonly type: "address";
                        }];
                        readonly name: "SenderNotOwner";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "UnexpiredCommitmentExists";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "WrongPohRegistrationDuration";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "ZeroAddressNotAllowed";
                        readonly type: "error";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "baseCost";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "premium";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRegistered";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "cost";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRenewed";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRenewedPoh";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "OwnerNameRegistered";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "previousOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "PohNameRegistered";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "GRACE_PERIOD";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MIN_REGISTRATION_DURATION";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "POH_REGISTRATION_DURATION";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "available";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "baseDomain";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "baseNode";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "commit";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "commitments";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "secret";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "reverseRecord";
                            readonly type: "bool";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }];
                        readonly name: "makeCommitment";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "maxCommitmentAge";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "minCommitmentAge";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "nameWrapper";
                        readonly outputs: readonly [{
                            readonly internalType: "contract INameWrapper";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "reverseRecord";
                            readonly type: "bool";
                        }];
                        readonly name: "ownerRegister";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "pohRegistrationManager";
                        readonly outputs: readonly [{
                            readonly internalType: "contract PohRegistrationManager";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "pohVerifier";
                        readonly outputs: readonly [{
                            readonly internalType: "contract PohVerifier";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "prices";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IPriceOracle";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "_token";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "_to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_amount";
                            readonly type: "uint256";
                        }];
                        readonly name: "recoverFunds";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "_address";
                            readonly type: "address";
                        }];
                        readonly name: "redeemed";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "secret";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "reverseRecord";
                            readonly type: "bool";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }];
                        readonly name: "register";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "secret";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "reverseRecord";
                            readonly type: "bool";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "signature";
                            readonly type: "bytes";
                        }];
                        readonly name: "registerPoh";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "signature";
                            readonly type: "bytes";
                        }];
                        readonly name: "renewPoh";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "rentPrice";
                        readonly outputs: readonly [{
                            readonly components: readonly [{
                                readonly internalType: "uint256";
                                readonly name: "base";
                                readonly type: "uint256";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "premium";
                                readonly type: "uint256";
                            }];
                            readonly internalType: "struct IPriceOracle.Price";
                            readonly name: "price";
                            readonly type: "tuple";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "reverseRegistrar";
                        readonly outputs: readonly [{
                            readonly internalType: "contract ReverseRegistrar";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "valid";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "withdraw";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }];
                    address: "0x0f81E3B3A32DFE1b8A08d3C0061d852337a09338";
                    startBlock: number;
                };
                NameWrapper: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "_ens";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IBaseRegistrar";
                            readonly name: "_registrar";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IMetadataService";
                            readonly name: "_metadataService";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "_baseNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "_baseNodeDnsEncoded";
                            readonly type: "bytes";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "BaseNodeAsETHNodeOrROOTNodeNotAllowed";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "CannotUpgrade";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "DifferentBaseNodeBaseNodeDnsEncoded";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "EmptyDataNotAllowed";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "IncompatibleParent";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "IncorrectTargetOwner";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "IncorrectTokenType";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "labelHash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "expectedLabelhash";
                            readonly type: "bytes32";
                        }];
                        readonly name: "LabelMismatch";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }];
                        readonly name: "LabelTooLong";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "LabelTooShort";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "NameIsNotWrapped";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "OperationProhibited";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "addr";
                            readonly type: "address";
                        }];
                        readonly name: "Unauthorised";
                        readonly type: "error";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "approved";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "Approval";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "active";
                            readonly type: "bool";
                        }];
                        readonly name: "ControllerChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "ExpiryExtended";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }];
                        readonly name: "FusesSet";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "NameUnwrapped";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "NameWrapped";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "previousOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256[]";
                            readonly name: "ids";
                            readonly type: "uint256[]";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256[]";
                            readonly name: "values";
                            readonly type: "uint256[]";
                        }];
                        readonly name: "TransferBatch";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "value";
                            readonly type: "uint256";
                        }];
                        readonly name: "TransferSingle";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "URI";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly name: "_tokens";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuseMask";
                            readonly type: "uint32";
                        }];
                        readonly name: "allFusesBurned";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "approve";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "balanceOf";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address[]";
                            readonly name: "accounts";
                            readonly type: "address[]";
                        }, {
                            readonly internalType: "uint256[]";
                            readonly name: "ids";
                            readonly type: "uint256[]";
                        }];
                        readonly name: "balanceOfBatch";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256[]";
                            readonly name: "";
                            readonly type: "uint256[]";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "baseNode";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "addr";
                            readonly type: "address";
                        }];
                        readonly name: "canExtendSubnames";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "addr";
                            readonly type: "address";
                        }];
                        readonly name: "canModifyName";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly name: "controllers";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "ens";
                        readonly outputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "extendExpiry";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "getApproved";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "getData";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }];
                        readonly name: "isWrapped";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "isWrapped";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "metadataService";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IMetadataService";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "name";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "names";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "onERC721Received";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "";
                            readonly type: "bytes4";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "ownerOf";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "_token";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "_to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_amount";
                            readonly type: "uint256";
                        }];
                        readonly name: "recoverFunds";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }];
                        readonly name: "registerAndWrap";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "registrarExpiry";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "registrar";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IBaseRegistrar";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256[]";
                            readonly name: "ids";
                            readonly type: "uint256[]";
                        }, {
                            readonly internalType: "uint256[]";
                            readonly name: "amounts";
                            readonly type: "uint256[]";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "safeBatchTransferFrom";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "amount";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "safeTransferFrom";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "setChildFuses";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "active";
                            readonly type: "bool";
                        }];
                        readonly name: "setController";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }];
                        readonly name: "setFuses";
                        readonly outputs: readonly [{
                            readonly internalType: "uint32";
                            readonly name: "";
                            readonly type: "uint32";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "contract IMetadataService";
                            readonly name: "_metadataService";
                            readonly type: "address";
                        }];
                        readonly name: "setMetadataService";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setRecord";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "setSubnodeOwner";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "setSubnodeRecord";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setTTL";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "contract INameWrapperUpgrade";
                            readonly name: "_upgradeAddress";
                            readonly type: "address";
                        }];
                        readonly name: "setUpgradeContract";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceId";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "unwrap";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "registrant";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "unwrapAnyLD";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "extraData";
                            readonly type: "bytes";
                        }];
                        readonly name: "upgrade";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "upgradeContract";
                        readonly outputs: readonly [{
                            readonly internalType: "contract INameWrapperUpgrade";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "uri";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "wrap";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "wrapAnyLD";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }];
                    address: "0xF127De9E039a789806fEd4C6b1C0f3aFfeA9425e";
                    startBlock: number;
                };
            };
        };
    };
    readonly holesky: {
        ensroot: {
            chain: {
                blockExplorers: {
                    readonly default: {
                        readonly name: "Etherscan";
                        readonly url: "https://holesky.etherscan.io";
                        readonly apiUrl: "https://api-holesky.etherscan.io/api";
                    };
                };
                contracts: {
                    readonly multicall3: {
                        readonly address: "0xca11bde05977b3631167028862be2a173976ca11";
                        readonly blockCreated: 77;
                    };
                    readonly ensRegistry: {
                        readonly address: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e";
                        readonly blockCreated: 801613;
                    };
                    readonly ensUniversalResolver: {
                        readonly address: "0xa6AC935D4971E3CD133b950aE053bECD16fE7f3b";
                        readonly blockCreated: 973484;
                    };
                };
                id: 17000;
                name: "Holesky";
                nativeCurrency: {
                    readonly name: "Holesky Ether";
                    readonly symbol: "ETH";
                    readonly decimals: 18;
                };
                rpcUrls: {
                    readonly default: {
                        readonly http: readonly ["https://ethereum-holesky-rpc.publicnode.com"];
                    };
                };
                sourceId?: number | undefined;
                testnet: true;
                custom?: Record<string, unknown> | undefined;
                fees?: viem.ChainFees<undefined> | undefined;
                formatters?: undefined;
                serializers?: viem.ChainSerializers<undefined, viem.TransactionSerializable> | undefined;
            };
            contracts: {
                RegistryOld: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "_old";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "NewOwner";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "NewResolver";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "NewTTL";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "Transfer";
                        readonly type: "event";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "old";
                        readonly outputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "recordExists";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "resolver";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "setOwner";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setRecord";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "setSubnodeOwner";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setSubnodeRecord";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setTTL";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "ttl";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }];
                    address: "0x94f523b8261B815b87EFfCf4d18E6aBeF18d6e4b";
                    startBlock: number;
                };
                Registry: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "_old";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "NewOwner";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "NewResolver";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "NewTTL";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "Transfer";
                        readonly type: "event";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "old";
                        readonly outputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "recordExists";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "resolver";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "setOwner";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setRecord";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "setSubnodeOwner";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setSubnodeRecord";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setTTL";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "ttl";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }];
                    address: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e";
                    startBlock: number;
                };
                Resolver: {
                    startBlock: number;
                    abi: readonly [{
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "contentType";
                            readonly type: "uint256";
                        }];
                        readonly name: "ABIChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "a";
                            readonly type: "address";
                        }];
                        readonly name: "AddrChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "newAddress";
                            readonly type: "bytes";
                        }];
                        readonly name: "AddressChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "target";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "isAuthorised";
                            readonly type: "bool";
                        }];
                        readonly name: "AuthorisationChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "ContenthashChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "record";
                            readonly type: "bytes";
                        }];
                        readonly name: "DNSRecordChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }];
                        readonly name: "DNSRecordDeleted";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "DNSZoneCleared";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "implementer";
                            readonly type: "address";
                        }];
                        readonly name: "InterfaceChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "NameChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly name: "PubkeyChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "string";
                            readonly name: "indexedKey";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }];
                        readonly name: "TextChanged";
                        readonly type: "event";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "contentTypes";
                            readonly type: "uint256";
                        }];
                        readonly name: "ABI";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "addr";
                        readonly outputs: readonly [{
                            readonly internalType: "address payable";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }];
                        readonly name: "addr";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly name: "authorisations";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "clearDNSZone";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "contenthash";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "name";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }];
                        readonly name: "dnsRecord";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "name";
                            readonly type: "bytes32";
                        }];
                        readonly name: "hasDNSRecords";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "interfaceImplementer";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }];
                        readonly name: "multicall";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "results";
                            readonly type: "bytes[]";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "name";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "pubkey";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "contentType";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "setABI";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "a";
                            readonly type: "bytes";
                        }];
                        readonly name: "setAddr";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "a";
                            readonly type: "address";
                        }];
                        readonly name: "setAddr";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "target";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "isAuthorised";
                            readonly type: "bool";
                        }];
                        readonly name: "setAuthorisation";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "setContenthash";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "setDNSRecords";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }, {
                            readonly internalType: "address";
                            readonly name: "implementer";
                            readonly type: "address";
                        }];
                        readonly name: "setInterface";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "setName";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly name: "setPubkey";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }, {
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }];
                        readonly name: "setText";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }];
                        readonly name: "text";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "Approved";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "lastzonehash";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "zonehash";
                            readonly type: "bytes";
                        }];
                        readonly name: "DNSZonehashChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "string";
                            readonly name: "indexedKey";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }];
                        readonly name: "TextChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "newVersion";
                            readonly type: "uint64";
                        }];
                        readonly name: "VersionChanged";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "approve";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "clearRecords";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedFor";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "nodehash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }];
                        readonly name: "multicallWithNodeCheck";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "results";
                            readonly type: "bytes[]";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "recordVersions";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "newName";
                            readonly type: "string";
                        }];
                        readonly name: "setName";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "setZonehash";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "zonehash";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly type: "event";
                        readonly name: "DNSRecordChanged";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "name";
                            readonly type: "bytes";
                            readonly indexed: false;
                            readonly internalType: "bytes";
                        }, {
                            readonly name: "resource";
                            readonly type: "uint16";
                            readonly indexed: false;
                            readonly internalType: "uint16";
                        }, {
                            readonly name: "ttl";
                            readonly type: "uint32";
                            readonly indexed: false;
                            readonly internalType: "uint32";
                        }, {
                            readonly name: "record";
                            readonly type: "bytes";
                            readonly indexed: false;
                            readonly internalType: "bytes";
                        }];
                        readonly anonymous: false;
                    }, {
                        readonly type: "event";
                        readonly name: "DNSZoneUpdated";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "serial";
                            readonly type: "uint32";
                            readonly indexed: false;
                            readonly internalType: "uint32";
                        }];
                        readonly anonymous: false;
                    }, {
                        readonly type: "event";
                        readonly name: "ZoneCreated";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "version";
                            readonly type: "uint64";
                            readonly indexed: true;
                            readonly internalType: "uint64";
                        }];
                        readonly anonymous: false;
                    }];
                    filter: [{
                        readonly event: "AddrChanged";
                        readonly args: {};
                    }, {
                        readonly event: "AddressChanged";
                        readonly args: {};
                    }, {
                        readonly event: "NameChanged";
                        readonly args: {};
                    }, {
                        readonly event: "ABIChanged";
                        readonly args: {};
                    }, {
                        readonly event: "PubkeyChanged";
                        readonly args: {};
                    }, {
                        readonly event: "TextChanged(bytes32 indexed node, string indexed indexedKey, string key)";
                        readonly args: {};
                    }, {
                        readonly event: "TextChanged(bytes32 indexed node, string indexed indexedKey, string key, string value)";
                        readonly args: {};
                    }, {
                        readonly event: "ContenthashChanged";
                        readonly args: {};
                    }, {
                        readonly event: "InterfaceChanged";
                        readonly args: {};
                    }, {
                        readonly event: "AuthorisationChanged";
                        readonly args: {};
                    }, {
                        readonly event: "VersionChanged";
                        readonly args: {};
                    }, {
                        readonly event: "DNSRecordChanged";
                        readonly args: {};
                    }, {
                        readonly event: "DNSRecordDeleted";
                        readonly args: {};
                    }, {
                        readonly event: "DNSZonehashChanged";
                        readonly args: {};
                    }];
                };
                BaseRegistrar: {
                    abi: readonly [{
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "getApproved";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "approve";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "transferFrom";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "reclaim";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "ens";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "safeTransferFrom";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "transferPeriodEnds";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "ownerOf";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "MIGRATION_LOCK_PERIOD";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "balanceOf";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "isOwner";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "available";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "addController";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "previousRegistrar";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }, {
                            readonly name: "_data";
                            readonly type: "bytes";
                        }];
                        readonly name: "safeTransferFrom";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "GRACE_PERIOD";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "nameExpires";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly name: "controllers";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "baseNode";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly name: "deed";
                            readonly type: "address";
                        }, {
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly name: "acceptRegistrarTransfer";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "removeController";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "register";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly name: "_ens";
                            readonly type: "address";
                        }, {
                            readonly name: "_previousRegistrar";
                            readonly type: "address";
                        }, {
                            readonly name: "_baseNode";
                            readonly type: "bytes32";
                        }, {
                            readonly name: "_transferPeriodEnds";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "ControllerAdded";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "ControllerRemoved";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: true;
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameMigrated";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: true;
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRegistered";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRenewed";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "previousOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "Transfer";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "approved";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "Approval";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }];
                    address: "0x57f1887a8BF19b14fC0dF6Fd9B2acc9Af147eA85";
                    startBlock: number;
                };
                EthRegistrarControllerOld: {
                    abi: readonly [{
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [];
                        readonly name: "withdraw";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "_prices";
                            readonly type: "address";
                        }];
                        readonly name: "setPriceOracle";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "_minCommitmentAge";
                            readonly type: "uint256";
                        }, {
                            readonly name: "_maxCommitmentAge";
                            readonly type: "uint256";
                        }];
                        readonly name: "setCommitmentAges";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "commitments";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "rentPrice";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly name: "secret";
                            readonly type: "bytes32";
                        }];
                        readonly name: "register";
                        readonly outputs: readonly [];
                        readonly payable: true;
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "MIN_REGISTRATION_DURATION";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "minCommitmentAge";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "isOwner";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "valid";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [];
                        readonly payable: true;
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "available";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "maxCommitmentAge";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "commit";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly name: "secret";
                            readonly type: "bytes32";
                        }];
                        readonly name: "makeCommitment";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly name: "_base";
                            readonly type: "address";
                        }, {
                            readonly name: "_prices";
                            readonly type: "address";
                        }, {
                            readonly name: "_minCommitmentAge";
                            readonly type: "uint256";
                        }, {
                            readonly name: "_maxCommitmentAge";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly name: "cost";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRegistered";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly name: "cost";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRenewed";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "oracle";
                            readonly type: "address";
                        }];
                        readonly name: "NewPriceOracle";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "previousOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }];
                    address: "0xf13fC748601fDc5afA255e9D9166EB43f603a903";
                    startBlock: number;
                };
                EthRegistrarController: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract BaseRegistrarImplementation";
                            readonly name: "_base";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IPriceOracle";
                            readonly name: "_prices";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_minCommitmentAge";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_maxCommitmentAge";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "contract ReverseRegistrar";
                            readonly name: "_reverseRegistrar";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract INameWrapper";
                            readonly name: "_nameWrapper";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "CommitmentTooNew";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "CommitmentTooOld";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "DurationTooShort";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "InsufficientValue";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MaxCommitmentAgeTooHigh";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MaxCommitmentAgeTooLow";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "NameNotAvailable";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "ResolverRequiredWhenDataSupplied";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "UnexpiredCommitmentExists";
                        readonly type: "error";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "baseCost";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "premium";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRegistered";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "cost";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRenewed";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "previousOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MIN_REGISTRATION_DURATION";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "available";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "commit";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "commitments";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "secret";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "reverseRecord";
                            readonly type: "bool";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }];
                        readonly name: "makeCommitment";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "maxCommitmentAge";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "minCommitmentAge";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "nameWrapper";
                        readonly outputs: readonly [{
                            readonly internalType: "contract INameWrapper";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "prices";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IPriceOracle";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "_token";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "_to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_amount";
                            readonly type: "uint256";
                        }];
                        readonly name: "recoverFunds";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "secret";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "reverseRecord";
                            readonly type: "bool";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }];
                        readonly name: "register";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "rentPrice";
                        readonly outputs: readonly [{
                            readonly components: readonly [{
                                readonly internalType: "uint256";
                                readonly name: "base";
                                readonly type: "uint256";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "premium";
                                readonly type: "uint256";
                            }];
                            readonly internalType: "struct IPriceOracle.Price";
                            readonly name: "price";
                            readonly type: "tuple";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "reverseRegistrar";
                        readonly outputs: readonly [{
                            readonly internalType: "contract ReverseRegistrar";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "valid";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "withdraw";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }];
                    address: "0x179Be112b24Ad4cFC392eF8924DfA08C20Ad8583";
                    startBlock: number;
                };
                NameWrapper: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "_ens";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IBaseRegistrar";
                            readonly name: "_registrar";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IMetadataService";
                            readonly name: "_metadataService";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "CannotUpgrade";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "IncompatibleParent";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "IncorrectTargetOwner";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "IncorrectTokenType";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "labelHash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "expectedLabelhash";
                            readonly type: "bytes32";
                        }];
                        readonly name: "LabelMismatch";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }];
                        readonly name: "LabelTooLong";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "LabelTooShort";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "NameIsNotWrapped";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "OperationProhibited";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "addr";
                            readonly type: "address";
                        }];
                        readonly name: "Unauthorised";
                        readonly type: "error";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "active";
                            readonly type: "bool";
                        }];
                        readonly name: "ControllerChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "ExpiryExtended";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }];
                        readonly name: "FusesSet";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "NameUnwrapped";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "NameWrapped";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "previousOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256[]";
                            readonly name: "ids";
                            readonly type: "uint256[]";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256[]";
                            readonly name: "values";
                            readonly type: "uint256[]";
                        }];
                        readonly name: "TransferBatch";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "value";
                            readonly type: "uint256";
                        }];
                        readonly name: "TransferSingle";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "URI";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly name: "_tokens";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuseMask";
                            readonly type: "uint32";
                        }];
                        readonly name: "allFusesBurned";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "balanceOf";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address[]";
                            readonly name: "accounts";
                            readonly type: "address[]";
                        }, {
                            readonly internalType: "uint256[]";
                            readonly name: "ids";
                            readonly type: "uint256[]";
                        }];
                        readonly name: "balanceOfBatch";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256[]";
                            readonly name: "";
                            readonly type: "uint256[]";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "addr";
                            readonly type: "address";
                        }];
                        readonly name: "canModifyName";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly name: "controllers";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "ens";
                        readonly outputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "extendExpiry";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "getData";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "isWrapped";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "metadataService";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IMetadataService";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "name";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "names";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "onERC721Received";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "";
                            readonly type: "bytes4";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "ownerOf";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "_token";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "_to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_amount";
                            readonly type: "uint256";
                        }];
                        readonly name: "recoverFunds";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }];
                        readonly name: "registerAndWrapETH2LD";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "registrarExpiry";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "registrar";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IBaseRegistrar";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256[]";
                            readonly name: "ids";
                            readonly type: "uint256[]";
                        }, {
                            readonly internalType: "uint256[]";
                            readonly name: "amounts";
                            readonly type: "uint256[]";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "safeBatchTransferFrom";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "amount";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "safeTransferFrom";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "setChildFuses";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "active";
                            readonly type: "bool";
                        }];
                        readonly name: "setController";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }];
                        readonly name: "setFuses";
                        readonly outputs: readonly [{
                            readonly internalType: "uint32";
                            readonly name: "";
                            readonly type: "uint32";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "contract IMetadataService";
                            readonly name: "_metadataService";
                            readonly type: "address";
                        }];
                        readonly name: "setMetadataService";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setRecord";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "setSubnodeOwner";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "setSubnodeRecord";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setTTL";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "contract INameWrapperUpgrade";
                            readonly name: "_upgradeAddress";
                            readonly type: "address";
                        }];
                        readonly name: "setUpgradeContract";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceId";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "unwrap";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "registrant";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "unwrapETH2LD";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "upgrade";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "upgradeContract";
                        readonly outputs: readonly [{
                            readonly internalType: "contract INameWrapperUpgrade";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "upgradeETH2LD";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "uri";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "wrap";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "wrapETH2LD";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }];
                    address: "0xab50971078225D365994dc1Edcb9b7FD72Bb4862";
                    startBlock: number;
                };
            };
        };
    };
    readonly "ens-test-env": {
        ensroot: {
            chain: {
                id: number;
                blockExplorers?: {
                    [key: string]: {
                        name: string;
                        url: string;
                        apiUrl?: string | undefined;
                    };
                    default: {
                        name: string;
                        url: string;
                        apiUrl?: string | undefined;
                    };
                } | undefined;
                contracts?: viem.Prettify<{
                    [key: string]: viem.ChainContract | {
                        [sourceId: number]: viem.ChainContract | undefined;
                    } | undefined;
                } & {
                    ensRegistry?: viem.ChainContract | undefined;
                    ensUniversalResolver?: viem.ChainContract | undefined;
                    multicall3?: viem.ChainContract | undefined;
                    universalSignatureVerifier?: viem.ChainContract | undefined;
                }> | undefined;
                name: "Anvil";
                nativeCurrency: {
                    readonly decimals: 18;
                    readonly name: "Ether";
                    readonly symbol: "ETH";
                };
                rpcUrls: {
                    readonly default: {
                        readonly http: readonly ["http://127.0.0.1:8545"];
                        readonly webSocket: readonly ["ws://127.0.0.1:8545"];
                    };
                };
                sourceId?: number | undefined;
                testnet?: boolean | undefined;
                custom?: Record<string, unknown> | undefined;
                fees?: viem.ChainFees<undefined> | undefined;
                formatters?: undefined;
                serializers?: viem.ChainSerializers<undefined, viem.TransactionSerializable> | undefined;
            };
            contracts: {
                RegistryOld: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "_old";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "NewOwner";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "NewResolver";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "NewTTL";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "Transfer";
                        readonly type: "event";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "old";
                        readonly outputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "recordExists";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "resolver";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "setOwner";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setRecord";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "setSubnodeOwner";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setSubnodeRecord";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setTTL";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "ttl";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }];
                    address: `0x${string}`;
                    startBlock: number;
                };
                Registry: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "_old";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "NewOwner";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "NewResolver";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "NewTTL";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "Transfer";
                        readonly type: "event";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "old";
                        readonly outputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "recordExists";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "resolver";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "setOwner";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setRecord";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "setSubnodeOwner";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setSubnodeRecord";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setTTL";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "ttl";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }];
                    address: `0x${string}`;
                    startBlock: number;
                };
                Resolver: {
                    startBlock: number;
                    abi: readonly [{
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "contentType";
                            readonly type: "uint256";
                        }];
                        readonly name: "ABIChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "a";
                            readonly type: "address";
                        }];
                        readonly name: "AddrChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "newAddress";
                            readonly type: "bytes";
                        }];
                        readonly name: "AddressChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "target";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "isAuthorised";
                            readonly type: "bool";
                        }];
                        readonly name: "AuthorisationChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "ContenthashChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "record";
                            readonly type: "bytes";
                        }];
                        readonly name: "DNSRecordChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }];
                        readonly name: "DNSRecordDeleted";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "DNSZoneCleared";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "implementer";
                            readonly type: "address";
                        }];
                        readonly name: "InterfaceChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "NameChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly name: "PubkeyChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "string";
                            readonly name: "indexedKey";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }];
                        readonly name: "TextChanged";
                        readonly type: "event";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "contentTypes";
                            readonly type: "uint256";
                        }];
                        readonly name: "ABI";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "addr";
                        readonly outputs: readonly [{
                            readonly internalType: "address payable";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }];
                        readonly name: "addr";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly name: "authorisations";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "clearDNSZone";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "contenthash";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "name";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }];
                        readonly name: "dnsRecord";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "name";
                            readonly type: "bytes32";
                        }];
                        readonly name: "hasDNSRecords";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "interfaceImplementer";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }];
                        readonly name: "multicall";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "results";
                            readonly type: "bytes[]";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "name";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "pubkey";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "contentType";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "setABI";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "a";
                            readonly type: "bytes";
                        }];
                        readonly name: "setAddr";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "a";
                            readonly type: "address";
                        }];
                        readonly name: "setAddr";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "target";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "isAuthorised";
                            readonly type: "bool";
                        }];
                        readonly name: "setAuthorisation";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "setContenthash";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "setDNSRecords";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }, {
                            readonly internalType: "address";
                            readonly name: "implementer";
                            readonly type: "address";
                        }];
                        readonly name: "setInterface";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "setName";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly name: "setPubkey";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }, {
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }];
                        readonly name: "setText";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }];
                        readonly name: "text";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "Approved";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "lastzonehash";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "zonehash";
                            readonly type: "bytes";
                        }];
                        readonly name: "DNSZonehashChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "string";
                            readonly name: "indexedKey";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }];
                        readonly name: "TextChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "newVersion";
                            readonly type: "uint64";
                        }];
                        readonly name: "VersionChanged";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "approve";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "clearRecords";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedFor";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "nodehash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }];
                        readonly name: "multicallWithNodeCheck";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "results";
                            readonly type: "bytes[]";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "recordVersions";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "newName";
                            readonly type: "string";
                        }];
                        readonly name: "setName";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "setZonehash";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "zonehash";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly type: "event";
                        readonly name: "DNSRecordChanged";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "name";
                            readonly type: "bytes";
                            readonly indexed: false;
                            readonly internalType: "bytes";
                        }, {
                            readonly name: "resource";
                            readonly type: "uint16";
                            readonly indexed: false;
                            readonly internalType: "uint16";
                        }, {
                            readonly name: "ttl";
                            readonly type: "uint32";
                            readonly indexed: false;
                            readonly internalType: "uint32";
                        }, {
                            readonly name: "record";
                            readonly type: "bytes";
                            readonly indexed: false;
                            readonly internalType: "bytes";
                        }];
                        readonly anonymous: false;
                    }, {
                        readonly type: "event";
                        readonly name: "DNSZoneUpdated";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "serial";
                            readonly type: "uint32";
                            readonly indexed: false;
                            readonly internalType: "uint32";
                        }];
                        readonly anonymous: false;
                    }, {
                        readonly type: "event";
                        readonly name: "ZoneCreated";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "version";
                            readonly type: "uint64";
                            readonly indexed: true;
                            readonly internalType: "uint64";
                        }];
                        readonly anonymous: false;
                    }];
                    filter: [{
                        readonly event: "AddrChanged";
                        readonly args: {};
                    }, {
                        readonly event: "AddressChanged";
                        readonly args: {};
                    }, {
                        readonly event: "NameChanged";
                        readonly args: {};
                    }, {
                        readonly event: "ABIChanged";
                        readonly args: {};
                    }, {
                        readonly event: "PubkeyChanged";
                        readonly args: {};
                    }, {
                        readonly event: "TextChanged(bytes32 indexed node, string indexed indexedKey, string key)";
                        readonly args: {};
                    }, {
                        readonly event: "TextChanged(bytes32 indexed node, string indexed indexedKey, string key, string value)";
                        readonly args: {};
                    }, {
                        readonly event: "ContenthashChanged";
                        readonly args: {};
                    }, {
                        readonly event: "InterfaceChanged";
                        readonly args: {};
                    }, {
                        readonly event: "AuthorisationChanged";
                        readonly args: {};
                    }, {
                        readonly event: "VersionChanged";
                        readonly args: {};
                    }, {
                        readonly event: "DNSRecordChanged";
                        readonly args: {};
                    }, {
                        readonly event: "DNSRecordDeleted";
                        readonly args: {};
                    }, {
                        readonly event: "DNSZonehashChanged";
                        readonly args: {};
                    }];
                };
                BaseRegistrar: {
                    abi: readonly [{
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "getApproved";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "approve";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "transferFrom";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "reclaim";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "ens";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "safeTransferFrom";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "transferPeriodEnds";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "ownerOf";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "MIGRATION_LOCK_PERIOD";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "balanceOf";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "isOwner";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "available";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "addController";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "previousRegistrar";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }, {
                            readonly name: "_data";
                            readonly type: "bytes";
                        }];
                        readonly name: "safeTransferFrom";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "GRACE_PERIOD";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "nameExpires";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly name: "controllers";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "baseNode";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly name: "deed";
                            readonly type: "address";
                        }, {
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly name: "acceptRegistrarTransfer";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "removeController";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "register";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly name: "_ens";
                            readonly type: "address";
                        }, {
                            readonly name: "_previousRegistrar";
                            readonly type: "address";
                        }, {
                            readonly name: "_baseNode";
                            readonly type: "bytes32";
                        }, {
                            readonly name: "_transferPeriodEnds";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "ControllerAdded";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "ControllerRemoved";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: true;
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameMigrated";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: true;
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRegistered";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRenewed";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "previousOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "Transfer";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "approved";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "Approval";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }];
                    address: `0x${string}`;
                    startBlock: number;
                };
                EthRegistrarControllerOld: {
                    abi: readonly [{
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [];
                        readonly name: "withdraw";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "_prices";
                            readonly type: "address";
                        }];
                        readonly name: "setPriceOracle";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "_minCommitmentAge";
                            readonly type: "uint256";
                        }, {
                            readonly name: "_maxCommitmentAge";
                            readonly type: "uint256";
                        }];
                        readonly name: "setCommitmentAges";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "commitments";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "rentPrice";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly name: "secret";
                            readonly type: "bytes32";
                        }];
                        readonly name: "register";
                        readonly outputs: readonly [];
                        readonly payable: true;
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "MIN_REGISTRATION_DURATION";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "minCommitmentAge";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "isOwner";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "valid";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [];
                        readonly payable: true;
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "available";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "maxCommitmentAge";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "commit";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly name: "secret";
                            readonly type: "bytes32";
                        }];
                        readonly name: "makeCommitment";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly name: "_base";
                            readonly type: "address";
                        }, {
                            readonly name: "_prices";
                            readonly type: "address";
                        }, {
                            readonly name: "_minCommitmentAge";
                            readonly type: "uint256";
                        }, {
                            readonly name: "_maxCommitmentAge";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly name: "cost";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRegistered";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly name: "cost";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRenewed";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "oracle";
                            readonly type: "address";
                        }];
                        readonly name: "NewPriceOracle";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "previousOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }];
                    address: `0x${string}`;
                    startBlock: number;
                };
                EthRegistrarController: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract BaseRegistrarImplementation";
                            readonly name: "_base";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IPriceOracle";
                            readonly name: "_prices";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_minCommitmentAge";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_maxCommitmentAge";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "contract ReverseRegistrar";
                            readonly name: "_reverseRegistrar";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract INameWrapper";
                            readonly name: "_nameWrapper";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "CommitmentTooNew";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "CommitmentTooOld";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "DurationTooShort";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "InsufficientValue";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MaxCommitmentAgeTooHigh";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MaxCommitmentAgeTooLow";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "NameNotAvailable";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "ResolverRequiredWhenDataSupplied";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "UnexpiredCommitmentExists";
                        readonly type: "error";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "baseCost";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "premium";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRegistered";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "cost";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRenewed";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "previousOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MIN_REGISTRATION_DURATION";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "available";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "commit";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "commitments";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "secret";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "reverseRecord";
                            readonly type: "bool";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }];
                        readonly name: "makeCommitment";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "maxCommitmentAge";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "minCommitmentAge";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "nameWrapper";
                        readonly outputs: readonly [{
                            readonly internalType: "contract INameWrapper";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "prices";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IPriceOracle";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "_token";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "_to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_amount";
                            readonly type: "uint256";
                        }];
                        readonly name: "recoverFunds";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "secret";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "reverseRecord";
                            readonly type: "bool";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }];
                        readonly name: "register";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "rentPrice";
                        readonly outputs: readonly [{
                            readonly components: readonly [{
                                readonly internalType: "uint256";
                                readonly name: "base";
                                readonly type: "uint256";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "premium";
                                readonly type: "uint256";
                            }];
                            readonly internalType: "struct IPriceOracle.Price";
                            readonly name: "price";
                            readonly type: "tuple";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "reverseRegistrar";
                        readonly outputs: readonly [{
                            readonly internalType: "contract ReverseRegistrar";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "valid";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "withdraw";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }];
                    address: `0x${string}`;
                    startBlock: number;
                };
                NameWrapper: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "_ens";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IBaseRegistrar";
                            readonly name: "_registrar";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IMetadataService";
                            readonly name: "_metadataService";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "CannotUpgrade";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "IncompatibleParent";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "IncorrectTargetOwner";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "IncorrectTokenType";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "labelHash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "expectedLabelhash";
                            readonly type: "bytes32";
                        }];
                        readonly name: "LabelMismatch";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }];
                        readonly name: "LabelTooLong";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "LabelTooShort";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "NameIsNotWrapped";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "OperationProhibited";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "addr";
                            readonly type: "address";
                        }];
                        readonly name: "Unauthorised";
                        readonly type: "error";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "active";
                            readonly type: "bool";
                        }];
                        readonly name: "ControllerChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "ExpiryExtended";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }];
                        readonly name: "FusesSet";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "NameUnwrapped";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "NameWrapped";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "previousOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256[]";
                            readonly name: "ids";
                            readonly type: "uint256[]";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256[]";
                            readonly name: "values";
                            readonly type: "uint256[]";
                        }];
                        readonly name: "TransferBatch";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "value";
                            readonly type: "uint256";
                        }];
                        readonly name: "TransferSingle";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "URI";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly name: "_tokens";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuseMask";
                            readonly type: "uint32";
                        }];
                        readonly name: "allFusesBurned";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "balanceOf";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address[]";
                            readonly name: "accounts";
                            readonly type: "address[]";
                        }, {
                            readonly internalType: "uint256[]";
                            readonly name: "ids";
                            readonly type: "uint256[]";
                        }];
                        readonly name: "balanceOfBatch";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256[]";
                            readonly name: "";
                            readonly type: "uint256[]";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "addr";
                            readonly type: "address";
                        }];
                        readonly name: "canModifyName";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly name: "controllers";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "ens";
                        readonly outputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "extendExpiry";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "getData";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "isWrapped";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "metadataService";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IMetadataService";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "name";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "names";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "onERC721Received";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "";
                            readonly type: "bytes4";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "ownerOf";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "_token";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "_to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_amount";
                            readonly type: "uint256";
                        }];
                        readonly name: "recoverFunds";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }];
                        readonly name: "registerAndWrapETH2LD";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "registrarExpiry";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "registrar";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IBaseRegistrar";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256[]";
                            readonly name: "ids";
                            readonly type: "uint256[]";
                        }, {
                            readonly internalType: "uint256[]";
                            readonly name: "amounts";
                            readonly type: "uint256[]";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "safeBatchTransferFrom";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "amount";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "safeTransferFrom";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "setChildFuses";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "active";
                            readonly type: "bool";
                        }];
                        readonly name: "setController";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }];
                        readonly name: "setFuses";
                        readonly outputs: readonly [{
                            readonly internalType: "uint32";
                            readonly name: "";
                            readonly type: "uint32";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "contract IMetadataService";
                            readonly name: "_metadataService";
                            readonly type: "address";
                        }];
                        readonly name: "setMetadataService";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setRecord";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "setSubnodeOwner";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "setSubnodeRecord";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setTTL";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "contract INameWrapperUpgrade";
                            readonly name: "_upgradeAddress";
                            readonly type: "address";
                        }];
                        readonly name: "setUpgradeContract";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceId";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "unwrap";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "registrant";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "unwrapETH2LD";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "upgrade";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "upgradeContract";
                        readonly outputs: readonly [{
                            readonly internalType: "contract INameWrapperUpgrade";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "upgradeETH2LD";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "uri";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "wrap";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "wrapETH2LD";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }];
                    address: `0x${string}`;
                    startBlock: number;
                };
            };
        };
    };
};
/**
 * Returns the ENSNamespace for a specified `namespaceId`.
 *
 * @param namespaceId - The ENSNamespace identifier (e.g. 'mainnet', 'sepolia', 'holesky', 'ens-test-env')
 * @returns the ENSNamespace
 */
declare const getENSNamespace: <T extends ENSNamespaceId>(namespaceId: T) => (typeof ENSNamespacesById)[T];
/**
 * Returns the `datasourceName` Datasource within the specified `namespaceId` namespace.
 *
 * NOTE: the typescript typechecker _will_ enforce validity. i.e. using an invalid `datasourceName`
 * within the specified `namespaceId` will be a type error.
 *
 * @param namespaceId - The ENSNamespace identifier (e.g. 'mainnet', 'sepolia', 'holesky', 'ens-test-env')
 * @param datasourceName - The name of the Datasource to retrieve
 * @returns The Datasource object for the given name within the specified namespace
 */
declare const getDatasource: <N extends ENSNamespaceId, D extends keyof ReturnType<typeof getENSNamespace<N>>>(namespaceId: N, datasourceName: D) => {
    readonly mainnet: {
        ensroot: {
            chain: {
                blockExplorers: {
                    readonly default: {
                        readonly name: "Etherscan";
                        readonly url: "https://etherscan.io";
                        readonly apiUrl: "https://api.etherscan.io/api";
                    };
                };
                contracts: {
                    readonly ensRegistry: {
                        readonly address: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e";
                    };
                    readonly ensUniversalResolver: {
                        readonly address: "0xce01f8eee7E479C928F8919abD53E553a36CeF67";
                        readonly blockCreated: 19258213;
                    };
                    readonly multicall3: {
                        readonly address: "0xca11bde05977b3631167028862be2a173976ca11";
                        readonly blockCreated: 14353601;
                    };
                };
                id: 1;
                name: "Ethereum";
                nativeCurrency: {
                    readonly name: "Ether";
                    readonly symbol: "ETH";
                    readonly decimals: 18;
                };
                rpcUrls: {
                    readonly default: {
                        readonly http: readonly ["https://eth.merkle.io"];
                    };
                };
                sourceId?: number | undefined;
                testnet?: boolean | undefined;
                custom?: Record<string, unknown> | undefined;
                fees?: viem.ChainFees<undefined> | undefined;
                formatters?: undefined;
                serializers?: viem.ChainSerializers<undefined, viem.TransactionSerializable> | undefined;
            };
            contracts: {
                RegistryOld: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "_old";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "NewOwner";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "NewResolver";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "NewTTL";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "Transfer";
                        readonly type: "event";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "old";
                        readonly outputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "recordExists";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "resolver";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "setOwner";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setRecord";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "setSubnodeOwner";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setSubnodeRecord";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setTTL";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "ttl";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }];
                    address: "0x314159265dd8dbb310642f98f50c066173c1259b";
                    startBlock: number;
                };
                Registry: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "_old";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "NewOwner";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "NewResolver";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "NewTTL";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "Transfer";
                        readonly type: "event";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "old";
                        readonly outputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "recordExists";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "resolver";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "setOwner";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setRecord";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "setSubnodeOwner";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setSubnodeRecord";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setTTL";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "ttl";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }];
                    address: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e";
                    startBlock: number;
                };
                Resolver: {
                    startBlock: number;
                    abi: readonly [{
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "contentType";
                            readonly type: "uint256";
                        }];
                        readonly name: "ABIChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "a";
                            readonly type: "address";
                        }];
                        readonly name: "AddrChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "newAddress";
                            readonly type: "bytes";
                        }];
                        readonly name: "AddressChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "target";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "isAuthorised";
                            readonly type: "bool";
                        }];
                        readonly name: "AuthorisationChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "ContenthashChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "record";
                            readonly type: "bytes";
                        }];
                        readonly name: "DNSRecordChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }];
                        readonly name: "DNSRecordDeleted";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "DNSZoneCleared";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "implementer";
                            readonly type: "address";
                        }];
                        readonly name: "InterfaceChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "NameChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly name: "PubkeyChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "string";
                            readonly name: "indexedKey";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }];
                        readonly name: "TextChanged";
                        readonly type: "event";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "contentTypes";
                            readonly type: "uint256";
                        }];
                        readonly name: "ABI";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "addr";
                        readonly outputs: readonly [{
                            readonly internalType: "address payable";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }];
                        readonly name: "addr";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly name: "authorisations";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "clearDNSZone";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "contenthash";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "name";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }];
                        readonly name: "dnsRecord";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "name";
                            readonly type: "bytes32";
                        }];
                        readonly name: "hasDNSRecords";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "interfaceImplementer";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }];
                        readonly name: "multicall";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "results";
                            readonly type: "bytes[]";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "name";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "pubkey";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "contentType";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "setABI";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "a";
                            readonly type: "bytes";
                        }];
                        readonly name: "setAddr";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "a";
                            readonly type: "address";
                        }];
                        readonly name: "setAddr";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "target";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "isAuthorised";
                            readonly type: "bool";
                        }];
                        readonly name: "setAuthorisation";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "setContenthash";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "setDNSRecords";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }, {
                            readonly internalType: "address";
                            readonly name: "implementer";
                            readonly type: "address";
                        }];
                        readonly name: "setInterface";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "setName";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly name: "setPubkey";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }, {
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }];
                        readonly name: "setText";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }];
                        readonly name: "text";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "Approved";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "lastzonehash";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "zonehash";
                            readonly type: "bytes";
                        }];
                        readonly name: "DNSZonehashChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "string";
                            readonly name: "indexedKey";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }];
                        readonly name: "TextChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "newVersion";
                            readonly type: "uint64";
                        }];
                        readonly name: "VersionChanged";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "approve";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "clearRecords";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedFor";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "nodehash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }];
                        readonly name: "multicallWithNodeCheck";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "results";
                            readonly type: "bytes[]";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "recordVersions";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "newName";
                            readonly type: "string";
                        }];
                        readonly name: "setName";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "setZonehash";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "zonehash";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly type: "event";
                        readonly name: "DNSRecordChanged";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "name";
                            readonly type: "bytes";
                            readonly indexed: false;
                            readonly internalType: "bytes";
                        }, {
                            readonly name: "resource";
                            readonly type: "uint16";
                            readonly indexed: false;
                            readonly internalType: "uint16";
                        }, {
                            readonly name: "ttl";
                            readonly type: "uint32";
                            readonly indexed: false;
                            readonly internalType: "uint32";
                        }, {
                            readonly name: "record";
                            readonly type: "bytes";
                            readonly indexed: false;
                            readonly internalType: "bytes";
                        }];
                        readonly anonymous: false;
                    }, {
                        readonly type: "event";
                        readonly name: "DNSZoneUpdated";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "serial";
                            readonly type: "uint32";
                            readonly indexed: false;
                            readonly internalType: "uint32";
                        }];
                        readonly anonymous: false;
                    }, {
                        readonly type: "event";
                        readonly name: "ZoneCreated";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "version";
                            readonly type: "uint64";
                            readonly indexed: true;
                            readonly internalType: "uint64";
                        }];
                        readonly anonymous: false;
                    }];
                    filter: [{
                        readonly event: "AddrChanged";
                        readonly args: {};
                    }, {
                        readonly event: "AddressChanged";
                        readonly args: {};
                    }, {
                        readonly event: "NameChanged";
                        readonly args: {};
                    }, {
                        readonly event: "ABIChanged";
                        readonly args: {};
                    }, {
                        readonly event: "PubkeyChanged";
                        readonly args: {};
                    }, {
                        readonly event: "TextChanged(bytes32 indexed node, string indexed indexedKey, string key)";
                        readonly args: {};
                    }, {
                        readonly event: "TextChanged(bytes32 indexed node, string indexed indexedKey, string key, string value)";
                        readonly args: {};
                    }, {
                        readonly event: "ContenthashChanged";
                        readonly args: {};
                    }, {
                        readonly event: "InterfaceChanged";
                        readonly args: {};
                    }, {
                        readonly event: "AuthorisationChanged";
                        readonly args: {};
                    }, {
                        readonly event: "VersionChanged";
                        readonly args: {};
                    }, {
                        readonly event: "DNSRecordChanged";
                        readonly args: {};
                    }, {
                        readonly event: "DNSRecordDeleted";
                        readonly args: {};
                    }, {
                        readonly event: "DNSZonehashChanged";
                        readonly args: {};
                    }];
                };
                BaseRegistrar: {
                    abi: readonly [{
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "getApproved";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "approve";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "transferFrom";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "reclaim";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "ens";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "safeTransferFrom";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "transferPeriodEnds";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "ownerOf";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "MIGRATION_LOCK_PERIOD";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "balanceOf";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "isOwner";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "available";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "addController";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "previousRegistrar";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }, {
                            readonly name: "_data";
                            readonly type: "bytes";
                        }];
                        readonly name: "safeTransferFrom";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "GRACE_PERIOD";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "nameExpires";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly name: "controllers";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "baseNode";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly name: "deed";
                            readonly type: "address";
                        }, {
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly name: "acceptRegistrarTransfer";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "removeController";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "register";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly name: "_ens";
                            readonly type: "address";
                        }, {
                            readonly name: "_previousRegistrar";
                            readonly type: "address";
                        }, {
                            readonly name: "_baseNode";
                            readonly type: "bytes32";
                        }, {
                            readonly name: "_transferPeriodEnds";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "ControllerAdded";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "ControllerRemoved";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: true;
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameMigrated";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: true;
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRegistered";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRenewed";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "previousOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "Transfer";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "approved";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "Approval";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }];
                    address: "0x57f1887a8BF19b14fC0dF6Fd9B2acc9Af147eA85";
                    startBlock: number;
                };
                EthRegistrarControllerOld: {
                    abi: readonly [{
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [];
                        readonly name: "withdraw";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "_prices";
                            readonly type: "address";
                        }];
                        readonly name: "setPriceOracle";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "_minCommitmentAge";
                            readonly type: "uint256";
                        }, {
                            readonly name: "_maxCommitmentAge";
                            readonly type: "uint256";
                        }];
                        readonly name: "setCommitmentAges";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "commitments";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "rentPrice";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly name: "secret";
                            readonly type: "bytes32";
                        }];
                        readonly name: "register";
                        readonly outputs: readonly [];
                        readonly payable: true;
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "MIN_REGISTRATION_DURATION";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "minCommitmentAge";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "isOwner";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "valid";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [];
                        readonly payable: true;
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "available";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "maxCommitmentAge";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "commit";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly name: "secret";
                            readonly type: "bytes32";
                        }];
                        readonly name: "makeCommitment";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly name: "_base";
                            readonly type: "address";
                        }, {
                            readonly name: "_prices";
                            readonly type: "address";
                        }, {
                            readonly name: "_minCommitmentAge";
                            readonly type: "uint256";
                        }, {
                            readonly name: "_maxCommitmentAge";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly name: "cost";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRegistered";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly name: "cost";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRenewed";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "oracle";
                            readonly type: "address";
                        }];
                        readonly name: "NewPriceOracle";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "previousOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }];
                    address: "0x283Af0B28c62C092C9727F1Ee09c02CA627EB7F5";
                    startBlock: number;
                };
                EthRegistrarController: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract BaseRegistrarImplementation";
                            readonly name: "_base";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IPriceOracle";
                            readonly name: "_prices";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_minCommitmentAge";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_maxCommitmentAge";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "contract ReverseRegistrar";
                            readonly name: "_reverseRegistrar";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract INameWrapper";
                            readonly name: "_nameWrapper";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "CommitmentTooNew";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "CommitmentTooOld";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "DurationTooShort";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "InsufficientValue";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MaxCommitmentAgeTooHigh";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MaxCommitmentAgeTooLow";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "NameNotAvailable";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "ResolverRequiredWhenDataSupplied";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "UnexpiredCommitmentExists";
                        readonly type: "error";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "baseCost";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "premium";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRegistered";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "cost";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRenewed";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "previousOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MIN_REGISTRATION_DURATION";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "available";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "commit";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "commitments";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "secret";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "reverseRecord";
                            readonly type: "bool";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }];
                        readonly name: "makeCommitment";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "maxCommitmentAge";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "minCommitmentAge";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "nameWrapper";
                        readonly outputs: readonly [{
                            readonly internalType: "contract INameWrapper";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "prices";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IPriceOracle";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "_token";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "_to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_amount";
                            readonly type: "uint256";
                        }];
                        readonly name: "recoverFunds";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "secret";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "reverseRecord";
                            readonly type: "bool";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }];
                        readonly name: "register";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "rentPrice";
                        readonly outputs: readonly [{
                            readonly components: readonly [{
                                readonly internalType: "uint256";
                                readonly name: "base";
                                readonly type: "uint256";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "premium";
                                readonly type: "uint256";
                            }];
                            readonly internalType: "struct IPriceOracle.Price";
                            readonly name: "price";
                            readonly type: "tuple";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "reverseRegistrar";
                        readonly outputs: readonly [{
                            readonly internalType: "contract ReverseRegistrar";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "valid";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "withdraw";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }];
                    address: "0x253553366Da8546fC250F225fe3d25d0C782303b";
                    startBlock: number;
                };
                NameWrapper: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "_ens";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IBaseRegistrar";
                            readonly name: "_registrar";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IMetadataService";
                            readonly name: "_metadataService";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "CannotUpgrade";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "IncompatibleParent";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "IncorrectTargetOwner";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "IncorrectTokenType";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "labelHash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "expectedLabelhash";
                            readonly type: "bytes32";
                        }];
                        readonly name: "LabelMismatch";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }];
                        readonly name: "LabelTooLong";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "LabelTooShort";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "NameIsNotWrapped";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "OperationProhibited";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "addr";
                            readonly type: "address";
                        }];
                        readonly name: "Unauthorised";
                        readonly type: "error";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "active";
                            readonly type: "bool";
                        }];
                        readonly name: "ControllerChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "ExpiryExtended";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }];
                        readonly name: "FusesSet";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "NameUnwrapped";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "NameWrapped";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "previousOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256[]";
                            readonly name: "ids";
                            readonly type: "uint256[]";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256[]";
                            readonly name: "values";
                            readonly type: "uint256[]";
                        }];
                        readonly name: "TransferBatch";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "value";
                            readonly type: "uint256";
                        }];
                        readonly name: "TransferSingle";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "URI";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly name: "_tokens";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuseMask";
                            readonly type: "uint32";
                        }];
                        readonly name: "allFusesBurned";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "balanceOf";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address[]";
                            readonly name: "accounts";
                            readonly type: "address[]";
                        }, {
                            readonly internalType: "uint256[]";
                            readonly name: "ids";
                            readonly type: "uint256[]";
                        }];
                        readonly name: "balanceOfBatch";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256[]";
                            readonly name: "";
                            readonly type: "uint256[]";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "addr";
                            readonly type: "address";
                        }];
                        readonly name: "canModifyName";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly name: "controllers";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "ens";
                        readonly outputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "extendExpiry";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "getData";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "isWrapped";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "metadataService";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IMetadataService";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "name";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "names";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "onERC721Received";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "";
                            readonly type: "bytes4";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "ownerOf";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "_token";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "_to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_amount";
                            readonly type: "uint256";
                        }];
                        readonly name: "recoverFunds";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }];
                        readonly name: "registerAndWrapETH2LD";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "registrarExpiry";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "registrar";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IBaseRegistrar";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256[]";
                            readonly name: "ids";
                            readonly type: "uint256[]";
                        }, {
                            readonly internalType: "uint256[]";
                            readonly name: "amounts";
                            readonly type: "uint256[]";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "safeBatchTransferFrom";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "amount";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "safeTransferFrom";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "setChildFuses";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "active";
                            readonly type: "bool";
                        }];
                        readonly name: "setController";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }];
                        readonly name: "setFuses";
                        readonly outputs: readonly [{
                            readonly internalType: "uint32";
                            readonly name: "";
                            readonly type: "uint32";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "contract IMetadataService";
                            readonly name: "_metadataService";
                            readonly type: "address";
                        }];
                        readonly name: "setMetadataService";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setRecord";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "setSubnodeOwner";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "setSubnodeRecord";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setTTL";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "contract INameWrapperUpgrade";
                            readonly name: "_upgradeAddress";
                            readonly type: "address";
                        }];
                        readonly name: "setUpgradeContract";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceId";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "unwrap";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "registrant";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "unwrapETH2LD";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "upgrade";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "upgradeContract";
                        readonly outputs: readonly [{
                            readonly internalType: "contract INameWrapperUpgrade";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "upgradeETH2LD";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "uri";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "wrap";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "wrapETH2LD";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }];
                    address: "0xD4416b13d2b3a9aBae7AcD5D6C2BbDBE25686401";
                    startBlock: number;
                };
            };
        };
        basenames: {
            chain: {
                blockExplorers: {
                    readonly default: {
                        readonly name: "Basescan";
                        readonly url: "https://basescan.org";
                        readonly apiUrl: "https://api.basescan.org/api";
                    };
                };
                contracts: {
                    readonly disputeGameFactory: {
                        readonly 1: {
                            readonly address: "0x43edB88C4B80fDD2AdFF2412A7BebF9dF42cB40e";
                        };
                    };
                    readonly l2OutputOracle: {
                        readonly 1: {
                            readonly address: "0x56315b90c40730925ec5485cf004d835058518A0";
                        };
                    };
                    readonly multicall3: {
                        readonly address: "0xca11bde05977b3631167028862be2a173976ca11";
                        readonly blockCreated: 5022;
                    };
                    readonly portal: {
                        readonly 1: {
                            readonly address: "0x49048044D57e1C92A77f79988d21Fa8fAF74E97e";
                            readonly blockCreated: 17482143;
                        };
                    };
                    readonly l1StandardBridge: {
                        readonly 1: {
                            readonly address: "0x3154Cf16ccdb4C6d922629664174b904d80F2C35";
                            readonly blockCreated: 17482143;
                        };
                    };
                    readonly gasPriceOracle: {
                        readonly address: "0x420000000000000000000000000000000000000F";
                    };
                    readonly l1Block: {
                        readonly address: "0x4200000000000000000000000000000000000015";
                    };
                    readonly l2CrossDomainMessenger: {
                        readonly address: "0x4200000000000000000000000000000000000007";
                    };
                    readonly l2Erc721Bridge: {
                        readonly address: "0x4200000000000000000000000000000000000014";
                    };
                    readonly l2StandardBridge: {
                        readonly address: "0x4200000000000000000000000000000000000010";
                    };
                    readonly l2ToL1MessagePasser: {
                        readonly address: "0x4200000000000000000000000000000000000016";
                    };
                };
                id: 8453;
                name: "Base";
                nativeCurrency: {
                    readonly name: "Ether";
                    readonly symbol: "ETH";
                    readonly decimals: 18;
                };
                rpcUrls: {
                    readonly default: {
                        readonly http: readonly ["https://mainnet.base.org"];
                    };
                };
                sourceId: 1;
                testnet?: boolean | undefined;
                custom?: Record<string, unknown> | undefined;
                fees?: viem.ChainFees<undefined> | undefined;
                formatters: {
                    readonly block: {
                        exclude: [] | undefined;
                        format: (args: viem_chains.OpStackRpcBlock) => {
                            baseFeePerGas: bigint | null;
                            blobGasUsed: bigint;
                            difficulty: bigint;
                            excessBlobGas: bigint;
                            extraData: viem.Hex;
                            gasLimit: bigint;
                            gasUsed: bigint;
                            hash: `0x${string}` | null;
                            logsBloom: `0x${string}` | null;
                            miner: viem.Address;
                            mixHash: viem.Hash;
                            nonce: `0x${string}` | null;
                            number: bigint | null;
                            parentBeaconBlockRoot?: viem.Hex | undefined;
                            parentHash: viem.Hash;
                            receiptsRoot: viem.Hex;
                            sealFields: viem.Hex[];
                            sha3Uncles: viem.Hash;
                            size: bigint;
                            stateRoot: viem.Hash;
                            timestamp: bigint;
                            totalDifficulty: bigint | null;
                            transactions: `0x${string}`[] | viem_chains.OpStackTransaction<boolean>[];
                            transactionsRoot: viem.Hash;
                            uncles: viem.Hash[];
                            withdrawals?: viem.Withdrawal[] | undefined;
                            withdrawalsRoot?: viem.Hex | undefined;
                        } & {};
                        type: "block";
                    };
                    readonly transaction: {
                        exclude: [] | undefined;
                        format: (args: viem_chains.OpStackRpcTransaction) => ({
                            blockHash: `0x${string}` | null;
                            blockNumber: bigint | null;
                            from: viem.Address;
                            gas: bigint;
                            hash: viem.Hash;
                            input: viem.Hex;
                            nonce: number;
                            r: viem.Hex;
                            s: viem.Hex;
                            to: viem.Address | null;
                            transactionIndex: number | null;
                            typeHex: viem.Hex | null;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                            gasPrice?: undefined;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas: bigint;
                            maxPriorityFeePerGas: bigint;
                            isSystemTx?: boolean;
                            mint?: bigint | undefined;
                            sourceHash: viem.Hex;
                            type: "deposit";
                        } | {
                            r: viem.Hex;
                            s: viem.Hex;
                            v: bigint;
                            to: viem.Address | null;
                            from: viem.Address;
                            gas: bigint;
                            nonce: number;
                            value: bigint;
                            blockHash: `0x${string}` | null;
                            blockNumber: bigint | null;
                            hash: viem.Hash;
                            input: viem.Hex;
                            transactionIndex: number | null;
                            typeHex: viem.Hex | null;
                            accessList?: undefined;
                            authorizationList?: undefined;
                            blobVersionedHashes?: undefined;
                            chainId?: number | undefined;
                            yParity?: undefined;
                            type: "legacy";
                            gasPrice: bigint;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas?: undefined;
                            maxPriorityFeePerGas?: undefined;
                            isSystemTx?: undefined;
                            mint?: undefined;
                            sourceHash?: undefined;
                        } | {
                            blockHash: `0x${string}` | null;
                            blockNumber: bigint | null;
                            from: viem.Address;
                            gas: bigint;
                            hash: viem.Hash;
                            input: viem.Hex;
                            nonce: number;
                            r: viem.Hex;
                            s: viem.Hex;
                            to: viem.Address | null;
                            transactionIndex: number | null;
                            typeHex: viem.Hex | null;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                            accessList: viem.AccessList;
                            authorizationList?: undefined;
                            blobVersionedHashes?: undefined;
                            chainId: number;
                            type: "eip2930";
                            gasPrice: bigint;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas?: undefined;
                            maxPriorityFeePerGas?: undefined;
                            isSystemTx?: undefined;
                            mint?: undefined;
                            sourceHash?: undefined;
                        } | {
                            blockHash: `0x${string}` | null;
                            blockNumber: bigint | null;
                            from: viem.Address;
                            gas: bigint;
                            hash: viem.Hash;
                            input: viem.Hex;
                            nonce: number;
                            r: viem.Hex;
                            s: viem.Hex;
                            to: viem.Address | null;
                            transactionIndex: number | null;
                            typeHex: viem.Hex | null;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                            accessList: viem.AccessList;
                            authorizationList?: undefined;
                            blobVersionedHashes?: undefined;
                            chainId: number;
                            type: "eip1559";
                            gasPrice?: undefined;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas: bigint;
                            maxPriorityFeePerGas: bigint;
                            isSystemTx?: undefined;
                            mint?: undefined;
                            sourceHash?: undefined;
                        } | {
                            blockHash: `0x${string}` | null;
                            blockNumber: bigint | null;
                            from: viem.Address;
                            gas: bigint;
                            hash: viem.Hash;
                            input: viem.Hex;
                            nonce: number;
                            r: viem.Hex;
                            s: viem.Hex;
                            to: viem.Address | null;
                            transactionIndex: number | null;
                            typeHex: viem.Hex | null;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                            accessList: viem.AccessList;
                            authorizationList?: undefined;
                            blobVersionedHashes: readonly viem.Hex[];
                            chainId: number;
                            type: "eip4844";
                            gasPrice?: undefined;
                            maxFeePerBlobGas: bigint;
                            maxFeePerGas: bigint;
                            maxPriorityFeePerGas: bigint;
                            isSystemTx?: undefined;
                            mint?: undefined;
                            sourceHash?: undefined;
                        } | {
                            blockHash: `0x${string}` | null;
                            blockNumber: bigint | null;
                            from: viem.Address;
                            gas: bigint;
                            hash: viem.Hash;
                            input: viem.Hex;
                            nonce: number;
                            r: viem.Hex;
                            s: viem.Hex;
                            to: viem.Address | null;
                            transactionIndex: number | null;
                            typeHex: viem.Hex | null;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                            accessList: viem.AccessList;
                            authorizationList: viem_experimental.SignedAuthorizationList;
                            blobVersionedHashes?: undefined;
                            chainId: number;
                            type: "eip7702";
                            gasPrice?: undefined;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas: bigint;
                            maxPriorityFeePerGas: bigint;
                            isSystemTx?: undefined;
                            mint?: undefined;
                            sourceHash?: undefined;
                        }) & {};
                        type: "transaction";
                    };
                    readonly transactionReceipt: {
                        exclude: [] | undefined;
                        format: (args: viem_chains.OpStackRpcTransactionReceipt) => {
                            blobGasPrice?: bigint | undefined;
                            blobGasUsed?: bigint | undefined;
                            blockHash: viem.Hash;
                            blockNumber: bigint;
                            contractAddress: viem.Address | null | undefined;
                            cumulativeGasUsed: bigint;
                            effectiveGasPrice: bigint;
                            from: viem.Address;
                            gasUsed: bigint;
                            logs: viem.Log<bigint, number, false>[];
                            logsBloom: viem.Hex;
                            root?: viem.Hash | undefined;
                            status: "success" | "reverted";
                            to: viem.Address | null;
                            transactionHash: viem.Hash;
                            transactionIndex: number;
                            type: viem.TransactionType;
                            l1GasPrice: bigint | null;
                            l1GasUsed: bigint | null;
                            l1Fee: bigint | null;
                            l1FeeScalar: number | null;
                        } & {};
                        type: "transactionReceipt";
                    };
                };
                serializers: {
                    readonly transaction: typeof viem_chains.serializeTransactionOpStack;
                };
            };
            contracts: {
                Registry: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "rootOwner";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "Unauthorized";
                        readonly type: "error";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "NewOwner";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "NewResolver";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "NewTTL";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "Transfer";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "recordExists";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "resolver";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner_";
                            readonly type: "address";
                        }];
                        readonly name: "setOwner";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl_";
                            readonly type: "uint64";
                        }];
                        readonly name: "setRecord";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver_";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner_";
                            readonly type: "address";
                        }];
                        readonly name: "setSubnodeOwner";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl_";
                            readonly type: "uint64";
                        }];
                        readonly name: "setSubnodeRecord";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl_";
                            readonly type: "uint64";
                        }];
                        readonly name: "setTTL";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "ttl";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }];
                    address: "0xb94704422c2a1e396835a571837aa5ae53285a95";
                    startBlock: number;
                };
                Resolver: {
                    startBlock: number;
                    abi: readonly [{
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "contentType";
                            readonly type: "uint256";
                        }];
                        readonly name: "ABIChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "a";
                            readonly type: "address";
                        }];
                        readonly name: "AddrChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "newAddress";
                            readonly type: "bytes";
                        }];
                        readonly name: "AddressChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "target";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "isAuthorised";
                            readonly type: "bool";
                        }];
                        readonly name: "AuthorisationChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "ContenthashChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "record";
                            readonly type: "bytes";
                        }];
                        readonly name: "DNSRecordChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }];
                        readonly name: "DNSRecordDeleted";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "DNSZoneCleared";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "implementer";
                            readonly type: "address";
                        }];
                        readonly name: "InterfaceChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "NameChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly name: "PubkeyChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "string";
                            readonly name: "indexedKey";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }];
                        readonly name: "TextChanged";
                        readonly type: "event";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "contentTypes";
                            readonly type: "uint256";
                        }];
                        readonly name: "ABI";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "addr";
                        readonly outputs: readonly [{
                            readonly internalType: "address payable";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }];
                        readonly name: "addr";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly name: "authorisations";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "clearDNSZone";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "contenthash";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "name";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }];
                        readonly name: "dnsRecord";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "name";
                            readonly type: "bytes32";
                        }];
                        readonly name: "hasDNSRecords";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "interfaceImplementer";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }];
                        readonly name: "multicall";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "results";
                            readonly type: "bytes[]";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "name";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "pubkey";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "contentType";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "setABI";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "a";
                            readonly type: "bytes";
                        }];
                        readonly name: "setAddr";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "a";
                            readonly type: "address";
                        }];
                        readonly name: "setAddr";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "target";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "isAuthorised";
                            readonly type: "bool";
                        }];
                        readonly name: "setAuthorisation";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "setContenthash";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "setDNSRecords";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }, {
                            readonly internalType: "address";
                            readonly name: "implementer";
                            readonly type: "address";
                        }];
                        readonly name: "setInterface";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "setName";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly name: "setPubkey";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }, {
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }];
                        readonly name: "setText";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }];
                        readonly name: "text";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "Approved";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "lastzonehash";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "zonehash";
                            readonly type: "bytes";
                        }];
                        readonly name: "DNSZonehashChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "string";
                            readonly name: "indexedKey";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }];
                        readonly name: "TextChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "newVersion";
                            readonly type: "uint64";
                        }];
                        readonly name: "VersionChanged";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "approve";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "clearRecords";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedFor";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "nodehash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }];
                        readonly name: "multicallWithNodeCheck";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "results";
                            readonly type: "bytes[]";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "recordVersions";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "newName";
                            readonly type: "string";
                        }];
                        readonly name: "setName";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "setZonehash";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "zonehash";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly type: "event";
                        readonly name: "DNSRecordChanged";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "name";
                            readonly type: "bytes";
                            readonly indexed: false;
                            readonly internalType: "bytes";
                        }, {
                            readonly name: "resource";
                            readonly type: "uint16";
                            readonly indexed: false;
                            readonly internalType: "uint16";
                        }, {
                            readonly name: "ttl";
                            readonly type: "uint32";
                            readonly indexed: false;
                            readonly internalType: "uint32";
                        }, {
                            readonly name: "record";
                            readonly type: "bytes";
                            readonly indexed: false;
                            readonly internalType: "bytes";
                        }];
                        readonly anonymous: false;
                    }, {
                        readonly type: "event";
                        readonly name: "DNSZoneUpdated";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "serial";
                            readonly type: "uint32";
                            readonly indexed: false;
                            readonly internalType: "uint32";
                        }];
                        readonly anonymous: false;
                    }, {
                        readonly type: "event";
                        readonly name: "ZoneCreated";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "version";
                            readonly type: "uint64";
                            readonly indexed: true;
                            readonly internalType: "uint64";
                        }];
                        readonly anonymous: false;
                    }];
                    filter: [{
                        readonly event: "AddrChanged";
                        readonly args: {};
                    }, {
                        readonly event: "AddressChanged";
                        readonly args: {};
                    }, {
                        readonly event: "NameChanged";
                        readonly args: {};
                    }, {
                        readonly event: "ABIChanged";
                        readonly args: {};
                    }, {
                        readonly event: "PubkeyChanged";
                        readonly args: {};
                    }, {
                        readonly event: "TextChanged(bytes32 indexed node, string indexed indexedKey, string key)";
                        readonly args: {};
                    }, {
                        readonly event: "TextChanged(bytes32 indexed node, string indexed indexedKey, string key, string value)";
                        readonly args: {};
                    }, {
                        readonly event: "ContenthashChanged";
                        readonly args: {};
                    }, {
                        readonly event: "InterfaceChanged";
                        readonly args: {};
                    }, {
                        readonly event: "AuthorisationChanged";
                        readonly args: {};
                    }, {
                        readonly event: "VersionChanged";
                        readonly args: {};
                    }, {
                        readonly event: "DNSRecordChanged";
                        readonly args: {};
                    }, {
                        readonly event: "DNSRecordDeleted";
                        readonly args: {};
                    }, {
                        readonly event: "DNSZonehashChanged";
                        readonly args: {};
                    }];
                };
                BaseRegistrar: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "registry_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "baseNode_";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "baseURI_";
                            readonly type: "string";
                        }, {
                            readonly internalType: "string";
                            readonly name: "collectionURI_";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "AccountBalanceOverflow";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "AlreadyInitialized";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "BalanceQueryForZeroAddress";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "Expired";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "NewOwnerIsZeroAddress";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "NoHandoverRequest";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "NonexistentToken";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "sender";
                            readonly type: "address";
                        }];
                        readonly name: "NotApprovedOwner";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "NotAvailable";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "NotOwnerNorApproved";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "NotRegisteredOrInGrace";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "OnlyController";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "RegistrarNotLive";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "TokenAlreadyExists";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "TokenDoesNotExist";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "TransferFromIncorrectOwner";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "TransferToNonERC721ReceiverImplementer";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "TransferToZeroAddress";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "Unauthorized";
                        readonly type: "error";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "Approval";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "isApproved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "_fromTokenId";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "_toTokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "BatchMetadataUpdate";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [];
                        readonly name: "ContractURIUpdated";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "ControllerAdded";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "ControllerRemoved";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRegistered";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "NameRegisteredWithRecord";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRenewed";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "pendingOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipHandoverCanceled";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "pendingOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipHandoverRequested";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "oldOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "Transfer";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "addController";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "approve";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "balanceOf";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "result";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "baseNode";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "cancelOwnershipHandover";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "pendingOwner";
                            readonly type: "address";
                        }];
                        readonly name: "completeOwnershipHandover";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "contractURI";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "controllers";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "isApproved";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "getApproved";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "result";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "result";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "isAvailable";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "name";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "nameExpires";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "expiry";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "result";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "ownerOf";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "pendingOwner";
                            readonly type: "address";
                        }];
                        readonly name: "ownershipHandoverExpiresAt";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "result";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "reclaim";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "register";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "registerOnly";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "registerWithRecord";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "registry";
                        readonly outputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "removeController";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "requestOwnershipHandover";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "safeTransferFrom";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "safeTransferFrom";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "isApproved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "baseURI_";
                            readonly type: "string";
                        }];
                        readonly name: "setBaseTokenURI";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "collectionURI_";
                            readonly type: "string";
                        }];
                        readonly name: "setContractURI";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "symbol";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "tokenURI";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "transferFrom";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }];
                    address: "0x03c4738Ee98aE44591e1A4A4F3CaB6641d95DD9a";
                    startBlock: number;
                };
                EARegistrarController: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract BaseRegistrar";
                            readonly name: "base_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IPriceOracle";
                            readonly name: "prices_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IReverseRegistrar";
                            readonly name: "reverseRegistrar_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "rootNode_";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "rootName_";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "paymentReceiver_";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "target";
                            readonly type: "address";
                        }];
                        readonly name: "AddressEmptyCode";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }];
                        readonly name: "AddressInsufficientBalance";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "AlreadyInitialized";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "sender";
                            readonly type: "address";
                        }];
                        readonly name: "AlreadyRegisteredWithDiscount";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "DurationTooShort";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "FailedInnerCall";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "key";
                            readonly type: "bytes32";
                        }];
                        readonly name: "InactiveDiscount";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "InsufficientValue";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "key";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "InvalidDiscount";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "key";
                            readonly type: "bytes32";
                        }];
                        readonly name: "InvalidDiscountAmount";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "InvalidPaymentReceiver";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "key";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "validator";
                            readonly type: "address";
                        }];
                        readonly name: "InvalidValidator";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "NameNotAvailable";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "NewOwnerIsZeroAddress";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "NoHandoverRequest";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "ResolverRequiredWhenDataSupplied";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "token";
                            readonly type: "address";
                        }];
                        readonly name: "SafeERC20FailedOperation";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "TransferFailed";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "Unauthorized";
                        readonly type: "error";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "registrant";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "discountKey";
                            readonly type: "bytes32";
                        }];
                        readonly name: "DiscountApplied";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "discountKey";
                            readonly type: "bytes32";
                        }, {
                            readonly components: readonly [{
                                readonly internalType: "bool";
                                readonly name: "active";
                                readonly type: "bool";
                            }, {
                                readonly internalType: "address";
                                readonly name: "discountValidator";
                                readonly type: "address";
                            }, {
                                readonly internalType: "bytes32";
                                readonly name: "key";
                                readonly type: "bytes32";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "discount";
                                readonly type: "uint256";
                            }];
                            readonly indexed: false;
                            readonly internalType: "struct EARegistrarController.DiscountDetails";
                            readonly name: "details";
                            readonly type: "tuple";
                        }];
                        readonly name: "DiscountUpdated";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "payee";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "price";
                            readonly type: "uint256";
                        }];
                        readonly name: "ETHPaymentProcessed";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRegistered";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "pendingOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipHandoverCanceled";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "pendingOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipHandoverRequested";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "oldOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "newPaymentReceiver";
                            readonly type: "address";
                        }];
                        readonly name: "PaymentReceiverUpdated";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "newPrices";
                            readonly type: "address";
                        }];
                        readonly name: "PriceOracleUpdated";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "newReverseRegistrar";
                            readonly type: "address";
                        }];
                        readonly name: "ReverseRegistrarUpdated";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MIN_NAME_LENGTH";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MIN_REGISTRATION_DURATION";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "available";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "cancelOwnershipHandover";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "pendingOwner";
                            readonly type: "address";
                        }];
                        readonly name: "completeOwnershipHandover";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly components: readonly [{
                                readonly internalType: "string";
                                readonly name: "name";
                                readonly type: "string";
                            }, {
                                readonly internalType: "address";
                                readonly name: "owner";
                                readonly type: "address";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "duration";
                                readonly type: "uint256";
                            }, {
                                readonly internalType: "address";
                                readonly name: "resolver";
                                readonly type: "address";
                            }, {
                                readonly internalType: "bytes[]";
                                readonly name: "data";
                                readonly type: "bytes[]";
                            }, {
                                readonly internalType: "bool";
                                readonly name: "reverseRecord";
                                readonly type: "bool";
                            }];
                            readonly internalType: "struct EARegistrarController.RegisterRequest";
                            readonly name: "request";
                            readonly type: "tuple";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "discountKey";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "validationData";
                            readonly type: "bytes";
                        }];
                        readonly name: "discountedRegister";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "discountKey";
                            readonly type: "bytes32";
                        }];
                        readonly name: "discountedRegisterPrice";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "price";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "registrant";
                            readonly type: "address";
                        }];
                        readonly name: "discountedRegistrants";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "hasRegisteredWithDiscount";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "key";
                            readonly type: "bytes32";
                        }];
                        readonly name: "discounts";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "active";
                            readonly type: "bool";
                        }, {
                            readonly internalType: "address";
                            readonly name: "discountValidator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "key";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "discount";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "getActiveDiscounts";
                        readonly outputs: readonly [{
                            readonly components: readonly [{
                                readonly internalType: "bool";
                                readonly name: "active";
                                readonly type: "bool";
                            }, {
                                readonly internalType: "address";
                                readonly name: "discountValidator";
                                readonly type: "address";
                            }, {
                                readonly internalType: "bytes32";
                                readonly name: "key";
                                readonly type: "bytes32";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "discount";
                                readonly type: "uint256";
                            }];
                            readonly internalType: "struct EARegistrarController.DiscountDetails[]";
                            readonly name: "";
                            readonly type: "tuple[]";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address[]";
                            readonly name: "addresses";
                            readonly type: "address[]";
                        }];
                        readonly name: "hasRegisteredWithDiscount";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "result";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "pendingOwner";
                            readonly type: "address";
                        }];
                        readonly name: "ownershipHandoverExpiresAt";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "result";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "paymentReceiver";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "prices";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IPriceOracle";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "_token";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "_to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_amount";
                            readonly type: "uint256";
                        }];
                        readonly name: "recoverFunds";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "registerPrice";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "rentPrice";
                        readonly outputs: readonly [{
                            readonly components: readonly [{
                                readonly internalType: "uint256";
                                readonly name: "base";
                                readonly type: "uint256";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "premium";
                                readonly type: "uint256";
                            }];
                            readonly internalType: "struct IPriceOracle.Price";
                            readonly name: "price";
                            readonly type: "tuple";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "requestOwnershipHandover";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "reverseRegistrar";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IReverseRegistrar";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "rootName";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "rootNode";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly components: readonly [{
                                readonly internalType: "bool";
                                readonly name: "active";
                                readonly type: "bool";
                            }, {
                                readonly internalType: "address";
                                readonly name: "discountValidator";
                                readonly type: "address";
                            }, {
                                readonly internalType: "bytes32";
                                readonly name: "key";
                                readonly type: "bytes32";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "discount";
                                readonly type: "uint256";
                            }];
                            readonly internalType: "struct EARegistrarController.DiscountDetails";
                            readonly name: "details";
                            readonly type: "tuple";
                        }];
                        readonly name: "setDiscountDetails";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "paymentReceiver_";
                            readonly type: "address";
                        }];
                        readonly name: "setPaymentReceiver";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "contract IPriceOracle";
                            readonly name: "prices_";
                            readonly type: "address";
                        }];
                        readonly name: "setPriceOracle";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "contract IReverseRegistrar";
                            readonly name: "reverse_";
                            readonly type: "address";
                        }];
                        readonly name: "setReverseRegistrar";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "valid";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "withdrawETH";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }];
                    address: "0xd3e6775ed9b7dc12b205c8e608dc3767b9e5efda";
                    startBlock: number;
                };
                RegistrarController: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract BaseRegistrar";
                            readonly name: "base_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IPriceOracle";
                            readonly name: "prices_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IReverseRegistrar";
                            readonly name: "reverseRegistrar_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "rootNode_";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "rootName_";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "paymentReceiver_";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "target";
                            readonly type: "address";
                        }];
                        readonly name: "AddressEmptyCode";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }];
                        readonly name: "AddressInsufficientBalance";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "AlreadyInitialized";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "sender";
                            readonly type: "address";
                        }];
                        readonly name: "AlreadyRegisteredWithDiscount";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "DurationTooShort";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "FailedInnerCall";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "key";
                            readonly type: "bytes32";
                        }];
                        readonly name: "InactiveDiscount";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "InsufficientValue";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "key";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "InvalidDiscount";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "key";
                            readonly type: "bytes32";
                        }];
                        readonly name: "InvalidDiscountAmount";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "InvalidPaymentReceiver";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "key";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "validator";
                            readonly type: "address";
                        }];
                        readonly name: "InvalidValidator";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "NameNotAvailable";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "NewOwnerIsZeroAddress";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "NoHandoverRequest";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "ResolverRequiredWhenDataSupplied";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "token";
                            readonly type: "address";
                        }];
                        readonly name: "SafeERC20FailedOperation";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "TransferFailed";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "Unauthorized";
                        readonly type: "error";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "registrant";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "discountKey";
                            readonly type: "bytes32";
                        }];
                        readonly name: "DiscountApplied";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "discountKey";
                            readonly type: "bytes32";
                        }, {
                            readonly components: readonly [{
                                readonly internalType: "bool";
                                readonly name: "active";
                                readonly type: "bool";
                            }, {
                                readonly internalType: "address";
                                readonly name: "discountValidator";
                                readonly type: "address";
                            }, {
                                readonly internalType: "bytes32";
                                readonly name: "key";
                                readonly type: "bytes32";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "discount";
                                readonly type: "uint256";
                            }];
                            readonly indexed: false;
                            readonly internalType: "struct RegistrarController.DiscountDetails";
                            readonly name: "details";
                            readonly type: "tuple";
                        }];
                        readonly name: "DiscountUpdated";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "payee";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "price";
                            readonly type: "uint256";
                        }];
                        readonly name: "ETHPaymentProcessed";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRegistered";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRenewed";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "pendingOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipHandoverCanceled";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "pendingOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipHandoverRequested";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "oldOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "newPaymentReceiver";
                            readonly type: "address";
                        }];
                        readonly name: "PaymentReceiverUpdated";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "newPrices";
                            readonly type: "address";
                        }];
                        readonly name: "PriceOracleUpdated";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "newReverseRegistrar";
                            readonly type: "address";
                        }];
                        readonly name: "ReverseRegistrarUpdated";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MIN_NAME_LENGTH";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MIN_REGISTRATION_DURATION";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "available";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "cancelOwnershipHandover";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "pendingOwner";
                            readonly type: "address";
                        }];
                        readonly name: "completeOwnershipHandover";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly components: readonly [{
                                readonly internalType: "string";
                                readonly name: "name";
                                readonly type: "string";
                            }, {
                                readonly internalType: "address";
                                readonly name: "owner";
                                readonly type: "address";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "duration";
                                readonly type: "uint256";
                            }, {
                                readonly internalType: "address";
                                readonly name: "resolver";
                                readonly type: "address";
                            }, {
                                readonly internalType: "bytes[]";
                                readonly name: "data";
                                readonly type: "bytes[]";
                            }, {
                                readonly internalType: "bool";
                                readonly name: "reverseRecord";
                                readonly type: "bool";
                            }];
                            readonly internalType: "struct RegistrarController.RegisterRequest";
                            readonly name: "request";
                            readonly type: "tuple";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "discountKey";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "validationData";
                            readonly type: "bytes";
                        }];
                        readonly name: "discountedRegister";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "discountKey";
                            readonly type: "bytes32";
                        }];
                        readonly name: "discountedRegisterPrice";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "price";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "registrant";
                            readonly type: "address";
                        }];
                        readonly name: "discountedRegistrants";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "hasRegisteredWithDiscount";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "key";
                            readonly type: "bytes32";
                        }];
                        readonly name: "discounts";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "active";
                            readonly type: "bool";
                        }, {
                            readonly internalType: "address";
                            readonly name: "discountValidator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "key";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "discount";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "getActiveDiscounts";
                        readonly outputs: readonly [{
                            readonly components: readonly [{
                                readonly internalType: "bool";
                                readonly name: "active";
                                readonly type: "bool";
                            }, {
                                readonly internalType: "address";
                                readonly name: "discountValidator";
                                readonly type: "address";
                            }, {
                                readonly internalType: "bytes32";
                                readonly name: "key";
                                readonly type: "bytes32";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "discount";
                                readonly type: "uint256";
                            }];
                            readonly internalType: "struct RegistrarController.DiscountDetails[]";
                            readonly name: "";
                            readonly type: "tuple[]";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address[]";
                            readonly name: "addresses";
                            readonly type: "address[]";
                        }];
                        readonly name: "hasRegisteredWithDiscount";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "launchTime";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "result";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "pendingOwner";
                            readonly type: "address";
                        }];
                        readonly name: "ownershipHandoverExpiresAt";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "result";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "paymentReceiver";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "prices";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IPriceOracle";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "_token";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "_to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_amount";
                            readonly type: "uint256";
                        }];
                        readonly name: "recoverFunds";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly components: readonly [{
                                readonly internalType: "string";
                                readonly name: "name";
                                readonly type: "string";
                            }, {
                                readonly internalType: "address";
                                readonly name: "owner";
                                readonly type: "address";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "duration";
                                readonly type: "uint256";
                            }, {
                                readonly internalType: "address";
                                readonly name: "resolver";
                                readonly type: "address";
                            }, {
                                readonly internalType: "bytes[]";
                                readonly name: "data";
                                readonly type: "bytes[]";
                            }, {
                                readonly internalType: "bool";
                                readonly name: "reverseRecord";
                                readonly type: "bool";
                            }];
                            readonly internalType: "struct RegistrarController.RegisterRequest";
                            readonly name: "request";
                            readonly type: "tuple";
                        }];
                        readonly name: "register";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "registerPrice";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "rentPrice";
                        readonly outputs: readonly [{
                            readonly components: readonly [{
                                readonly internalType: "uint256";
                                readonly name: "base";
                                readonly type: "uint256";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "premium";
                                readonly type: "uint256";
                            }];
                            readonly internalType: "struct IPriceOracle.Price";
                            readonly name: "price";
                            readonly type: "tuple";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "requestOwnershipHandover";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "reverseRegistrar";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IReverseRegistrar";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "rootName";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "rootNode";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly components: readonly [{
                                readonly internalType: "bool";
                                readonly name: "active";
                                readonly type: "bool";
                            }, {
                                readonly internalType: "address";
                                readonly name: "discountValidator";
                                readonly type: "address";
                            }, {
                                readonly internalType: "bytes32";
                                readonly name: "key";
                                readonly type: "bytes32";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "discount";
                                readonly type: "uint256";
                            }];
                            readonly internalType: "struct RegistrarController.DiscountDetails";
                            readonly name: "details";
                            readonly type: "tuple";
                        }];
                        readonly name: "setDiscountDetails";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "launchTime_";
                            readonly type: "uint256";
                        }];
                        readonly name: "setLaunchTime";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "paymentReceiver_";
                            readonly type: "address";
                        }];
                        readonly name: "setPaymentReceiver";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "contract IPriceOracle";
                            readonly name: "prices_";
                            readonly type: "address";
                        }];
                        readonly name: "setPriceOracle";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "contract IReverseRegistrar";
                            readonly name: "reverse_";
                            readonly type: "address";
                        }];
                        readonly name: "setReverseRegistrar";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "valid";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "withdrawETH";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }];
                    address: "0x4cCb0BB02FCABA27e82a56646E81d8c5bC4119a5";
                    startBlock: number;
                };
            };
        };
        lineanames: {
            chain: {
                blockExplorers: {
                    readonly default: {
                        readonly name: "Etherscan";
                        readonly url: "https://lineascan.build";
                        readonly apiUrl: "https://api.lineascan.build/api";
                    };
                };
                contracts: {
                    readonly multicall3: {
                        readonly address: "0xcA11bde05977b3631167028862bE2a173976CA11";
                        readonly blockCreated: 42;
                    };
                };
                id: 59144;
                name: "Linea Mainnet";
                nativeCurrency: {
                    readonly name: "Linea Ether";
                    readonly symbol: "ETH";
                    readonly decimals: 18;
                };
                rpcUrls: {
                    readonly default: {
                        readonly http: readonly ["https://rpc.linea.build"];
                        readonly webSocket: readonly ["wss://rpc.linea.build"];
                    };
                };
                sourceId?: number | undefined;
                testnet: false;
                custom?: Record<string, unknown> | undefined;
                fees: {
                    readonly estimateFeesPerGas: ({ client, multiply, request, type, }: Parameters<viem.ChainEstimateFeesPerGasFn>[0]) => ReturnType<viem.ChainEstimateFeesPerGasFn>;
                    readonly maxPriorityFeePerGas: ({ block, client, request }: viem.ChainFeesFnParameters<viem.ChainFormatters | undefined>) => Promise<bigint | null>;
                };
                formatters?: undefined;
                serializers?: viem.ChainSerializers<undefined, viem.TransactionSerializable> | undefined;
            };
            contracts: {
                Registry: {
                    abi: readonly [{
                        readonly inputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "NewOwner";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "NewResolver";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "NewTTL";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "Transfer";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "recordExists";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "resolver";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "setOwner";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setRecord";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "setSubnodeOwner";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setSubnodeRecord";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setTTL";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "ttl";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }];
                    address: "0x50130b669B28C339991d8676FA73CF122a121267";
                    startBlock: number;
                };
                Resolver: {
                    startBlock: number;
                    abi: readonly [{
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "contentType";
                            readonly type: "uint256";
                        }];
                        readonly name: "ABIChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "a";
                            readonly type: "address";
                        }];
                        readonly name: "AddrChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "newAddress";
                            readonly type: "bytes";
                        }];
                        readonly name: "AddressChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "target";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "isAuthorised";
                            readonly type: "bool";
                        }];
                        readonly name: "AuthorisationChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "ContenthashChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "record";
                            readonly type: "bytes";
                        }];
                        readonly name: "DNSRecordChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }];
                        readonly name: "DNSRecordDeleted";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "DNSZoneCleared";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "implementer";
                            readonly type: "address";
                        }];
                        readonly name: "InterfaceChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "NameChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly name: "PubkeyChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "string";
                            readonly name: "indexedKey";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }];
                        readonly name: "TextChanged";
                        readonly type: "event";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "contentTypes";
                            readonly type: "uint256";
                        }];
                        readonly name: "ABI";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "addr";
                        readonly outputs: readonly [{
                            readonly internalType: "address payable";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }];
                        readonly name: "addr";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly name: "authorisations";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "clearDNSZone";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "contenthash";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "name";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }];
                        readonly name: "dnsRecord";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "name";
                            readonly type: "bytes32";
                        }];
                        readonly name: "hasDNSRecords";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "interfaceImplementer";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }];
                        readonly name: "multicall";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "results";
                            readonly type: "bytes[]";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "name";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "pubkey";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "contentType";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "setABI";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "a";
                            readonly type: "bytes";
                        }];
                        readonly name: "setAddr";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "a";
                            readonly type: "address";
                        }];
                        readonly name: "setAddr";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "target";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "isAuthorised";
                            readonly type: "bool";
                        }];
                        readonly name: "setAuthorisation";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "setContenthash";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "setDNSRecords";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }, {
                            readonly internalType: "address";
                            readonly name: "implementer";
                            readonly type: "address";
                        }];
                        readonly name: "setInterface";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "setName";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly name: "setPubkey";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }, {
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }];
                        readonly name: "setText";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }];
                        readonly name: "text";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "Approved";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "lastzonehash";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "zonehash";
                            readonly type: "bytes";
                        }];
                        readonly name: "DNSZonehashChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "string";
                            readonly name: "indexedKey";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }];
                        readonly name: "TextChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "newVersion";
                            readonly type: "uint64";
                        }];
                        readonly name: "VersionChanged";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "approve";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "clearRecords";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedFor";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "nodehash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }];
                        readonly name: "multicallWithNodeCheck";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "results";
                            readonly type: "bytes[]";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "recordVersions";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "newName";
                            readonly type: "string";
                        }];
                        readonly name: "setName";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "setZonehash";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "zonehash";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly type: "event";
                        readonly name: "DNSRecordChanged";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "name";
                            readonly type: "bytes";
                            readonly indexed: false;
                            readonly internalType: "bytes";
                        }, {
                            readonly name: "resource";
                            readonly type: "uint16";
                            readonly indexed: false;
                            readonly internalType: "uint16";
                        }, {
                            readonly name: "ttl";
                            readonly type: "uint32";
                            readonly indexed: false;
                            readonly internalType: "uint32";
                        }, {
                            readonly name: "record";
                            readonly type: "bytes";
                            readonly indexed: false;
                            readonly internalType: "bytes";
                        }];
                        readonly anonymous: false;
                    }, {
                        readonly type: "event";
                        readonly name: "DNSZoneUpdated";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "serial";
                            readonly type: "uint32";
                            readonly indexed: false;
                            readonly internalType: "uint32";
                        }];
                        readonly anonymous: false;
                    }, {
                        readonly type: "event";
                        readonly name: "ZoneCreated";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "version";
                            readonly type: "uint64";
                            readonly indexed: true;
                            readonly internalType: "uint64";
                        }];
                        readonly anonymous: false;
                    }];
                    filter: [{
                        readonly event: "AddrChanged";
                        readonly args: {};
                    }, {
                        readonly event: "AddressChanged";
                        readonly args: {};
                    }, {
                        readonly event: "NameChanged";
                        readonly args: {};
                    }, {
                        readonly event: "ABIChanged";
                        readonly args: {};
                    }, {
                        readonly event: "PubkeyChanged";
                        readonly args: {};
                    }, {
                        readonly event: "TextChanged(bytes32 indexed node, string indexed indexedKey, string key)";
                        readonly args: {};
                    }, {
                        readonly event: "TextChanged(bytes32 indexed node, string indexed indexedKey, string key, string value)";
                        readonly args: {};
                    }, {
                        readonly event: "ContenthashChanged";
                        readonly args: {};
                    }, {
                        readonly event: "InterfaceChanged";
                        readonly args: {};
                    }, {
                        readonly event: "AuthorisationChanged";
                        readonly args: {};
                    }, {
                        readonly event: "VersionChanged";
                        readonly args: {};
                    }, {
                        readonly event: "DNSRecordChanged";
                        readonly args: {};
                    }, {
                        readonly event: "DNSRecordDeleted";
                        readonly args: {};
                    }, {
                        readonly event: "DNSZonehashChanged";
                        readonly args: {};
                    }];
                };
                BaseRegistrar: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "_ens";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "_baseNode";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "approved";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "Approval";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "ControllerAdded";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "ControllerRemoved";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameMigrated";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRegistered";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRenewed";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "previousOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "Transfer";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "GRACE_PERIOD";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "addController";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "approve";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "available";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "balanceOf";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "baseNode";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly name: "controllers";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "ens";
                        readonly outputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "getApproved";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "name";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "nameExpires";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "ownerOf";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "reclaim";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "register";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "registerOnly";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "removeController";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "safeTransferFrom";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "safeTransferFrom";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "symbol";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "tokenURI";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "transferFrom";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }];
                    address: "0x6e84390dCc5195414eC91A8c56A5c91021B95704";
                    startBlock: number;
                };
                EthRegistrarController: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract BaseRegistrarImplementation";
                            readonly name: "_base";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IPriceOracle";
                            readonly name: "_prices";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_minCommitmentAge";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_maxCommitmentAge";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "contract ReverseRegistrar";
                            readonly name: "_reverseRegistrar";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract INameWrapper";
                            readonly name: "_nameWrapper";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract ENS";
                            readonly name: "_ens";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract PohVerifier";
                            readonly name: "_pohVerifier";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract PohRegistrationManager";
                            readonly name: "_pohRegistrationManager";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "_baseNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "_baseDomain";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "BaseNodeAsETHNodeOrROOTNodeNotAllowed";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "CommitmentTooNew";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "CommitmentTooOld";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "DifferentBaseDomainBaseNode";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "DurationTooShort";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "EmptyStringNotAllowed";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "InsufficientValue";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MaxCommitmentAgeTooHigh";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MaxCommitmentAgeTooLow";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "NameNotAvailable";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnerAlreadyRegistered";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "PohVerificationFailed";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "currentTime";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "renewTimeStart";
                            readonly type: "uint256";
                        }];
                        readonly name: "RenewPOHNotStarted";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "ResolverRequiredWhenDataSupplied";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "sender";
                            readonly type: "address";
                        }];
                        readonly name: "SenderNotOwner";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "UnexpiredCommitmentExists";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "WrongPohRegistrationDuration";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "ZeroAddressNotAllowed";
                        readonly type: "error";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "baseCost";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "premium";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRegistered";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "cost";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRenewed";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRenewedPoh";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "OwnerNameRegistered";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "previousOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "PohNameRegistered";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "GRACE_PERIOD";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MIN_REGISTRATION_DURATION";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "POH_REGISTRATION_DURATION";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "available";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "baseDomain";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "baseNode";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "commit";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "commitments";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "secret";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "reverseRecord";
                            readonly type: "bool";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }];
                        readonly name: "makeCommitment";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "maxCommitmentAge";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "minCommitmentAge";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "nameWrapper";
                        readonly outputs: readonly [{
                            readonly internalType: "contract INameWrapper";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "reverseRecord";
                            readonly type: "bool";
                        }];
                        readonly name: "ownerRegister";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "pohRegistrationManager";
                        readonly outputs: readonly [{
                            readonly internalType: "contract PohRegistrationManager";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "pohVerifier";
                        readonly outputs: readonly [{
                            readonly internalType: "contract PohVerifier";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "prices";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IPriceOracle";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "_token";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "_to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_amount";
                            readonly type: "uint256";
                        }];
                        readonly name: "recoverFunds";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "_address";
                            readonly type: "address";
                        }];
                        readonly name: "redeemed";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "secret";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "reverseRecord";
                            readonly type: "bool";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }];
                        readonly name: "register";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "secret";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "reverseRecord";
                            readonly type: "bool";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "signature";
                            readonly type: "bytes";
                        }];
                        readonly name: "registerPoh";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "signature";
                            readonly type: "bytes";
                        }];
                        readonly name: "renewPoh";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "rentPrice";
                        readonly outputs: readonly [{
                            readonly components: readonly [{
                                readonly internalType: "uint256";
                                readonly name: "base";
                                readonly type: "uint256";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "premium";
                                readonly type: "uint256";
                            }];
                            readonly internalType: "struct IPriceOracle.Price";
                            readonly name: "price";
                            readonly type: "tuple";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "reverseRegistrar";
                        readonly outputs: readonly [{
                            readonly internalType: "contract ReverseRegistrar";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "valid";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "withdraw";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }];
                    address: "0xDb75Db974B1F2bD3b5916d503036208064D18295";
                    startBlock: number;
                };
                NameWrapper: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "_ens";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IBaseRegistrar";
                            readonly name: "_registrar";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IMetadataService";
                            readonly name: "_metadataService";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "_baseNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "_baseNodeDnsEncoded";
                            readonly type: "bytes";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "BaseNodeAsETHNodeOrROOTNodeNotAllowed";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "CannotUpgrade";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "DifferentBaseNodeBaseNodeDnsEncoded";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "EmptyDataNotAllowed";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "IncompatibleParent";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "IncorrectTargetOwner";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "IncorrectTokenType";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "labelHash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "expectedLabelhash";
                            readonly type: "bytes32";
                        }];
                        readonly name: "LabelMismatch";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }];
                        readonly name: "LabelTooLong";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "LabelTooShort";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "NameIsNotWrapped";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "OperationProhibited";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "addr";
                            readonly type: "address";
                        }];
                        readonly name: "Unauthorised";
                        readonly type: "error";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "approved";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "Approval";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "active";
                            readonly type: "bool";
                        }];
                        readonly name: "ControllerChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "ExpiryExtended";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }];
                        readonly name: "FusesSet";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "NameUnwrapped";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "NameWrapped";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "previousOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256[]";
                            readonly name: "ids";
                            readonly type: "uint256[]";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256[]";
                            readonly name: "values";
                            readonly type: "uint256[]";
                        }];
                        readonly name: "TransferBatch";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "value";
                            readonly type: "uint256";
                        }];
                        readonly name: "TransferSingle";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "URI";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly name: "_tokens";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuseMask";
                            readonly type: "uint32";
                        }];
                        readonly name: "allFusesBurned";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "approve";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "balanceOf";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address[]";
                            readonly name: "accounts";
                            readonly type: "address[]";
                        }, {
                            readonly internalType: "uint256[]";
                            readonly name: "ids";
                            readonly type: "uint256[]";
                        }];
                        readonly name: "balanceOfBatch";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256[]";
                            readonly name: "";
                            readonly type: "uint256[]";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "baseNode";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "addr";
                            readonly type: "address";
                        }];
                        readonly name: "canExtendSubnames";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "addr";
                            readonly type: "address";
                        }];
                        readonly name: "canModifyName";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly name: "controllers";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "ens";
                        readonly outputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "extendExpiry";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "getApproved";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "getData";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }];
                        readonly name: "isWrapped";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "isWrapped";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "metadataService";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IMetadataService";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "name";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "names";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "onERC721Received";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "";
                            readonly type: "bytes4";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "ownerOf";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "_token";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "_to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_amount";
                            readonly type: "uint256";
                        }];
                        readonly name: "recoverFunds";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }];
                        readonly name: "registerAndWrap";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "registrarExpiry";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "registrar";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IBaseRegistrar";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256[]";
                            readonly name: "ids";
                            readonly type: "uint256[]";
                        }, {
                            readonly internalType: "uint256[]";
                            readonly name: "amounts";
                            readonly type: "uint256[]";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "safeBatchTransferFrom";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "amount";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "safeTransferFrom";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "setChildFuses";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "active";
                            readonly type: "bool";
                        }];
                        readonly name: "setController";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }];
                        readonly name: "setFuses";
                        readonly outputs: readonly [{
                            readonly internalType: "uint32";
                            readonly name: "";
                            readonly type: "uint32";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "contract IMetadataService";
                            readonly name: "_metadataService";
                            readonly type: "address";
                        }];
                        readonly name: "setMetadataService";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setRecord";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "setSubnodeOwner";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "setSubnodeRecord";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setTTL";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "contract INameWrapperUpgrade";
                            readonly name: "_upgradeAddress";
                            readonly type: "address";
                        }];
                        readonly name: "setUpgradeContract";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceId";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "unwrap";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "registrant";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "unwrapAnyLD";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "extraData";
                            readonly type: "bytes";
                        }];
                        readonly name: "upgrade";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "upgradeContract";
                        readonly outputs: readonly [{
                            readonly internalType: "contract INameWrapperUpgrade";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "uri";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "wrap";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "wrapAnyLD";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }];
                    address: "0xA53cca02F98D590819141Aa85C891e2Af713C223";
                    startBlock: number;
                };
            };
        };
        "threedns-optimism": {
            chain: {
                blockExplorers: {
                    readonly default: {
                        readonly name: "Optimism Explorer";
                        readonly url: "https://optimistic.etherscan.io";
                        readonly apiUrl: "https://api-optimistic.etherscan.io/api";
                    };
                };
                contracts: {
                    readonly disputeGameFactory: {
                        readonly 1: {
                            readonly address: "0xe5965Ab5962eDc7477C8520243A95517CD252fA9";
                        };
                    };
                    readonly l2OutputOracle: {
                        readonly 1: {
                            readonly address: "0xdfe97868233d1aa22e815a266982f2cf17685a27";
                        };
                    };
                    readonly multicall3: {
                        readonly address: "0xca11bde05977b3631167028862be2a173976ca11";
                        readonly blockCreated: 4286263;
                    };
                    readonly portal: {
                        readonly 1: {
                            readonly address: "0xbEb5Fc579115071764c7423A4f12eDde41f106Ed";
                        };
                    };
                    readonly l1StandardBridge: {
                        readonly 1: {
                            readonly address: "0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1";
                        };
                    };
                    readonly gasPriceOracle: {
                        readonly address: "0x420000000000000000000000000000000000000F";
                    };
                    readonly l1Block: {
                        readonly address: "0x4200000000000000000000000000000000000015";
                    };
                    readonly l2CrossDomainMessenger: {
                        readonly address: "0x4200000000000000000000000000000000000007";
                    };
                    readonly l2Erc721Bridge: {
                        readonly address: "0x4200000000000000000000000000000000000014";
                    };
                    readonly l2StandardBridge: {
                        readonly address: "0x4200000000000000000000000000000000000010";
                    };
                    readonly l2ToL1MessagePasser: {
                        readonly address: "0x4200000000000000000000000000000000000016";
                    };
                };
                id: 10;
                name: "OP Mainnet";
                nativeCurrency: {
                    readonly name: "Ether";
                    readonly symbol: "ETH";
                    readonly decimals: 18;
                };
                rpcUrls: {
                    readonly default: {
                        readonly http: readonly ["https://mainnet.optimism.io"];
                    };
                };
                sourceId: 1;
                testnet?: boolean | undefined;
                custom?: Record<string, unknown> | undefined;
                fees?: viem.ChainFees<undefined> | undefined;
                formatters: {
                    readonly block: {
                        exclude: [] | undefined;
                        format: (args: viem_chains.OpStackRpcBlock) => {
                            baseFeePerGas: bigint | null;
                            blobGasUsed: bigint;
                            difficulty: bigint;
                            excessBlobGas: bigint;
                            extraData: viem.Hex;
                            gasLimit: bigint;
                            gasUsed: bigint;
                            hash: `0x${string}` | null;
                            logsBloom: `0x${string}` | null;
                            miner: viem.Address;
                            mixHash: viem.Hash;
                            nonce: `0x${string}` | null;
                            number: bigint | null;
                            parentBeaconBlockRoot?: viem.Hex | undefined;
                            parentHash: viem.Hash;
                            receiptsRoot: viem.Hex;
                            sealFields: viem.Hex[];
                            sha3Uncles: viem.Hash;
                            size: bigint;
                            stateRoot: viem.Hash;
                            timestamp: bigint;
                            totalDifficulty: bigint | null;
                            transactions: `0x${string}`[] | viem_chains.OpStackTransaction<boolean>[];
                            transactionsRoot: viem.Hash;
                            uncles: viem.Hash[];
                            withdrawals?: viem.Withdrawal[] | undefined;
                            withdrawalsRoot?: viem.Hex | undefined;
                        } & {};
                        type: "block";
                    };
                    readonly transaction: {
                        exclude: [] | undefined;
                        format: (args: viem_chains.OpStackRpcTransaction) => ({
                            blockHash: `0x${string}` | null;
                            blockNumber: bigint | null;
                            from: viem.Address;
                            gas: bigint;
                            hash: viem.Hash;
                            input: viem.Hex;
                            nonce: number;
                            r: viem.Hex;
                            s: viem.Hex;
                            to: viem.Address | null;
                            transactionIndex: number | null;
                            typeHex: viem.Hex | null;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                            gasPrice?: undefined;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas: bigint;
                            maxPriorityFeePerGas: bigint;
                            isSystemTx?: boolean;
                            mint?: bigint | undefined;
                            sourceHash: viem.Hex;
                            type: "deposit";
                        } | {
                            r: viem.Hex;
                            s: viem.Hex;
                            v: bigint;
                            to: viem.Address | null;
                            from: viem.Address;
                            gas: bigint;
                            nonce: number;
                            value: bigint;
                            blockHash: `0x${string}` | null;
                            blockNumber: bigint | null;
                            hash: viem.Hash;
                            input: viem.Hex;
                            transactionIndex: number | null;
                            typeHex: viem.Hex | null;
                            accessList?: undefined;
                            authorizationList?: undefined;
                            blobVersionedHashes?: undefined;
                            chainId?: number | undefined;
                            yParity?: undefined;
                            type: "legacy";
                            gasPrice: bigint;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas?: undefined;
                            maxPriorityFeePerGas?: undefined;
                            isSystemTx?: undefined;
                            mint?: undefined;
                            sourceHash?: undefined;
                        } | {
                            blockHash: `0x${string}` | null;
                            blockNumber: bigint | null;
                            from: viem.Address;
                            gas: bigint;
                            hash: viem.Hash;
                            input: viem.Hex;
                            nonce: number;
                            r: viem.Hex;
                            s: viem.Hex;
                            to: viem.Address | null;
                            transactionIndex: number | null;
                            typeHex: viem.Hex | null;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                            accessList: viem.AccessList;
                            authorizationList?: undefined;
                            blobVersionedHashes?: undefined;
                            chainId: number;
                            type: "eip2930";
                            gasPrice: bigint;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas?: undefined;
                            maxPriorityFeePerGas?: undefined;
                            isSystemTx?: undefined;
                            mint?: undefined;
                            sourceHash?: undefined;
                        } | {
                            blockHash: `0x${string}` | null;
                            blockNumber: bigint | null;
                            from: viem.Address;
                            gas: bigint;
                            hash: viem.Hash;
                            input: viem.Hex;
                            nonce: number;
                            r: viem.Hex;
                            s: viem.Hex;
                            to: viem.Address | null;
                            transactionIndex: number | null;
                            typeHex: viem.Hex | null;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                            accessList: viem.AccessList;
                            authorizationList?: undefined;
                            blobVersionedHashes?: undefined;
                            chainId: number;
                            type: "eip1559";
                            gasPrice?: undefined;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas: bigint;
                            maxPriorityFeePerGas: bigint;
                            isSystemTx?: undefined;
                            mint?: undefined;
                            sourceHash?: undefined;
                        } | {
                            blockHash: `0x${string}` | null;
                            blockNumber: bigint | null;
                            from: viem.Address;
                            gas: bigint;
                            hash: viem.Hash;
                            input: viem.Hex;
                            nonce: number;
                            r: viem.Hex;
                            s: viem.Hex;
                            to: viem.Address | null;
                            transactionIndex: number | null;
                            typeHex: viem.Hex | null;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                            accessList: viem.AccessList;
                            authorizationList?: undefined;
                            blobVersionedHashes: readonly viem.Hex[];
                            chainId: number;
                            type: "eip4844";
                            gasPrice?: undefined;
                            maxFeePerBlobGas: bigint;
                            maxFeePerGas: bigint;
                            maxPriorityFeePerGas: bigint;
                            isSystemTx?: undefined;
                            mint?: undefined;
                            sourceHash?: undefined;
                        } | {
                            blockHash: `0x${string}` | null;
                            blockNumber: bigint | null;
                            from: viem.Address;
                            gas: bigint;
                            hash: viem.Hash;
                            input: viem.Hex;
                            nonce: number;
                            r: viem.Hex;
                            s: viem.Hex;
                            to: viem.Address | null;
                            transactionIndex: number | null;
                            typeHex: viem.Hex | null;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                            accessList: viem.AccessList;
                            authorizationList: viem_experimental.SignedAuthorizationList;
                            blobVersionedHashes?: undefined;
                            chainId: number;
                            type: "eip7702";
                            gasPrice?: undefined;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas: bigint;
                            maxPriorityFeePerGas: bigint;
                            isSystemTx?: undefined;
                            mint?: undefined;
                            sourceHash?: undefined;
                        }) & {};
                        type: "transaction";
                    };
                    readonly transactionReceipt: {
                        exclude: [] | undefined;
                        format: (args: viem_chains.OpStackRpcTransactionReceipt) => {
                            blobGasPrice?: bigint | undefined;
                            blobGasUsed?: bigint | undefined;
                            blockHash: viem.Hash;
                            blockNumber: bigint;
                            contractAddress: viem.Address | null | undefined;
                            cumulativeGasUsed: bigint;
                            effectiveGasPrice: bigint;
                            from: viem.Address;
                            gasUsed: bigint;
                            logs: viem.Log<bigint, number, false>[];
                            logsBloom: viem.Hex;
                            root?: viem.Hash | undefined;
                            status: "success" | "reverted";
                            to: viem.Address | null;
                            transactionHash: viem.Hash;
                            transactionIndex: number;
                            type: viem.TransactionType;
                            l1GasPrice: bigint | null;
                            l1GasUsed: bigint | null;
                            l1Fee: bigint | null;
                            l1FeeScalar: number | null;
                        } & {};
                        type: "transactionReceipt";
                    };
                };
                serializers: {
                    readonly transaction: typeof viem_chains.serializeTransactionOpStack;
                };
            };
            contracts: {
                ThreeDNSToken: {
                    abi: readonly [{
                        readonly type: "event";
                        readonly name: "NewOwner";
                        readonly inputs: readonly [{
                            readonly type: "bytes32";
                            readonly name: "node";
                            readonly indexed: true;
                        }, {
                            readonly type: "bytes32";
                            readonly name: "label";
                            readonly indexed: true;
                        }, {
                            readonly type: "address";
                            readonly name: "owner";
                            readonly indexed: false;
                        }];
                    }, {
                        readonly type: "event";
                        readonly name: "RegistrationCreated";
                        readonly inputs: readonly [{
                            readonly type: "bytes32";
                            readonly name: "node";
                            readonly indexed: true;
                        }, {
                            readonly type: "bytes32";
                            readonly name: "tld";
                            readonly indexed: true;
                        }, {
                            readonly type: "bytes";
                            readonly name: "fqdn";
                            readonly indexed: false;
                        }, {
                            readonly type: "address";
                            readonly name: "registrant";
                            readonly indexed: false;
                        }, {
                            readonly type: "uint32";
                            readonly name: "controlBitmap";
                            readonly indexed: false;
                        }, {
                            readonly type: "uint64";
                            readonly name: "expiry";
                            readonly indexed: false;
                        }];
                    }, {
                        readonly type: "event";
                        readonly name: "RegistrationExtended";
                        readonly inputs: readonly [{
                            readonly type: "bytes32";
                            readonly name: "node";
                            readonly indexed: true;
                        }, {
                            readonly type: "uint64";
                            readonly name: "duration";
                            readonly indexed: true;
                        }, {
                            readonly type: "uint64";
                            readonly name: "newExpiry";
                            readonly indexed: true;
                        }];
                    }, {
                        readonly type: "event";
                        readonly name: "RegistrationTransferred";
                        readonly inputs: readonly [{
                            readonly type: "bytes32";
                            readonly name: "node";
                            readonly indexed: true;
                        }, {
                            readonly type: "address";
                            readonly name: "newOwner";
                            readonly indexed: true;
                        }, {
                            readonly type: "address";
                            readonly name: "operator";
                            readonly indexed: true;
                        }];
                    }, {
                        readonly type: "event";
                        readonly name: "RegistrationBurned";
                        readonly inputs: readonly [{
                            readonly type: "bytes32";
                            readonly name: "node";
                            readonly indexed: true;
                        }, {
                            readonly type: "address";
                            readonly name: "burner";
                            readonly indexed: true;
                        }];
                    }, {
                        readonly type: "function";
                        readonly name: "uri";
                        readonly inputs: readonly [{
                            readonly type: "uint256";
                            readonly name: "tokenId_";
                        }];
                        readonly outputs: readonly [{
                            readonly type: "string";
                            readonly name: "";
                        }];
                        readonly stateMutability: "view";
                    }, {
                        readonly type: "function";
                        readonly name: "resolver";
                        readonly inputs: readonly [{
                            readonly type: "bytes32";
                            readonly name: "node";
                        }];
                        readonly outputs: readonly [{
                            readonly type: "address";
                            readonly name: "";
                        }];
                        readonly stateMutability: "view";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "Transfer";
                        readonly type: "event";
                    }];
                    address: "0xBB7B805B257d7C76CA9435B3ffe780355E4C4B17";
                    startBlock: number;
                };
                Resolver: {
                    abi: readonly [{
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "contentType";
                            readonly type: "uint256";
                        }];
                        readonly name: "ABIChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "a";
                            readonly type: "address";
                        }];
                        readonly name: "AddrChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "newAddress";
                            readonly type: "bytes";
                        }];
                        readonly name: "AddressChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "target";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "isAuthorised";
                            readonly type: "bool";
                        }];
                        readonly name: "AuthorisationChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "ContenthashChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "record";
                            readonly type: "bytes";
                        }];
                        readonly name: "DNSRecordChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }];
                        readonly name: "DNSRecordDeleted";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "DNSZoneCleared";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "implementer";
                            readonly type: "address";
                        }];
                        readonly name: "InterfaceChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "NameChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly name: "PubkeyChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "string";
                            readonly name: "indexedKey";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }];
                        readonly name: "TextChanged";
                        readonly type: "event";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "contentTypes";
                            readonly type: "uint256";
                        }];
                        readonly name: "ABI";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "addr";
                        readonly outputs: readonly [{
                            readonly internalType: "address payable";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }];
                        readonly name: "addr";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly name: "authorisations";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "clearDNSZone";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "contenthash";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "name";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }];
                        readonly name: "dnsRecord";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "name";
                            readonly type: "bytes32";
                        }];
                        readonly name: "hasDNSRecords";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "interfaceImplementer";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }];
                        readonly name: "multicall";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "results";
                            readonly type: "bytes[]";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "name";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "pubkey";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "contentType";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "setABI";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "a";
                            readonly type: "bytes";
                        }];
                        readonly name: "setAddr";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "a";
                            readonly type: "address";
                        }];
                        readonly name: "setAddr";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "target";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "isAuthorised";
                            readonly type: "bool";
                        }];
                        readonly name: "setAuthorisation";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "setContenthash";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "setDNSRecords";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }, {
                            readonly internalType: "address";
                            readonly name: "implementer";
                            readonly type: "address";
                        }];
                        readonly name: "setInterface";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "setName";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly name: "setPubkey";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }, {
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }];
                        readonly name: "setText";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }];
                        readonly name: "text";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "Approved";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "lastzonehash";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "zonehash";
                            readonly type: "bytes";
                        }];
                        readonly name: "DNSZonehashChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "string";
                            readonly name: "indexedKey";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }];
                        readonly name: "TextChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "newVersion";
                            readonly type: "uint64";
                        }];
                        readonly name: "VersionChanged";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "approve";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "clearRecords";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedFor";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "nodehash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }];
                        readonly name: "multicallWithNodeCheck";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "results";
                            readonly type: "bytes[]";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "recordVersions";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "newName";
                            readonly type: "string";
                        }];
                        readonly name: "setName";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "setZonehash";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "zonehash";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly type: "event";
                        readonly name: "DNSRecordChanged";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "name";
                            readonly type: "bytes";
                            readonly indexed: false;
                            readonly internalType: "bytes";
                        }, {
                            readonly name: "resource";
                            readonly type: "uint16";
                            readonly indexed: false;
                            readonly internalType: "uint16";
                        }, {
                            readonly name: "ttl";
                            readonly type: "uint32";
                            readonly indexed: false;
                            readonly internalType: "uint32";
                        }, {
                            readonly name: "record";
                            readonly type: "bytes";
                            readonly indexed: false;
                            readonly internalType: "bytes";
                        }];
                        readonly anonymous: false;
                    }, {
                        readonly type: "event";
                        readonly name: "DNSZoneUpdated";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "serial";
                            readonly type: "uint32";
                            readonly indexed: false;
                            readonly internalType: "uint32";
                        }];
                        readonly anonymous: false;
                    }, {
                        readonly type: "event";
                        readonly name: "ZoneCreated";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "version";
                            readonly type: "uint64";
                            readonly indexed: true;
                            readonly internalType: "uint64";
                        }];
                        readonly anonymous: false;
                    }];
                    address: "0xF97aAc6C8dbaEBCB54ff166d79706E3AF7a813c8";
                    startBlock: number;
                };
            };
        };
        "threedns-base": {
            chain: {
                blockExplorers: {
                    readonly default: {
                        readonly name: "Basescan";
                        readonly url: "https://basescan.org";
                        readonly apiUrl: "https://api.basescan.org/api";
                    };
                };
                contracts: {
                    readonly disputeGameFactory: {
                        readonly 1: {
                            readonly address: "0x43edB88C4B80fDD2AdFF2412A7BebF9dF42cB40e";
                        };
                    };
                    readonly l2OutputOracle: {
                        readonly 1: {
                            readonly address: "0x56315b90c40730925ec5485cf004d835058518A0";
                        };
                    };
                    readonly multicall3: {
                        readonly address: "0xca11bde05977b3631167028862be2a173976ca11";
                        readonly blockCreated: 5022;
                    };
                    readonly portal: {
                        readonly 1: {
                            readonly address: "0x49048044D57e1C92A77f79988d21Fa8fAF74E97e";
                            readonly blockCreated: 17482143;
                        };
                    };
                    readonly l1StandardBridge: {
                        readonly 1: {
                            readonly address: "0x3154Cf16ccdb4C6d922629664174b904d80F2C35";
                            readonly blockCreated: 17482143;
                        };
                    };
                    readonly gasPriceOracle: {
                        readonly address: "0x420000000000000000000000000000000000000F";
                    };
                    readonly l1Block: {
                        readonly address: "0x4200000000000000000000000000000000000015";
                    };
                    readonly l2CrossDomainMessenger: {
                        readonly address: "0x4200000000000000000000000000000000000007";
                    };
                    readonly l2Erc721Bridge: {
                        readonly address: "0x4200000000000000000000000000000000000014";
                    };
                    readonly l2StandardBridge: {
                        readonly address: "0x4200000000000000000000000000000000000010";
                    };
                    readonly l2ToL1MessagePasser: {
                        readonly address: "0x4200000000000000000000000000000000000016";
                    };
                };
                id: 8453;
                name: "Base";
                nativeCurrency: {
                    readonly name: "Ether";
                    readonly symbol: "ETH";
                    readonly decimals: 18;
                };
                rpcUrls: {
                    readonly default: {
                        readonly http: readonly ["https://mainnet.base.org"];
                    };
                };
                sourceId: 1;
                testnet?: boolean | undefined;
                custom?: Record<string, unknown> | undefined;
                fees?: viem.ChainFees<undefined> | undefined;
                formatters: {
                    readonly block: {
                        exclude: [] | undefined;
                        format: (args: viem_chains.OpStackRpcBlock) => {
                            baseFeePerGas: bigint | null;
                            blobGasUsed: bigint;
                            difficulty: bigint;
                            excessBlobGas: bigint;
                            extraData: viem.Hex;
                            gasLimit: bigint;
                            gasUsed: bigint;
                            hash: `0x${string}` | null;
                            logsBloom: `0x${string}` | null;
                            miner: viem.Address;
                            mixHash: viem.Hash;
                            nonce: `0x${string}` | null;
                            number: bigint | null;
                            parentBeaconBlockRoot?: viem.Hex | undefined;
                            parentHash: viem.Hash;
                            receiptsRoot: viem.Hex;
                            sealFields: viem.Hex[];
                            sha3Uncles: viem.Hash;
                            size: bigint;
                            stateRoot: viem.Hash;
                            timestamp: bigint;
                            totalDifficulty: bigint | null;
                            transactions: `0x${string}`[] | viem_chains.OpStackTransaction<boolean>[];
                            transactionsRoot: viem.Hash;
                            uncles: viem.Hash[];
                            withdrawals?: viem.Withdrawal[] | undefined;
                            withdrawalsRoot?: viem.Hex | undefined;
                        } & {};
                        type: "block";
                    };
                    readonly transaction: {
                        exclude: [] | undefined;
                        format: (args: viem_chains.OpStackRpcTransaction) => ({
                            blockHash: `0x${string}` | null;
                            blockNumber: bigint | null;
                            from: viem.Address;
                            gas: bigint;
                            hash: viem.Hash;
                            input: viem.Hex;
                            nonce: number;
                            r: viem.Hex;
                            s: viem.Hex;
                            to: viem.Address | null;
                            transactionIndex: number | null;
                            typeHex: viem.Hex | null;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                            gasPrice?: undefined;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas: bigint;
                            maxPriorityFeePerGas: bigint;
                            isSystemTx?: boolean;
                            mint?: bigint | undefined;
                            sourceHash: viem.Hex;
                            type: "deposit";
                        } | {
                            r: viem.Hex;
                            s: viem.Hex;
                            v: bigint;
                            to: viem.Address | null;
                            from: viem.Address;
                            gas: bigint;
                            nonce: number;
                            value: bigint;
                            blockHash: `0x${string}` | null;
                            blockNumber: bigint | null;
                            hash: viem.Hash;
                            input: viem.Hex;
                            transactionIndex: number | null;
                            typeHex: viem.Hex | null;
                            accessList?: undefined;
                            authorizationList?: undefined;
                            blobVersionedHashes?: undefined;
                            chainId?: number | undefined;
                            yParity?: undefined;
                            type: "legacy";
                            gasPrice: bigint;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas?: undefined;
                            maxPriorityFeePerGas?: undefined;
                            isSystemTx?: undefined;
                            mint?: undefined;
                            sourceHash?: undefined;
                        } | {
                            blockHash: `0x${string}` | null;
                            blockNumber: bigint | null;
                            from: viem.Address;
                            gas: bigint;
                            hash: viem.Hash;
                            input: viem.Hex;
                            nonce: number;
                            r: viem.Hex;
                            s: viem.Hex;
                            to: viem.Address | null;
                            transactionIndex: number | null;
                            typeHex: viem.Hex | null;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                            accessList: viem.AccessList;
                            authorizationList?: undefined;
                            blobVersionedHashes?: undefined;
                            chainId: number;
                            type: "eip2930";
                            gasPrice: bigint;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas?: undefined;
                            maxPriorityFeePerGas?: undefined;
                            isSystemTx?: undefined;
                            mint?: undefined;
                            sourceHash?: undefined;
                        } | {
                            blockHash: `0x${string}` | null;
                            blockNumber: bigint | null;
                            from: viem.Address;
                            gas: bigint;
                            hash: viem.Hash;
                            input: viem.Hex;
                            nonce: number;
                            r: viem.Hex;
                            s: viem.Hex;
                            to: viem.Address | null;
                            transactionIndex: number | null;
                            typeHex: viem.Hex | null;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                            accessList: viem.AccessList;
                            authorizationList?: undefined;
                            blobVersionedHashes?: undefined;
                            chainId: number;
                            type: "eip1559";
                            gasPrice?: undefined;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas: bigint;
                            maxPriorityFeePerGas: bigint;
                            isSystemTx?: undefined;
                            mint?: undefined;
                            sourceHash?: undefined;
                        } | {
                            blockHash: `0x${string}` | null;
                            blockNumber: bigint | null;
                            from: viem.Address;
                            gas: bigint;
                            hash: viem.Hash;
                            input: viem.Hex;
                            nonce: number;
                            r: viem.Hex;
                            s: viem.Hex;
                            to: viem.Address | null;
                            transactionIndex: number | null;
                            typeHex: viem.Hex | null;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                            accessList: viem.AccessList;
                            authorizationList?: undefined;
                            blobVersionedHashes: readonly viem.Hex[];
                            chainId: number;
                            type: "eip4844";
                            gasPrice?: undefined;
                            maxFeePerBlobGas: bigint;
                            maxFeePerGas: bigint;
                            maxPriorityFeePerGas: bigint;
                            isSystemTx?: undefined;
                            mint?: undefined;
                            sourceHash?: undefined;
                        } | {
                            blockHash: `0x${string}` | null;
                            blockNumber: bigint | null;
                            from: viem.Address;
                            gas: bigint;
                            hash: viem.Hash;
                            input: viem.Hex;
                            nonce: number;
                            r: viem.Hex;
                            s: viem.Hex;
                            to: viem.Address | null;
                            transactionIndex: number | null;
                            typeHex: viem.Hex | null;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                            accessList: viem.AccessList;
                            authorizationList: viem_experimental.SignedAuthorizationList;
                            blobVersionedHashes?: undefined;
                            chainId: number;
                            type: "eip7702";
                            gasPrice?: undefined;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas: bigint;
                            maxPriorityFeePerGas: bigint;
                            isSystemTx?: undefined;
                            mint?: undefined;
                            sourceHash?: undefined;
                        }) & {};
                        type: "transaction";
                    };
                    readonly transactionReceipt: {
                        exclude: [] | undefined;
                        format: (args: viem_chains.OpStackRpcTransactionReceipt) => {
                            blobGasPrice?: bigint | undefined;
                            blobGasUsed?: bigint | undefined;
                            blockHash: viem.Hash;
                            blockNumber: bigint;
                            contractAddress: viem.Address | null | undefined;
                            cumulativeGasUsed: bigint;
                            effectiveGasPrice: bigint;
                            from: viem.Address;
                            gasUsed: bigint;
                            logs: viem.Log<bigint, number, false>[];
                            logsBloom: viem.Hex;
                            root?: viem.Hash | undefined;
                            status: "success" | "reverted";
                            to: viem.Address | null;
                            transactionHash: viem.Hash;
                            transactionIndex: number;
                            type: viem.TransactionType;
                            l1GasPrice: bigint | null;
                            l1GasUsed: bigint | null;
                            l1Fee: bigint | null;
                            l1FeeScalar: number | null;
                        } & {};
                        type: "transactionReceipt";
                    };
                };
                serializers: {
                    readonly transaction: typeof viem_chains.serializeTransactionOpStack;
                };
            };
            contracts: {
                ThreeDNSToken: {
                    abi: readonly [{
                        readonly type: "event";
                        readonly name: "NewOwner";
                        readonly inputs: readonly [{
                            readonly type: "bytes32";
                            readonly name: "node";
                            readonly indexed: true;
                        }, {
                            readonly type: "bytes32";
                            readonly name: "label";
                            readonly indexed: true;
                        }, {
                            readonly type: "address";
                            readonly name: "owner";
                            readonly indexed: false;
                        }];
                    }, {
                        readonly type: "event";
                        readonly name: "RegistrationCreated";
                        readonly inputs: readonly [{
                            readonly type: "bytes32";
                            readonly name: "node";
                            readonly indexed: true;
                        }, {
                            readonly type: "bytes32";
                            readonly name: "tld";
                            readonly indexed: true;
                        }, {
                            readonly type: "bytes";
                            readonly name: "fqdn";
                            readonly indexed: false;
                        }, {
                            readonly type: "address";
                            readonly name: "registrant";
                            readonly indexed: false;
                        }, {
                            readonly type: "uint32";
                            readonly name: "controlBitmap";
                            readonly indexed: false;
                        }, {
                            readonly type: "uint64";
                            readonly name: "expiry";
                            readonly indexed: false;
                        }];
                    }, {
                        readonly type: "event";
                        readonly name: "RegistrationExtended";
                        readonly inputs: readonly [{
                            readonly type: "bytes32";
                            readonly name: "node";
                            readonly indexed: true;
                        }, {
                            readonly type: "uint64";
                            readonly name: "duration";
                            readonly indexed: true;
                        }, {
                            readonly type: "uint64";
                            readonly name: "newExpiry";
                            readonly indexed: true;
                        }];
                    }, {
                        readonly type: "event";
                        readonly name: "RegistrationTransferred";
                        readonly inputs: readonly [{
                            readonly type: "bytes32";
                            readonly name: "node";
                            readonly indexed: true;
                        }, {
                            readonly type: "address";
                            readonly name: "newOwner";
                            readonly indexed: true;
                        }, {
                            readonly type: "address";
                            readonly name: "operator";
                            readonly indexed: true;
                        }];
                    }, {
                        readonly type: "event";
                        readonly name: "RegistrationBurned";
                        readonly inputs: readonly [{
                            readonly type: "bytes32";
                            readonly name: "node";
                            readonly indexed: true;
                        }, {
                            readonly type: "address";
                            readonly name: "burner";
                            readonly indexed: true;
                        }];
                    }, {
                        readonly type: "function";
                        readonly name: "uri";
                        readonly inputs: readonly [{
                            readonly type: "uint256";
                            readonly name: "tokenId_";
                        }];
                        readonly outputs: readonly [{
                            readonly type: "string";
                            readonly name: "";
                        }];
                        readonly stateMutability: "view";
                    }, {
                        readonly type: "function";
                        readonly name: "resolver";
                        readonly inputs: readonly [{
                            readonly type: "bytes32";
                            readonly name: "node";
                        }];
                        readonly outputs: readonly [{
                            readonly type: "address";
                            readonly name: "";
                        }];
                        readonly stateMutability: "view";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "Transfer";
                        readonly type: "event";
                    }];
                    address: "0xBB7B805B257d7C76CA9435B3ffe780355E4C4B17";
                    startBlock: number;
                };
                Resolver: {
                    abi: readonly [{
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "contentType";
                            readonly type: "uint256";
                        }];
                        readonly name: "ABIChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "a";
                            readonly type: "address";
                        }];
                        readonly name: "AddrChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "newAddress";
                            readonly type: "bytes";
                        }];
                        readonly name: "AddressChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "target";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "isAuthorised";
                            readonly type: "bool";
                        }];
                        readonly name: "AuthorisationChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "ContenthashChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "record";
                            readonly type: "bytes";
                        }];
                        readonly name: "DNSRecordChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }];
                        readonly name: "DNSRecordDeleted";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "DNSZoneCleared";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "implementer";
                            readonly type: "address";
                        }];
                        readonly name: "InterfaceChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "NameChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly name: "PubkeyChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "string";
                            readonly name: "indexedKey";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }];
                        readonly name: "TextChanged";
                        readonly type: "event";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "contentTypes";
                            readonly type: "uint256";
                        }];
                        readonly name: "ABI";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "addr";
                        readonly outputs: readonly [{
                            readonly internalType: "address payable";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }];
                        readonly name: "addr";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly name: "authorisations";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "clearDNSZone";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "contenthash";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "name";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }];
                        readonly name: "dnsRecord";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "name";
                            readonly type: "bytes32";
                        }];
                        readonly name: "hasDNSRecords";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "interfaceImplementer";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }];
                        readonly name: "multicall";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "results";
                            readonly type: "bytes[]";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "name";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "pubkey";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "contentType";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "setABI";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "a";
                            readonly type: "bytes";
                        }];
                        readonly name: "setAddr";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "a";
                            readonly type: "address";
                        }];
                        readonly name: "setAddr";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "target";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "isAuthorised";
                            readonly type: "bool";
                        }];
                        readonly name: "setAuthorisation";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "setContenthash";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "setDNSRecords";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }, {
                            readonly internalType: "address";
                            readonly name: "implementer";
                            readonly type: "address";
                        }];
                        readonly name: "setInterface";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "setName";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly name: "setPubkey";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }, {
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }];
                        readonly name: "setText";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }];
                        readonly name: "text";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "Approved";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "lastzonehash";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "zonehash";
                            readonly type: "bytes";
                        }];
                        readonly name: "DNSZonehashChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "string";
                            readonly name: "indexedKey";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }];
                        readonly name: "TextChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "newVersion";
                            readonly type: "uint64";
                        }];
                        readonly name: "VersionChanged";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "approve";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "clearRecords";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedFor";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "nodehash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }];
                        readonly name: "multicallWithNodeCheck";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "results";
                            readonly type: "bytes[]";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "recordVersions";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "newName";
                            readonly type: "string";
                        }];
                        readonly name: "setName";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "setZonehash";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "zonehash";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly type: "event";
                        readonly name: "DNSRecordChanged";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "name";
                            readonly type: "bytes";
                            readonly indexed: false;
                            readonly internalType: "bytes";
                        }, {
                            readonly name: "resource";
                            readonly type: "uint16";
                            readonly indexed: false;
                            readonly internalType: "uint16";
                        }, {
                            readonly name: "ttl";
                            readonly type: "uint32";
                            readonly indexed: false;
                            readonly internalType: "uint32";
                        }, {
                            readonly name: "record";
                            readonly type: "bytes";
                            readonly indexed: false;
                            readonly internalType: "bytes";
                        }];
                        readonly anonymous: false;
                    }, {
                        readonly type: "event";
                        readonly name: "DNSZoneUpdated";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "serial";
                            readonly type: "uint32";
                            readonly indexed: false;
                            readonly internalType: "uint32";
                        }];
                        readonly anonymous: false;
                    }, {
                        readonly type: "event";
                        readonly name: "ZoneCreated";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "version";
                            readonly type: "uint64";
                            readonly indexed: true;
                            readonly internalType: "uint64";
                        }];
                        readonly anonymous: false;
                    }];
                    address: "0xF97aAc6C8dbaEBCB54ff166d79706E3AF7a813c8";
                    startBlock: number;
                };
            };
        };
    };
    readonly sepolia: {
        ensroot: {
            chain: {
                blockExplorers: {
                    readonly default: {
                        readonly name: "Etherscan";
                        readonly url: "https://sepolia.etherscan.io";
                        readonly apiUrl: "https://api-sepolia.etherscan.io/api";
                    };
                };
                contracts: {
                    readonly multicall3: {
                        readonly address: "0xca11bde05977b3631167028862be2a173976ca11";
                        readonly blockCreated: 751532;
                    };
                    readonly ensRegistry: {
                        readonly address: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e";
                    };
                    readonly ensUniversalResolver: {
                        readonly address: "0xc8Af999e38273D658BE1b921b88A9Ddf005769cC";
                        readonly blockCreated: 5317080;
                    };
                };
                id: 11155111;
                name: "Sepolia";
                nativeCurrency: {
                    readonly name: "Sepolia Ether";
                    readonly symbol: "ETH";
                    readonly decimals: 18;
                };
                rpcUrls: {
                    readonly default: {
                        readonly http: readonly ["https://sepolia.drpc.org"];
                    };
                };
                sourceId?: number | undefined;
                testnet: true;
                custom?: Record<string, unknown> | undefined;
                fees?: viem.ChainFees<undefined> | undefined;
                formatters?: undefined;
                serializers?: viem.ChainSerializers<undefined, viem.TransactionSerializable> | undefined;
            };
            contracts: {
                RegistryOld: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "_old";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "NewOwner";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "NewResolver";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "NewTTL";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "Transfer";
                        readonly type: "event";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "old";
                        readonly outputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "recordExists";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "resolver";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "setOwner";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setRecord";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "setSubnodeOwner";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setSubnodeRecord";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setTTL";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "ttl";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }];
                    address: "0x94f523b8261B815b87EFfCf4d18E6aBeF18d6e4b";
                    startBlock: number;
                };
                Registry: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "_old";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "NewOwner";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "NewResolver";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "NewTTL";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "Transfer";
                        readonly type: "event";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "old";
                        readonly outputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "recordExists";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "resolver";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "setOwner";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setRecord";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "setSubnodeOwner";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setSubnodeRecord";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setTTL";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "ttl";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }];
                    address: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e";
                    startBlock: number;
                };
                Resolver: {
                    startBlock: number;
                    abi: readonly [{
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "contentType";
                            readonly type: "uint256";
                        }];
                        readonly name: "ABIChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "a";
                            readonly type: "address";
                        }];
                        readonly name: "AddrChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "newAddress";
                            readonly type: "bytes";
                        }];
                        readonly name: "AddressChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "target";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "isAuthorised";
                            readonly type: "bool";
                        }];
                        readonly name: "AuthorisationChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "ContenthashChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "record";
                            readonly type: "bytes";
                        }];
                        readonly name: "DNSRecordChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }];
                        readonly name: "DNSRecordDeleted";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "DNSZoneCleared";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "implementer";
                            readonly type: "address";
                        }];
                        readonly name: "InterfaceChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "NameChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly name: "PubkeyChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "string";
                            readonly name: "indexedKey";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }];
                        readonly name: "TextChanged";
                        readonly type: "event";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "contentTypes";
                            readonly type: "uint256";
                        }];
                        readonly name: "ABI";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "addr";
                        readonly outputs: readonly [{
                            readonly internalType: "address payable";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }];
                        readonly name: "addr";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly name: "authorisations";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "clearDNSZone";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "contenthash";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "name";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }];
                        readonly name: "dnsRecord";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "name";
                            readonly type: "bytes32";
                        }];
                        readonly name: "hasDNSRecords";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "interfaceImplementer";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }];
                        readonly name: "multicall";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "results";
                            readonly type: "bytes[]";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "name";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "pubkey";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "contentType";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "setABI";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "a";
                            readonly type: "bytes";
                        }];
                        readonly name: "setAddr";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "a";
                            readonly type: "address";
                        }];
                        readonly name: "setAddr";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "target";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "isAuthorised";
                            readonly type: "bool";
                        }];
                        readonly name: "setAuthorisation";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "setContenthash";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "setDNSRecords";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }, {
                            readonly internalType: "address";
                            readonly name: "implementer";
                            readonly type: "address";
                        }];
                        readonly name: "setInterface";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "setName";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly name: "setPubkey";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }, {
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }];
                        readonly name: "setText";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }];
                        readonly name: "text";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "Approved";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "lastzonehash";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "zonehash";
                            readonly type: "bytes";
                        }];
                        readonly name: "DNSZonehashChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "string";
                            readonly name: "indexedKey";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }];
                        readonly name: "TextChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "newVersion";
                            readonly type: "uint64";
                        }];
                        readonly name: "VersionChanged";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "approve";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "clearRecords";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedFor";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "nodehash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }];
                        readonly name: "multicallWithNodeCheck";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "results";
                            readonly type: "bytes[]";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "recordVersions";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "newName";
                            readonly type: "string";
                        }];
                        readonly name: "setName";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "setZonehash";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "zonehash";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly type: "event";
                        readonly name: "DNSRecordChanged";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "name";
                            readonly type: "bytes";
                            readonly indexed: false;
                            readonly internalType: "bytes";
                        }, {
                            readonly name: "resource";
                            readonly type: "uint16";
                            readonly indexed: false;
                            readonly internalType: "uint16";
                        }, {
                            readonly name: "ttl";
                            readonly type: "uint32";
                            readonly indexed: false;
                            readonly internalType: "uint32";
                        }, {
                            readonly name: "record";
                            readonly type: "bytes";
                            readonly indexed: false;
                            readonly internalType: "bytes";
                        }];
                        readonly anonymous: false;
                    }, {
                        readonly type: "event";
                        readonly name: "DNSZoneUpdated";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "serial";
                            readonly type: "uint32";
                            readonly indexed: false;
                            readonly internalType: "uint32";
                        }];
                        readonly anonymous: false;
                    }, {
                        readonly type: "event";
                        readonly name: "ZoneCreated";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "version";
                            readonly type: "uint64";
                            readonly indexed: true;
                            readonly internalType: "uint64";
                        }];
                        readonly anonymous: false;
                    }];
                    filter: [{
                        readonly event: "AddrChanged";
                        readonly args: {};
                    }, {
                        readonly event: "AddressChanged";
                        readonly args: {};
                    }, {
                        readonly event: "NameChanged";
                        readonly args: {};
                    }, {
                        readonly event: "ABIChanged";
                        readonly args: {};
                    }, {
                        readonly event: "PubkeyChanged";
                        readonly args: {};
                    }, {
                        readonly event: "TextChanged(bytes32 indexed node, string indexed indexedKey, string key)";
                        readonly args: {};
                    }, {
                        readonly event: "TextChanged(bytes32 indexed node, string indexed indexedKey, string key, string value)";
                        readonly args: {};
                    }, {
                        readonly event: "ContenthashChanged";
                        readonly args: {};
                    }, {
                        readonly event: "InterfaceChanged";
                        readonly args: {};
                    }, {
                        readonly event: "AuthorisationChanged";
                        readonly args: {};
                    }, {
                        readonly event: "VersionChanged";
                        readonly args: {};
                    }, {
                        readonly event: "DNSRecordChanged";
                        readonly args: {};
                    }, {
                        readonly event: "DNSRecordDeleted";
                        readonly args: {};
                    }, {
                        readonly event: "DNSZonehashChanged";
                        readonly args: {};
                    }];
                };
                BaseRegistrar: {
                    abi: readonly [{
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "getApproved";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "approve";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "transferFrom";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "reclaim";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "ens";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "safeTransferFrom";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "transferPeriodEnds";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "ownerOf";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "MIGRATION_LOCK_PERIOD";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "balanceOf";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "isOwner";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "available";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "addController";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "previousRegistrar";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }, {
                            readonly name: "_data";
                            readonly type: "bytes";
                        }];
                        readonly name: "safeTransferFrom";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "GRACE_PERIOD";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "nameExpires";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly name: "controllers";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "baseNode";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly name: "deed";
                            readonly type: "address";
                        }, {
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly name: "acceptRegistrarTransfer";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "removeController";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "register";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly name: "_ens";
                            readonly type: "address";
                        }, {
                            readonly name: "_previousRegistrar";
                            readonly type: "address";
                        }, {
                            readonly name: "_baseNode";
                            readonly type: "bytes32";
                        }, {
                            readonly name: "_transferPeriodEnds";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "ControllerAdded";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "ControllerRemoved";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: true;
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameMigrated";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: true;
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRegistered";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRenewed";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "previousOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "Transfer";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "approved";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "Approval";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }];
                    address: "0x57f1887a8BF19b14fC0dF6Fd9B2acc9Af147eA85";
                    startBlock: number;
                };
                EthRegistrarControllerOld: {
                    abi: readonly [{
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [];
                        readonly name: "withdraw";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "_prices";
                            readonly type: "address";
                        }];
                        readonly name: "setPriceOracle";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "_minCommitmentAge";
                            readonly type: "uint256";
                        }, {
                            readonly name: "_maxCommitmentAge";
                            readonly type: "uint256";
                        }];
                        readonly name: "setCommitmentAges";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "commitments";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "rentPrice";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly name: "secret";
                            readonly type: "bytes32";
                        }];
                        readonly name: "register";
                        readonly outputs: readonly [];
                        readonly payable: true;
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "MIN_REGISTRATION_DURATION";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "minCommitmentAge";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "isOwner";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "valid";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [];
                        readonly payable: true;
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "available";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "maxCommitmentAge";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "commit";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly name: "secret";
                            readonly type: "bytes32";
                        }];
                        readonly name: "makeCommitment";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly name: "_base";
                            readonly type: "address";
                        }, {
                            readonly name: "_prices";
                            readonly type: "address";
                        }, {
                            readonly name: "_minCommitmentAge";
                            readonly type: "uint256";
                        }, {
                            readonly name: "_maxCommitmentAge";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly name: "cost";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRegistered";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly name: "cost";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRenewed";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "oracle";
                            readonly type: "address";
                        }];
                        readonly name: "NewPriceOracle";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "previousOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }];
                    address: "0x7e02892cfc2Bfd53a75275451d73cF620e793fc0";
                    startBlock: number;
                };
                EthRegistrarController: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract BaseRegistrarImplementation";
                            readonly name: "_base";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IPriceOracle";
                            readonly name: "_prices";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_minCommitmentAge";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_maxCommitmentAge";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "contract ReverseRegistrar";
                            readonly name: "_reverseRegistrar";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract INameWrapper";
                            readonly name: "_nameWrapper";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "CommitmentTooNew";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "CommitmentTooOld";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "DurationTooShort";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "InsufficientValue";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MaxCommitmentAgeTooHigh";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MaxCommitmentAgeTooLow";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "NameNotAvailable";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "ResolverRequiredWhenDataSupplied";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "UnexpiredCommitmentExists";
                        readonly type: "error";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "baseCost";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "premium";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRegistered";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "cost";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRenewed";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "previousOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MIN_REGISTRATION_DURATION";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "available";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "commit";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "commitments";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "secret";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "reverseRecord";
                            readonly type: "bool";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }];
                        readonly name: "makeCommitment";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "maxCommitmentAge";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "minCommitmentAge";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "nameWrapper";
                        readonly outputs: readonly [{
                            readonly internalType: "contract INameWrapper";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "prices";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IPriceOracle";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "_token";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "_to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_amount";
                            readonly type: "uint256";
                        }];
                        readonly name: "recoverFunds";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "secret";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "reverseRecord";
                            readonly type: "bool";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }];
                        readonly name: "register";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "rentPrice";
                        readonly outputs: readonly [{
                            readonly components: readonly [{
                                readonly internalType: "uint256";
                                readonly name: "base";
                                readonly type: "uint256";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "premium";
                                readonly type: "uint256";
                            }];
                            readonly internalType: "struct IPriceOracle.Price";
                            readonly name: "price";
                            readonly type: "tuple";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "reverseRegistrar";
                        readonly outputs: readonly [{
                            readonly internalType: "contract ReverseRegistrar";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "valid";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "withdraw";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }];
                    address: "0xFED6a969AaA60E4961FCD3EBF1A2e8913ac65B72";
                    startBlock: number;
                };
                NameWrapper: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "_ens";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IBaseRegistrar";
                            readonly name: "_registrar";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IMetadataService";
                            readonly name: "_metadataService";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "CannotUpgrade";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "IncompatibleParent";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "IncorrectTargetOwner";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "IncorrectTokenType";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "labelHash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "expectedLabelhash";
                            readonly type: "bytes32";
                        }];
                        readonly name: "LabelMismatch";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }];
                        readonly name: "LabelTooLong";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "LabelTooShort";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "NameIsNotWrapped";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "OperationProhibited";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "addr";
                            readonly type: "address";
                        }];
                        readonly name: "Unauthorised";
                        readonly type: "error";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "active";
                            readonly type: "bool";
                        }];
                        readonly name: "ControllerChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "ExpiryExtended";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }];
                        readonly name: "FusesSet";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "NameUnwrapped";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "NameWrapped";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "previousOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256[]";
                            readonly name: "ids";
                            readonly type: "uint256[]";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256[]";
                            readonly name: "values";
                            readonly type: "uint256[]";
                        }];
                        readonly name: "TransferBatch";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "value";
                            readonly type: "uint256";
                        }];
                        readonly name: "TransferSingle";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "URI";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly name: "_tokens";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuseMask";
                            readonly type: "uint32";
                        }];
                        readonly name: "allFusesBurned";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "balanceOf";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address[]";
                            readonly name: "accounts";
                            readonly type: "address[]";
                        }, {
                            readonly internalType: "uint256[]";
                            readonly name: "ids";
                            readonly type: "uint256[]";
                        }];
                        readonly name: "balanceOfBatch";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256[]";
                            readonly name: "";
                            readonly type: "uint256[]";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "addr";
                            readonly type: "address";
                        }];
                        readonly name: "canModifyName";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly name: "controllers";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "ens";
                        readonly outputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "extendExpiry";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "getData";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "isWrapped";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "metadataService";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IMetadataService";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "name";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "names";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "onERC721Received";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "";
                            readonly type: "bytes4";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "ownerOf";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "_token";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "_to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_amount";
                            readonly type: "uint256";
                        }];
                        readonly name: "recoverFunds";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }];
                        readonly name: "registerAndWrapETH2LD";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "registrarExpiry";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "registrar";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IBaseRegistrar";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256[]";
                            readonly name: "ids";
                            readonly type: "uint256[]";
                        }, {
                            readonly internalType: "uint256[]";
                            readonly name: "amounts";
                            readonly type: "uint256[]";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "safeBatchTransferFrom";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "amount";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "safeTransferFrom";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "setChildFuses";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "active";
                            readonly type: "bool";
                        }];
                        readonly name: "setController";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }];
                        readonly name: "setFuses";
                        readonly outputs: readonly [{
                            readonly internalType: "uint32";
                            readonly name: "";
                            readonly type: "uint32";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "contract IMetadataService";
                            readonly name: "_metadataService";
                            readonly type: "address";
                        }];
                        readonly name: "setMetadataService";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setRecord";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "setSubnodeOwner";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "setSubnodeRecord";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setTTL";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "contract INameWrapperUpgrade";
                            readonly name: "_upgradeAddress";
                            readonly type: "address";
                        }];
                        readonly name: "setUpgradeContract";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceId";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "unwrap";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "registrant";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "unwrapETH2LD";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "upgrade";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "upgradeContract";
                        readonly outputs: readonly [{
                            readonly internalType: "contract INameWrapperUpgrade";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "upgradeETH2LD";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "uri";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "wrap";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "wrapETH2LD";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }];
                    address: "0x0635513f179D50A207757E05759CbD106d7dFcE8";
                    startBlock: number;
                };
            };
        };
        basenames: {
            chain: {
                blockExplorers: {
                    readonly default: {
                        readonly name: "Basescan";
                        readonly url: "https://sepolia.basescan.org";
                        readonly apiUrl: "https://api-sepolia.basescan.org/api";
                    };
                };
                contracts: {
                    readonly disputeGameFactory: {
                        readonly 11155111: {
                            readonly address: "0xd6E6dBf4F7EA0ac412fD8b65ED297e64BB7a06E1";
                        };
                    };
                    readonly l2OutputOracle: {
                        readonly 11155111: {
                            readonly address: "0x84457ca9D0163FbC4bbfe4Dfbb20ba46e48DF254";
                        };
                    };
                    readonly portal: {
                        readonly 11155111: {
                            readonly address: "0x49f53e41452c74589e85ca1677426ba426459e85";
                            readonly blockCreated: 4446677;
                        };
                    };
                    readonly l1StandardBridge: {
                        readonly 11155111: {
                            readonly address: "0xfd0Bf71F60660E2f608ed56e1659C450eB113120";
                            readonly blockCreated: 4446677;
                        };
                    };
                    readonly multicall3: {
                        readonly address: "0xca11bde05977b3631167028862be2a173976ca11";
                        readonly blockCreated: 1059647;
                    };
                    readonly gasPriceOracle: {
                        readonly address: "0x420000000000000000000000000000000000000F";
                    };
                    readonly l1Block: {
                        readonly address: "0x4200000000000000000000000000000000000015";
                    };
                    readonly l2CrossDomainMessenger: {
                        readonly address: "0x4200000000000000000000000000000000000007";
                    };
                    readonly l2Erc721Bridge: {
                        readonly address: "0x4200000000000000000000000000000000000014";
                    };
                    readonly l2StandardBridge: {
                        readonly address: "0x4200000000000000000000000000000000000010";
                    };
                    readonly l2ToL1MessagePasser: {
                        readonly address: "0x4200000000000000000000000000000000000016";
                    };
                };
                id: 84532;
                name: "Base Sepolia";
                nativeCurrency: {
                    readonly name: "Sepolia Ether";
                    readonly symbol: "ETH";
                    readonly decimals: 18;
                };
                rpcUrls: {
                    readonly default: {
                        readonly http: readonly ["https://sepolia.base.org"];
                    };
                };
                sourceId: 11155111;
                testnet: true;
                custom?: Record<string, unknown> | undefined;
                fees?: viem.ChainFees<undefined> | undefined;
                formatters: {
                    readonly block: {
                        exclude: [] | undefined;
                        format: (args: viem_chains.OpStackRpcBlock) => {
                            baseFeePerGas: bigint | null;
                            blobGasUsed: bigint;
                            difficulty: bigint;
                            excessBlobGas: bigint;
                            extraData: viem.Hex;
                            gasLimit: bigint;
                            gasUsed: bigint;
                            hash: `0x${string}` | null;
                            logsBloom: `0x${string}` | null;
                            miner: viem.Address;
                            mixHash: viem.Hash;
                            nonce: `0x${string}` | null;
                            number: bigint | null;
                            parentBeaconBlockRoot?: viem.Hex | undefined;
                            parentHash: viem.Hash;
                            receiptsRoot: viem.Hex;
                            sealFields: viem.Hex[];
                            sha3Uncles: viem.Hash;
                            size: bigint;
                            stateRoot: viem.Hash;
                            timestamp: bigint;
                            totalDifficulty: bigint | null;
                            transactions: `0x${string}`[] | viem_chains.OpStackTransaction<boolean>[];
                            transactionsRoot: viem.Hash;
                            uncles: viem.Hash[];
                            withdrawals?: viem.Withdrawal[] | undefined;
                            withdrawalsRoot?: viem.Hex | undefined;
                        } & {};
                        type: "block";
                    };
                    readonly transaction: {
                        exclude: [] | undefined;
                        format: (args: viem_chains.OpStackRpcTransaction) => ({
                            blockHash: `0x${string}` | null;
                            blockNumber: bigint | null;
                            from: viem.Address;
                            gas: bigint;
                            hash: viem.Hash;
                            input: viem.Hex;
                            nonce: number;
                            r: viem.Hex;
                            s: viem.Hex;
                            to: viem.Address | null;
                            transactionIndex: number | null;
                            typeHex: viem.Hex | null;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                            gasPrice?: undefined;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas: bigint;
                            maxPriorityFeePerGas: bigint;
                            isSystemTx?: boolean;
                            mint?: bigint | undefined;
                            sourceHash: viem.Hex;
                            type: "deposit";
                        } | {
                            r: viem.Hex;
                            s: viem.Hex;
                            v: bigint;
                            to: viem.Address | null;
                            from: viem.Address;
                            gas: bigint;
                            nonce: number;
                            value: bigint;
                            blockHash: `0x${string}` | null;
                            blockNumber: bigint | null;
                            hash: viem.Hash;
                            input: viem.Hex;
                            transactionIndex: number | null;
                            typeHex: viem.Hex | null;
                            accessList?: undefined;
                            authorizationList?: undefined;
                            blobVersionedHashes?: undefined;
                            chainId?: number | undefined;
                            yParity?: undefined;
                            type: "legacy";
                            gasPrice: bigint;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas?: undefined;
                            maxPriorityFeePerGas?: undefined;
                            isSystemTx?: undefined;
                            mint?: undefined;
                            sourceHash?: undefined;
                        } | {
                            blockHash: `0x${string}` | null;
                            blockNumber: bigint | null;
                            from: viem.Address;
                            gas: bigint;
                            hash: viem.Hash;
                            input: viem.Hex;
                            nonce: number;
                            r: viem.Hex;
                            s: viem.Hex;
                            to: viem.Address | null;
                            transactionIndex: number | null;
                            typeHex: viem.Hex | null;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                            accessList: viem.AccessList;
                            authorizationList?: undefined;
                            blobVersionedHashes?: undefined;
                            chainId: number;
                            type: "eip2930";
                            gasPrice: bigint;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas?: undefined;
                            maxPriorityFeePerGas?: undefined;
                            isSystemTx?: undefined;
                            mint?: undefined;
                            sourceHash?: undefined;
                        } | {
                            blockHash: `0x${string}` | null;
                            blockNumber: bigint | null;
                            from: viem.Address;
                            gas: bigint;
                            hash: viem.Hash;
                            input: viem.Hex;
                            nonce: number;
                            r: viem.Hex;
                            s: viem.Hex;
                            to: viem.Address | null;
                            transactionIndex: number | null;
                            typeHex: viem.Hex | null;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                            accessList: viem.AccessList;
                            authorizationList?: undefined;
                            blobVersionedHashes?: undefined;
                            chainId: number;
                            type: "eip1559";
                            gasPrice?: undefined;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas: bigint;
                            maxPriorityFeePerGas: bigint;
                            isSystemTx?: undefined;
                            mint?: undefined;
                            sourceHash?: undefined;
                        } | {
                            blockHash: `0x${string}` | null;
                            blockNumber: bigint | null;
                            from: viem.Address;
                            gas: bigint;
                            hash: viem.Hash;
                            input: viem.Hex;
                            nonce: number;
                            r: viem.Hex;
                            s: viem.Hex;
                            to: viem.Address | null;
                            transactionIndex: number | null;
                            typeHex: viem.Hex | null;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                            accessList: viem.AccessList;
                            authorizationList?: undefined;
                            blobVersionedHashes: readonly viem.Hex[];
                            chainId: number;
                            type: "eip4844";
                            gasPrice?: undefined;
                            maxFeePerBlobGas: bigint;
                            maxFeePerGas: bigint;
                            maxPriorityFeePerGas: bigint;
                            isSystemTx?: undefined;
                            mint?: undefined;
                            sourceHash?: undefined;
                        } | {
                            blockHash: `0x${string}` | null;
                            blockNumber: bigint | null;
                            from: viem.Address;
                            gas: bigint;
                            hash: viem.Hash;
                            input: viem.Hex;
                            nonce: number;
                            r: viem.Hex;
                            s: viem.Hex;
                            to: viem.Address | null;
                            transactionIndex: number | null;
                            typeHex: viem.Hex | null;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                            accessList: viem.AccessList;
                            authorizationList: viem_experimental.SignedAuthorizationList;
                            blobVersionedHashes?: undefined;
                            chainId: number;
                            type: "eip7702";
                            gasPrice?: undefined;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas: bigint;
                            maxPriorityFeePerGas: bigint;
                            isSystemTx?: undefined;
                            mint?: undefined;
                            sourceHash?: undefined;
                        }) & {};
                        type: "transaction";
                    };
                    readonly transactionReceipt: {
                        exclude: [] | undefined;
                        format: (args: viem_chains.OpStackRpcTransactionReceipt) => {
                            blobGasPrice?: bigint | undefined;
                            blobGasUsed?: bigint | undefined;
                            blockHash: viem.Hash;
                            blockNumber: bigint;
                            contractAddress: viem.Address | null | undefined;
                            cumulativeGasUsed: bigint;
                            effectiveGasPrice: bigint;
                            from: viem.Address;
                            gasUsed: bigint;
                            logs: viem.Log<bigint, number, false>[];
                            logsBloom: viem.Hex;
                            root?: viem.Hash | undefined;
                            status: "success" | "reverted";
                            to: viem.Address | null;
                            transactionHash: viem.Hash;
                            transactionIndex: number;
                            type: viem.TransactionType;
                            l1GasPrice: bigint | null;
                            l1GasUsed: bigint | null;
                            l1Fee: bigint | null;
                            l1FeeScalar: number | null;
                        } & {};
                        type: "transactionReceipt";
                    };
                };
                serializers: {
                    readonly transaction: typeof viem_chains.serializeTransactionOpStack;
                };
                readonly network: "base-sepolia";
            };
            contracts: {
                Registry: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "rootOwner";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "Unauthorized";
                        readonly type: "error";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "NewOwner";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "NewResolver";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "NewTTL";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "Transfer";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "recordExists";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "resolver";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner_";
                            readonly type: "address";
                        }];
                        readonly name: "setOwner";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl_";
                            readonly type: "uint64";
                        }];
                        readonly name: "setRecord";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver_";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner_";
                            readonly type: "address";
                        }];
                        readonly name: "setSubnodeOwner";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl_";
                            readonly type: "uint64";
                        }];
                        readonly name: "setSubnodeRecord";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl_";
                            readonly type: "uint64";
                        }];
                        readonly name: "setTTL";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "ttl";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }];
                    address: "0x1493b2567056c2181630115660963E13A8E32735";
                    startBlock: number;
                };
                Resolver: {
                    startBlock: number;
                    abi: readonly [{
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "contentType";
                            readonly type: "uint256";
                        }];
                        readonly name: "ABIChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "a";
                            readonly type: "address";
                        }];
                        readonly name: "AddrChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "newAddress";
                            readonly type: "bytes";
                        }];
                        readonly name: "AddressChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "target";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "isAuthorised";
                            readonly type: "bool";
                        }];
                        readonly name: "AuthorisationChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "ContenthashChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "record";
                            readonly type: "bytes";
                        }];
                        readonly name: "DNSRecordChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }];
                        readonly name: "DNSRecordDeleted";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "DNSZoneCleared";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "implementer";
                            readonly type: "address";
                        }];
                        readonly name: "InterfaceChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "NameChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly name: "PubkeyChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "string";
                            readonly name: "indexedKey";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }];
                        readonly name: "TextChanged";
                        readonly type: "event";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "contentTypes";
                            readonly type: "uint256";
                        }];
                        readonly name: "ABI";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "addr";
                        readonly outputs: readonly [{
                            readonly internalType: "address payable";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }];
                        readonly name: "addr";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly name: "authorisations";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "clearDNSZone";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "contenthash";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "name";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }];
                        readonly name: "dnsRecord";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "name";
                            readonly type: "bytes32";
                        }];
                        readonly name: "hasDNSRecords";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "interfaceImplementer";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }];
                        readonly name: "multicall";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "results";
                            readonly type: "bytes[]";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "name";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "pubkey";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "contentType";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "setABI";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "a";
                            readonly type: "bytes";
                        }];
                        readonly name: "setAddr";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "a";
                            readonly type: "address";
                        }];
                        readonly name: "setAddr";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "target";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "isAuthorised";
                            readonly type: "bool";
                        }];
                        readonly name: "setAuthorisation";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "setContenthash";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "setDNSRecords";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }, {
                            readonly internalType: "address";
                            readonly name: "implementer";
                            readonly type: "address";
                        }];
                        readonly name: "setInterface";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "setName";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly name: "setPubkey";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }, {
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }];
                        readonly name: "setText";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }];
                        readonly name: "text";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "Approved";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "lastzonehash";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "zonehash";
                            readonly type: "bytes";
                        }];
                        readonly name: "DNSZonehashChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "string";
                            readonly name: "indexedKey";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }];
                        readonly name: "TextChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "newVersion";
                            readonly type: "uint64";
                        }];
                        readonly name: "VersionChanged";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "approve";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "clearRecords";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedFor";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "nodehash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }];
                        readonly name: "multicallWithNodeCheck";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "results";
                            readonly type: "bytes[]";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "recordVersions";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "newName";
                            readonly type: "string";
                        }];
                        readonly name: "setName";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "setZonehash";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "zonehash";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly type: "event";
                        readonly name: "DNSRecordChanged";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "name";
                            readonly type: "bytes";
                            readonly indexed: false;
                            readonly internalType: "bytes";
                        }, {
                            readonly name: "resource";
                            readonly type: "uint16";
                            readonly indexed: false;
                            readonly internalType: "uint16";
                        }, {
                            readonly name: "ttl";
                            readonly type: "uint32";
                            readonly indexed: false;
                            readonly internalType: "uint32";
                        }, {
                            readonly name: "record";
                            readonly type: "bytes";
                            readonly indexed: false;
                            readonly internalType: "bytes";
                        }];
                        readonly anonymous: false;
                    }, {
                        readonly type: "event";
                        readonly name: "DNSZoneUpdated";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "serial";
                            readonly type: "uint32";
                            readonly indexed: false;
                            readonly internalType: "uint32";
                        }];
                        readonly anonymous: false;
                    }, {
                        readonly type: "event";
                        readonly name: "ZoneCreated";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "version";
                            readonly type: "uint64";
                            readonly indexed: true;
                            readonly internalType: "uint64";
                        }];
                        readonly anonymous: false;
                    }];
                    filter: [{
                        readonly event: "AddrChanged";
                        readonly args: {};
                    }, {
                        readonly event: "AddressChanged";
                        readonly args: {};
                    }, {
                        readonly event: "NameChanged";
                        readonly args: {};
                    }, {
                        readonly event: "ABIChanged";
                        readonly args: {};
                    }, {
                        readonly event: "PubkeyChanged";
                        readonly args: {};
                    }, {
                        readonly event: "TextChanged(bytes32 indexed node, string indexed indexedKey, string key)";
                        readonly args: {};
                    }, {
                        readonly event: "TextChanged(bytes32 indexed node, string indexed indexedKey, string key, string value)";
                        readonly args: {};
                    }, {
                        readonly event: "ContenthashChanged";
                        readonly args: {};
                    }, {
                        readonly event: "InterfaceChanged";
                        readonly args: {};
                    }, {
                        readonly event: "AuthorisationChanged";
                        readonly args: {};
                    }, {
                        readonly event: "VersionChanged";
                        readonly args: {};
                    }, {
                        readonly event: "DNSRecordChanged";
                        readonly args: {};
                    }, {
                        readonly event: "DNSRecordDeleted";
                        readonly args: {};
                    }, {
                        readonly event: "DNSZonehashChanged";
                        readonly args: {};
                    }];
                };
                BaseRegistrar: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "registry_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "baseNode_";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "baseURI_";
                            readonly type: "string";
                        }, {
                            readonly internalType: "string";
                            readonly name: "collectionURI_";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "AccountBalanceOverflow";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "AlreadyInitialized";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "BalanceQueryForZeroAddress";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "Expired";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "NewOwnerIsZeroAddress";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "NoHandoverRequest";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "NonexistentToken";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "sender";
                            readonly type: "address";
                        }];
                        readonly name: "NotApprovedOwner";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "NotAvailable";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "NotOwnerNorApproved";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "NotRegisteredOrInGrace";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "OnlyController";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "RegistrarNotLive";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "TokenAlreadyExists";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "TokenDoesNotExist";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "TransferFromIncorrectOwner";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "TransferToNonERC721ReceiverImplementer";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "TransferToZeroAddress";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "Unauthorized";
                        readonly type: "error";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "Approval";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "isApproved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "_fromTokenId";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "_toTokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "BatchMetadataUpdate";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [];
                        readonly name: "ContractURIUpdated";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "ControllerAdded";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "ControllerRemoved";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRegistered";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "NameRegisteredWithRecord";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRenewed";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "pendingOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipHandoverCanceled";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "pendingOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipHandoverRequested";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "oldOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "Transfer";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "addController";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "approve";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "balanceOf";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "result";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "baseNode";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "cancelOwnershipHandover";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "pendingOwner";
                            readonly type: "address";
                        }];
                        readonly name: "completeOwnershipHandover";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "contractURI";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "controllers";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "isApproved";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "getApproved";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "result";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "result";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "isAvailable";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "name";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "nameExpires";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "expiry";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "result";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "ownerOf";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "pendingOwner";
                            readonly type: "address";
                        }];
                        readonly name: "ownershipHandoverExpiresAt";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "result";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "reclaim";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "register";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "registerOnly";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "registerWithRecord";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "registry";
                        readonly outputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "removeController";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "requestOwnershipHandover";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "safeTransferFrom";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "safeTransferFrom";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "isApproved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "baseURI_";
                            readonly type: "string";
                        }];
                        readonly name: "setBaseTokenURI";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "collectionURI_";
                            readonly type: "string";
                        }];
                        readonly name: "setContractURI";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "symbol";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "tokenURI";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "transferFrom";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }];
                    address: "0xA0c70ec36c010B55E3C434D6c6EbEEC50c705794";
                    startBlock: number;
                };
                EARegistrarController: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract BaseRegistrar";
                            readonly name: "base_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IPriceOracle";
                            readonly name: "prices_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IReverseRegistrar";
                            readonly name: "reverseRegistrar_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "rootNode_";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "rootName_";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "paymentReceiver_";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "target";
                            readonly type: "address";
                        }];
                        readonly name: "AddressEmptyCode";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }];
                        readonly name: "AddressInsufficientBalance";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "AlreadyInitialized";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "sender";
                            readonly type: "address";
                        }];
                        readonly name: "AlreadyRegisteredWithDiscount";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "DurationTooShort";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "FailedInnerCall";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "key";
                            readonly type: "bytes32";
                        }];
                        readonly name: "InactiveDiscount";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "InsufficientValue";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "key";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "InvalidDiscount";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "key";
                            readonly type: "bytes32";
                        }];
                        readonly name: "InvalidDiscountAmount";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "InvalidPaymentReceiver";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "key";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "validator";
                            readonly type: "address";
                        }];
                        readonly name: "InvalidValidator";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "NameNotAvailable";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "NewOwnerIsZeroAddress";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "NoHandoverRequest";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "ResolverRequiredWhenDataSupplied";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "token";
                            readonly type: "address";
                        }];
                        readonly name: "SafeERC20FailedOperation";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "TransferFailed";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "Unauthorized";
                        readonly type: "error";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "registrant";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "discountKey";
                            readonly type: "bytes32";
                        }];
                        readonly name: "DiscountApplied";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "discountKey";
                            readonly type: "bytes32";
                        }, {
                            readonly components: readonly [{
                                readonly internalType: "bool";
                                readonly name: "active";
                                readonly type: "bool";
                            }, {
                                readonly internalType: "address";
                                readonly name: "discountValidator";
                                readonly type: "address";
                            }, {
                                readonly internalType: "bytes32";
                                readonly name: "key";
                                readonly type: "bytes32";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "discount";
                                readonly type: "uint256";
                            }];
                            readonly indexed: false;
                            readonly internalType: "struct EARegistrarController.DiscountDetails";
                            readonly name: "details";
                            readonly type: "tuple";
                        }];
                        readonly name: "DiscountUpdated";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "payee";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "price";
                            readonly type: "uint256";
                        }];
                        readonly name: "ETHPaymentProcessed";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRegistered";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "pendingOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipHandoverCanceled";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "pendingOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipHandoverRequested";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "oldOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "newPaymentReceiver";
                            readonly type: "address";
                        }];
                        readonly name: "PaymentReceiverUpdated";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "newPrices";
                            readonly type: "address";
                        }];
                        readonly name: "PriceOracleUpdated";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "newReverseRegistrar";
                            readonly type: "address";
                        }];
                        readonly name: "ReverseRegistrarUpdated";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MIN_NAME_LENGTH";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MIN_REGISTRATION_DURATION";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "available";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "cancelOwnershipHandover";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "pendingOwner";
                            readonly type: "address";
                        }];
                        readonly name: "completeOwnershipHandover";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly components: readonly [{
                                readonly internalType: "string";
                                readonly name: "name";
                                readonly type: "string";
                            }, {
                                readonly internalType: "address";
                                readonly name: "owner";
                                readonly type: "address";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "duration";
                                readonly type: "uint256";
                            }, {
                                readonly internalType: "address";
                                readonly name: "resolver";
                                readonly type: "address";
                            }, {
                                readonly internalType: "bytes[]";
                                readonly name: "data";
                                readonly type: "bytes[]";
                            }, {
                                readonly internalType: "bool";
                                readonly name: "reverseRecord";
                                readonly type: "bool";
                            }];
                            readonly internalType: "struct EARegistrarController.RegisterRequest";
                            readonly name: "request";
                            readonly type: "tuple";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "discountKey";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "validationData";
                            readonly type: "bytes";
                        }];
                        readonly name: "discountedRegister";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "discountKey";
                            readonly type: "bytes32";
                        }];
                        readonly name: "discountedRegisterPrice";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "price";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "registrant";
                            readonly type: "address";
                        }];
                        readonly name: "discountedRegistrants";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "hasRegisteredWithDiscount";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "key";
                            readonly type: "bytes32";
                        }];
                        readonly name: "discounts";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "active";
                            readonly type: "bool";
                        }, {
                            readonly internalType: "address";
                            readonly name: "discountValidator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "key";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "discount";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "getActiveDiscounts";
                        readonly outputs: readonly [{
                            readonly components: readonly [{
                                readonly internalType: "bool";
                                readonly name: "active";
                                readonly type: "bool";
                            }, {
                                readonly internalType: "address";
                                readonly name: "discountValidator";
                                readonly type: "address";
                            }, {
                                readonly internalType: "bytes32";
                                readonly name: "key";
                                readonly type: "bytes32";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "discount";
                                readonly type: "uint256";
                            }];
                            readonly internalType: "struct EARegistrarController.DiscountDetails[]";
                            readonly name: "";
                            readonly type: "tuple[]";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address[]";
                            readonly name: "addresses";
                            readonly type: "address[]";
                        }];
                        readonly name: "hasRegisteredWithDiscount";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "result";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "pendingOwner";
                            readonly type: "address";
                        }];
                        readonly name: "ownershipHandoverExpiresAt";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "result";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "paymentReceiver";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "prices";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IPriceOracle";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "_token";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "_to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_amount";
                            readonly type: "uint256";
                        }];
                        readonly name: "recoverFunds";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "registerPrice";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "rentPrice";
                        readonly outputs: readonly [{
                            readonly components: readonly [{
                                readonly internalType: "uint256";
                                readonly name: "base";
                                readonly type: "uint256";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "premium";
                                readonly type: "uint256";
                            }];
                            readonly internalType: "struct IPriceOracle.Price";
                            readonly name: "price";
                            readonly type: "tuple";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "requestOwnershipHandover";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "reverseRegistrar";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IReverseRegistrar";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "rootName";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "rootNode";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly components: readonly [{
                                readonly internalType: "bool";
                                readonly name: "active";
                                readonly type: "bool";
                            }, {
                                readonly internalType: "address";
                                readonly name: "discountValidator";
                                readonly type: "address";
                            }, {
                                readonly internalType: "bytes32";
                                readonly name: "key";
                                readonly type: "bytes32";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "discount";
                                readonly type: "uint256";
                            }];
                            readonly internalType: "struct EARegistrarController.DiscountDetails";
                            readonly name: "details";
                            readonly type: "tuple";
                        }];
                        readonly name: "setDiscountDetails";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "paymentReceiver_";
                            readonly type: "address";
                        }];
                        readonly name: "setPaymentReceiver";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "contract IPriceOracle";
                            readonly name: "prices_";
                            readonly type: "address";
                        }];
                        readonly name: "setPriceOracle";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "contract IReverseRegistrar";
                            readonly name: "reverse_";
                            readonly type: "address";
                        }];
                        readonly name: "setReverseRegistrar";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "valid";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "withdrawETH";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }];
                    address: "0x3a0e8c2a0a28f396a5e5b69edb2e630311f1517a";
                    startBlock: number;
                };
                RegistrarController: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract BaseRegistrar";
                            readonly name: "base_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IPriceOracle";
                            readonly name: "prices_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IReverseRegistrar";
                            readonly name: "reverseRegistrar_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner_";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "rootNode_";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "rootName_";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "paymentReceiver_";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "target";
                            readonly type: "address";
                        }];
                        readonly name: "AddressEmptyCode";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }];
                        readonly name: "AddressInsufficientBalance";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "AlreadyInitialized";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "sender";
                            readonly type: "address";
                        }];
                        readonly name: "AlreadyRegisteredWithDiscount";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "DurationTooShort";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "FailedInnerCall";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "key";
                            readonly type: "bytes32";
                        }];
                        readonly name: "InactiveDiscount";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "InsufficientValue";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "key";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "InvalidDiscount";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "key";
                            readonly type: "bytes32";
                        }];
                        readonly name: "InvalidDiscountAmount";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "InvalidPaymentReceiver";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "key";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "validator";
                            readonly type: "address";
                        }];
                        readonly name: "InvalidValidator";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "NameNotAvailable";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "NewOwnerIsZeroAddress";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "NoHandoverRequest";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "ResolverRequiredWhenDataSupplied";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "token";
                            readonly type: "address";
                        }];
                        readonly name: "SafeERC20FailedOperation";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "TransferFailed";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "Unauthorized";
                        readonly type: "error";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "registrant";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "discountKey";
                            readonly type: "bytes32";
                        }];
                        readonly name: "DiscountApplied";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "discountKey";
                            readonly type: "bytes32";
                        }, {
                            readonly components: readonly [{
                                readonly internalType: "bool";
                                readonly name: "active";
                                readonly type: "bool";
                            }, {
                                readonly internalType: "address";
                                readonly name: "discountValidator";
                                readonly type: "address";
                            }, {
                                readonly internalType: "bytes32";
                                readonly name: "key";
                                readonly type: "bytes32";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "discount";
                                readonly type: "uint256";
                            }];
                            readonly indexed: false;
                            readonly internalType: "struct RegistrarController.DiscountDetails";
                            readonly name: "details";
                            readonly type: "tuple";
                        }];
                        readonly name: "DiscountUpdated";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "payee";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "price";
                            readonly type: "uint256";
                        }];
                        readonly name: "ETHPaymentProcessed";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRegistered";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRenewed";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "pendingOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipHandoverCanceled";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "pendingOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipHandoverRequested";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "oldOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "newPaymentReceiver";
                            readonly type: "address";
                        }];
                        readonly name: "PaymentReceiverUpdated";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "newPrices";
                            readonly type: "address";
                        }];
                        readonly name: "PriceOracleUpdated";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "newReverseRegistrar";
                            readonly type: "address";
                        }];
                        readonly name: "ReverseRegistrarUpdated";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MIN_NAME_LENGTH";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MIN_REGISTRATION_DURATION";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "available";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "cancelOwnershipHandover";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "pendingOwner";
                            readonly type: "address";
                        }];
                        readonly name: "completeOwnershipHandover";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly components: readonly [{
                                readonly internalType: "string";
                                readonly name: "name";
                                readonly type: "string";
                            }, {
                                readonly internalType: "address";
                                readonly name: "owner";
                                readonly type: "address";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "duration";
                                readonly type: "uint256";
                            }, {
                                readonly internalType: "address";
                                readonly name: "resolver";
                                readonly type: "address";
                            }, {
                                readonly internalType: "bytes[]";
                                readonly name: "data";
                                readonly type: "bytes[]";
                            }, {
                                readonly internalType: "bool";
                                readonly name: "reverseRecord";
                                readonly type: "bool";
                            }];
                            readonly internalType: "struct RegistrarController.RegisterRequest";
                            readonly name: "request";
                            readonly type: "tuple";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "discountKey";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "validationData";
                            readonly type: "bytes";
                        }];
                        readonly name: "discountedRegister";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "discountKey";
                            readonly type: "bytes32";
                        }];
                        readonly name: "discountedRegisterPrice";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "price";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "registrant";
                            readonly type: "address";
                        }];
                        readonly name: "discountedRegistrants";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "hasRegisteredWithDiscount";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "key";
                            readonly type: "bytes32";
                        }];
                        readonly name: "discounts";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "active";
                            readonly type: "bool";
                        }, {
                            readonly internalType: "address";
                            readonly name: "discountValidator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "key";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "discount";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "getActiveDiscounts";
                        readonly outputs: readonly [{
                            readonly components: readonly [{
                                readonly internalType: "bool";
                                readonly name: "active";
                                readonly type: "bool";
                            }, {
                                readonly internalType: "address";
                                readonly name: "discountValidator";
                                readonly type: "address";
                            }, {
                                readonly internalType: "bytes32";
                                readonly name: "key";
                                readonly type: "bytes32";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "discount";
                                readonly type: "uint256";
                            }];
                            readonly internalType: "struct RegistrarController.DiscountDetails[]";
                            readonly name: "";
                            readonly type: "tuple[]";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address[]";
                            readonly name: "addresses";
                            readonly type: "address[]";
                        }];
                        readonly name: "hasRegisteredWithDiscount";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "launchTime";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "result";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "pendingOwner";
                            readonly type: "address";
                        }];
                        readonly name: "ownershipHandoverExpiresAt";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "result";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "paymentReceiver";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "prices";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IPriceOracle";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "_token";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "_to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_amount";
                            readonly type: "uint256";
                        }];
                        readonly name: "recoverFunds";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly components: readonly [{
                                readonly internalType: "string";
                                readonly name: "name";
                                readonly type: "string";
                            }, {
                                readonly internalType: "address";
                                readonly name: "owner";
                                readonly type: "address";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "duration";
                                readonly type: "uint256";
                            }, {
                                readonly internalType: "address";
                                readonly name: "resolver";
                                readonly type: "address";
                            }, {
                                readonly internalType: "bytes[]";
                                readonly name: "data";
                                readonly type: "bytes[]";
                            }, {
                                readonly internalType: "bool";
                                readonly name: "reverseRecord";
                                readonly type: "bool";
                            }];
                            readonly internalType: "struct RegistrarController.RegisterRequest";
                            readonly name: "request";
                            readonly type: "tuple";
                        }];
                        readonly name: "register";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "registerPrice";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "rentPrice";
                        readonly outputs: readonly [{
                            readonly components: readonly [{
                                readonly internalType: "uint256";
                                readonly name: "base";
                                readonly type: "uint256";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "premium";
                                readonly type: "uint256";
                            }];
                            readonly internalType: "struct IPriceOracle.Price";
                            readonly name: "price";
                            readonly type: "tuple";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "requestOwnershipHandover";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "reverseRegistrar";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IReverseRegistrar";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "rootName";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "rootNode";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly components: readonly [{
                                readonly internalType: "bool";
                                readonly name: "active";
                                readonly type: "bool";
                            }, {
                                readonly internalType: "address";
                                readonly name: "discountValidator";
                                readonly type: "address";
                            }, {
                                readonly internalType: "bytes32";
                                readonly name: "key";
                                readonly type: "bytes32";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "discount";
                                readonly type: "uint256";
                            }];
                            readonly internalType: "struct RegistrarController.DiscountDetails";
                            readonly name: "details";
                            readonly type: "tuple";
                        }];
                        readonly name: "setDiscountDetails";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "launchTime_";
                            readonly type: "uint256";
                        }];
                        readonly name: "setLaunchTime";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "paymentReceiver_";
                            readonly type: "address";
                        }];
                        readonly name: "setPaymentReceiver";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "contract IPriceOracle";
                            readonly name: "prices_";
                            readonly type: "address";
                        }];
                        readonly name: "setPriceOracle";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "contract IReverseRegistrar";
                            readonly name: "reverse_";
                            readonly type: "address";
                        }];
                        readonly name: "setReverseRegistrar";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "valid";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "withdrawETH";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }];
                    address: "0x49aE3cC2e3AA768B1e5654f5D3C6002144A59581";
                    startBlock: number;
                };
            };
        };
        lineanames: {
            chain: {
                blockExplorers: {
                    readonly default: {
                        readonly name: "Etherscan";
                        readonly url: "https://sepolia.lineascan.build";
                        readonly apiUrl: "https://api-sepolia.lineascan.build/api";
                    };
                };
                contracts: {
                    readonly multicall3: {
                        readonly address: "0xca11bde05977b3631167028862be2a173976ca11";
                        readonly blockCreated: 227427;
                    };
                };
                id: 59141;
                name: "Linea Sepolia Testnet";
                nativeCurrency: {
                    readonly name: "Linea Ether";
                    readonly symbol: "ETH";
                    readonly decimals: 18;
                };
                rpcUrls: {
                    readonly default: {
                        readonly http: readonly ["https://rpc.sepolia.linea.build"];
                        readonly webSocket: readonly ["wss://rpc.sepolia.linea.build"];
                    };
                };
                sourceId?: number | undefined;
                testnet: true;
                custom?: Record<string, unknown> | undefined;
                fees: {
                    readonly estimateFeesPerGas: ({ client, multiply, request, type, }: Parameters<viem.ChainEstimateFeesPerGasFn>[0]) => ReturnType<viem.ChainEstimateFeesPerGasFn>;
                    readonly maxPriorityFeePerGas: ({ block, client, request }: viem.ChainFeesFnParameters<viem.ChainFormatters | undefined>) => Promise<bigint | null>;
                };
                formatters?: undefined;
                serializers?: viem.ChainSerializers<undefined, viem.TransactionSerializable> | undefined;
            };
            contracts: {
                Registry: {
                    abi: readonly [{
                        readonly inputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "NewOwner";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "NewResolver";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "NewTTL";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "Transfer";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "recordExists";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "resolver";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "setOwner";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setRecord";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "setSubnodeOwner";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setSubnodeRecord";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setTTL";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "ttl";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }];
                    address: "0x5B2636F0f2137B4aE722C01dd5122D7d3e9541f7";
                    startBlock: number;
                };
                Resolver: {
                    startBlock: number;
                    abi: readonly [{
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "contentType";
                            readonly type: "uint256";
                        }];
                        readonly name: "ABIChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "a";
                            readonly type: "address";
                        }];
                        readonly name: "AddrChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "newAddress";
                            readonly type: "bytes";
                        }];
                        readonly name: "AddressChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "target";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "isAuthorised";
                            readonly type: "bool";
                        }];
                        readonly name: "AuthorisationChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "ContenthashChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "record";
                            readonly type: "bytes";
                        }];
                        readonly name: "DNSRecordChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }];
                        readonly name: "DNSRecordDeleted";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "DNSZoneCleared";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "implementer";
                            readonly type: "address";
                        }];
                        readonly name: "InterfaceChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "NameChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly name: "PubkeyChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "string";
                            readonly name: "indexedKey";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }];
                        readonly name: "TextChanged";
                        readonly type: "event";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "contentTypes";
                            readonly type: "uint256";
                        }];
                        readonly name: "ABI";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "addr";
                        readonly outputs: readonly [{
                            readonly internalType: "address payable";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }];
                        readonly name: "addr";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly name: "authorisations";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "clearDNSZone";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "contenthash";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "name";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }];
                        readonly name: "dnsRecord";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "name";
                            readonly type: "bytes32";
                        }];
                        readonly name: "hasDNSRecords";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "interfaceImplementer";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }];
                        readonly name: "multicall";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "results";
                            readonly type: "bytes[]";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "name";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "pubkey";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "contentType";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "setABI";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "a";
                            readonly type: "bytes";
                        }];
                        readonly name: "setAddr";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "a";
                            readonly type: "address";
                        }];
                        readonly name: "setAddr";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "target";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "isAuthorised";
                            readonly type: "bool";
                        }];
                        readonly name: "setAuthorisation";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "setContenthash";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "setDNSRecords";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }, {
                            readonly internalType: "address";
                            readonly name: "implementer";
                            readonly type: "address";
                        }];
                        readonly name: "setInterface";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "setName";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly name: "setPubkey";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }, {
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }];
                        readonly name: "setText";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }];
                        readonly name: "text";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "Approved";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "lastzonehash";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "zonehash";
                            readonly type: "bytes";
                        }];
                        readonly name: "DNSZonehashChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "string";
                            readonly name: "indexedKey";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }];
                        readonly name: "TextChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "newVersion";
                            readonly type: "uint64";
                        }];
                        readonly name: "VersionChanged";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "approve";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "clearRecords";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedFor";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "nodehash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }];
                        readonly name: "multicallWithNodeCheck";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "results";
                            readonly type: "bytes[]";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "recordVersions";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "newName";
                            readonly type: "string";
                        }];
                        readonly name: "setName";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "setZonehash";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "zonehash";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly type: "event";
                        readonly name: "DNSRecordChanged";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "name";
                            readonly type: "bytes";
                            readonly indexed: false;
                            readonly internalType: "bytes";
                        }, {
                            readonly name: "resource";
                            readonly type: "uint16";
                            readonly indexed: false;
                            readonly internalType: "uint16";
                        }, {
                            readonly name: "ttl";
                            readonly type: "uint32";
                            readonly indexed: false;
                            readonly internalType: "uint32";
                        }, {
                            readonly name: "record";
                            readonly type: "bytes";
                            readonly indexed: false;
                            readonly internalType: "bytes";
                        }];
                        readonly anonymous: false;
                    }, {
                        readonly type: "event";
                        readonly name: "DNSZoneUpdated";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "serial";
                            readonly type: "uint32";
                            readonly indexed: false;
                            readonly internalType: "uint32";
                        }];
                        readonly anonymous: false;
                    }, {
                        readonly type: "event";
                        readonly name: "ZoneCreated";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "version";
                            readonly type: "uint64";
                            readonly indexed: true;
                            readonly internalType: "uint64";
                        }];
                        readonly anonymous: false;
                    }];
                    filter: [{
                        readonly event: "AddrChanged";
                        readonly args: {};
                    }, {
                        readonly event: "AddressChanged";
                        readonly args: {};
                    }, {
                        readonly event: "NameChanged";
                        readonly args: {};
                    }, {
                        readonly event: "ABIChanged";
                        readonly args: {};
                    }, {
                        readonly event: "PubkeyChanged";
                        readonly args: {};
                    }, {
                        readonly event: "TextChanged(bytes32 indexed node, string indexed indexedKey, string key)";
                        readonly args: {};
                    }, {
                        readonly event: "TextChanged(bytes32 indexed node, string indexed indexedKey, string key, string value)";
                        readonly args: {};
                    }, {
                        readonly event: "ContenthashChanged";
                        readonly args: {};
                    }, {
                        readonly event: "InterfaceChanged";
                        readonly args: {};
                    }, {
                        readonly event: "AuthorisationChanged";
                        readonly args: {};
                    }, {
                        readonly event: "VersionChanged";
                        readonly args: {};
                    }, {
                        readonly event: "DNSRecordChanged";
                        readonly args: {};
                    }, {
                        readonly event: "DNSRecordDeleted";
                        readonly args: {};
                    }, {
                        readonly event: "DNSZonehashChanged";
                        readonly args: {};
                    }];
                };
                BaseRegistrar: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "_ens";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "_baseNode";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "approved";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "Approval";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "ControllerAdded";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "ControllerRemoved";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameMigrated";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRegistered";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRenewed";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "previousOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "Transfer";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "GRACE_PERIOD";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "addController";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "approve";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "available";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "balanceOf";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "baseNode";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly name: "controllers";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "ens";
                        readonly outputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "getApproved";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "name";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "nameExpires";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "ownerOf";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "reclaim";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "register";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "registerOnly";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "removeController";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "safeTransferFrom";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "safeTransferFrom";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "symbol";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "tokenURI";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "transferFrom";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }];
                    address: "0x83475a84C0ea834F06c8e636A62631e7d2e07A44";
                    startBlock: number;
                };
                EthRegistrarController: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract BaseRegistrarImplementation";
                            readonly name: "_base";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IPriceOracle";
                            readonly name: "_prices";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_minCommitmentAge";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_maxCommitmentAge";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "contract ReverseRegistrar";
                            readonly name: "_reverseRegistrar";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract INameWrapper";
                            readonly name: "_nameWrapper";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract ENS";
                            readonly name: "_ens";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract PohVerifier";
                            readonly name: "_pohVerifier";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract PohRegistrationManager";
                            readonly name: "_pohRegistrationManager";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "_baseNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "_baseDomain";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "BaseNodeAsETHNodeOrROOTNodeNotAllowed";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "CommitmentTooNew";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "CommitmentTooOld";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "DifferentBaseDomainBaseNode";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "DurationTooShort";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "EmptyStringNotAllowed";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "InsufficientValue";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MaxCommitmentAgeTooHigh";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MaxCommitmentAgeTooLow";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "NameNotAvailable";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnerAlreadyRegistered";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "PohVerificationFailed";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "currentTime";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "renewTimeStart";
                            readonly type: "uint256";
                        }];
                        readonly name: "RenewPOHNotStarted";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "ResolverRequiredWhenDataSupplied";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "sender";
                            readonly type: "address";
                        }];
                        readonly name: "SenderNotOwner";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "UnexpiredCommitmentExists";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "WrongPohRegistrationDuration";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "ZeroAddressNotAllowed";
                        readonly type: "error";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "baseCost";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "premium";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRegistered";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "cost";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRenewed";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRenewedPoh";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "OwnerNameRegistered";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "previousOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "PohNameRegistered";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "GRACE_PERIOD";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MIN_REGISTRATION_DURATION";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "POH_REGISTRATION_DURATION";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "available";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "baseDomain";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "baseNode";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "commit";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "commitments";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "secret";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "reverseRecord";
                            readonly type: "bool";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }];
                        readonly name: "makeCommitment";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "maxCommitmentAge";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "minCommitmentAge";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "nameWrapper";
                        readonly outputs: readonly [{
                            readonly internalType: "contract INameWrapper";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "reverseRecord";
                            readonly type: "bool";
                        }];
                        readonly name: "ownerRegister";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "pohRegistrationManager";
                        readonly outputs: readonly [{
                            readonly internalType: "contract PohRegistrationManager";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "pohVerifier";
                        readonly outputs: readonly [{
                            readonly internalType: "contract PohVerifier";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "prices";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IPriceOracle";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "_token";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "_to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_amount";
                            readonly type: "uint256";
                        }];
                        readonly name: "recoverFunds";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "_address";
                            readonly type: "address";
                        }];
                        readonly name: "redeemed";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "secret";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "reverseRecord";
                            readonly type: "bool";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }];
                        readonly name: "register";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "secret";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "reverseRecord";
                            readonly type: "bool";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "signature";
                            readonly type: "bytes";
                        }];
                        readonly name: "registerPoh";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "signature";
                            readonly type: "bytes";
                        }];
                        readonly name: "renewPoh";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "rentPrice";
                        readonly outputs: readonly [{
                            readonly components: readonly [{
                                readonly internalType: "uint256";
                                readonly name: "base";
                                readonly type: "uint256";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "premium";
                                readonly type: "uint256";
                            }];
                            readonly internalType: "struct IPriceOracle.Price";
                            readonly name: "price";
                            readonly type: "tuple";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "reverseRegistrar";
                        readonly outputs: readonly [{
                            readonly internalType: "contract ReverseRegistrar";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "valid";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "withdraw";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }];
                    address: "0x0f81E3B3A32DFE1b8A08d3C0061d852337a09338";
                    startBlock: number;
                };
                NameWrapper: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "_ens";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IBaseRegistrar";
                            readonly name: "_registrar";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IMetadataService";
                            readonly name: "_metadataService";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "_baseNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "_baseNodeDnsEncoded";
                            readonly type: "bytes";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "BaseNodeAsETHNodeOrROOTNodeNotAllowed";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "CannotUpgrade";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "DifferentBaseNodeBaseNodeDnsEncoded";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "EmptyDataNotAllowed";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "IncompatibleParent";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "IncorrectTargetOwner";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "IncorrectTokenType";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "labelHash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "expectedLabelhash";
                            readonly type: "bytes32";
                        }];
                        readonly name: "LabelMismatch";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }];
                        readonly name: "LabelTooLong";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "LabelTooShort";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "NameIsNotWrapped";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "OperationProhibited";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "addr";
                            readonly type: "address";
                        }];
                        readonly name: "Unauthorised";
                        readonly type: "error";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "approved";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "Approval";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "active";
                            readonly type: "bool";
                        }];
                        readonly name: "ControllerChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "ExpiryExtended";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }];
                        readonly name: "FusesSet";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "NameUnwrapped";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "NameWrapped";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "previousOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256[]";
                            readonly name: "ids";
                            readonly type: "uint256[]";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256[]";
                            readonly name: "values";
                            readonly type: "uint256[]";
                        }];
                        readonly name: "TransferBatch";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "value";
                            readonly type: "uint256";
                        }];
                        readonly name: "TransferSingle";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "URI";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly name: "_tokens";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuseMask";
                            readonly type: "uint32";
                        }];
                        readonly name: "allFusesBurned";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "approve";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "balanceOf";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address[]";
                            readonly name: "accounts";
                            readonly type: "address[]";
                        }, {
                            readonly internalType: "uint256[]";
                            readonly name: "ids";
                            readonly type: "uint256[]";
                        }];
                        readonly name: "balanceOfBatch";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256[]";
                            readonly name: "";
                            readonly type: "uint256[]";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "baseNode";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "addr";
                            readonly type: "address";
                        }];
                        readonly name: "canExtendSubnames";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "addr";
                            readonly type: "address";
                        }];
                        readonly name: "canModifyName";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly name: "controllers";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "ens";
                        readonly outputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "extendExpiry";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "getApproved";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "getData";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }];
                        readonly name: "isWrapped";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "isWrapped";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "metadataService";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IMetadataService";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "name";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "names";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "onERC721Received";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "";
                            readonly type: "bytes4";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "ownerOf";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "_token";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "_to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_amount";
                            readonly type: "uint256";
                        }];
                        readonly name: "recoverFunds";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }];
                        readonly name: "registerAndWrap";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "registrarExpiry";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "registrar";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IBaseRegistrar";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256[]";
                            readonly name: "ids";
                            readonly type: "uint256[]";
                        }, {
                            readonly internalType: "uint256[]";
                            readonly name: "amounts";
                            readonly type: "uint256[]";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "safeBatchTransferFrom";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "amount";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "safeTransferFrom";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "setChildFuses";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "active";
                            readonly type: "bool";
                        }];
                        readonly name: "setController";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }];
                        readonly name: "setFuses";
                        readonly outputs: readonly [{
                            readonly internalType: "uint32";
                            readonly name: "";
                            readonly type: "uint32";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "contract IMetadataService";
                            readonly name: "_metadataService";
                            readonly type: "address";
                        }];
                        readonly name: "setMetadataService";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setRecord";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "setSubnodeOwner";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "setSubnodeRecord";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setTTL";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "contract INameWrapperUpgrade";
                            readonly name: "_upgradeAddress";
                            readonly type: "address";
                        }];
                        readonly name: "setUpgradeContract";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceId";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "unwrap";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "registrant";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "unwrapAnyLD";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "extraData";
                            readonly type: "bytes";
                        }];
                        readonly name: "upgrade";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "upgradeContract";
                        readonly outputs: readonly [{
                            readonly internalType: "contract INameWrapperUpgrade";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "uri";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "wrap";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "wrapAnyLD";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }];
                    address: "0xF127De9E039a789806fEd4C6b1C0f3aFfeA9425e";
                    startBlock: number;
                };
            };
        };
    };
    readonly holesky: {
        ensroot: {
            chain: {
                blockExplorers: {
                    readonly default: {
                        readonly name: "Etherscan";
                        readonly url: "https://holesky.etherscan.io";
                        readonly apiUrl: "https://api-holesky.etherscan.io/api";
                    };
                };
                contracts: {
                    readonly multicall3: {
                        readonly address: "0xca11bde05977b3631167028862be2a173976ca11";
                        readonly blockCreated: 77;
                    };
                    readonly ensRegistry: {
                        readonly address: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e";
                        readonly blockCreated: 801613;
                    };
                    readonly ensUniversalResolver: {
                        readonly address: "0xa6AC935D4971E3CD133b950aE053bECD16fE7f3b";
                        readonly blockCreated: 973484;
                    };
                };
                id: 17000;
                name: "Holesky";
                nativeCurrency: {
                    readonly name: "Holesky Ether";
                    readonly symbol: "ETH";
                    readonly decimals: 18;
                };
                rpcUrls: {
                    readonly default: {
                        readonly http: readonly ["https://ethereum-holesky-rpc.publicnode.com"];
                    };
                };
                sourceId?: number | undefined;
                testnet: true;
                custom?: Record<string, unknown> | undefined;
                fees?: viem.ChainFees<undefined> | undefined;
                formatters?: undefined;
                serializers?: viem.ChainSerializers<undefined, viem.TransactionSerializable> | undefined;
            };
            contracts: {
                RegistryOld: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "_old";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "NewOwner";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "NewResolver";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "NewTTL";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "Transfer";
                        readonly type: "event";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "old";
                        readonly outputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "recordExists";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "resolver";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "setOwner";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setRecord";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "setSubnodeOwner";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setSubnodeRecord";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setTTL";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "ttl";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }];
                    address: "0x94f523b8261B815b87EFfCf4d18E6aBeF18d6e4b";
                    startBlock: number;
                };
                Registry: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "_old";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "NewOwner";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "NewResolver";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "NewTTL";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "Transfer";
                        readonly type: "event";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "old";
                        readonly outputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "recordExists";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "resolver";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "setOwner";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setRecord";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "setSubnodeOwner";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setSubnodeRecord";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setTTL";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "ttl";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }];
                    address: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e";
                    startBlock: number;
                };
                Resolver: {
                    startBlock: number;
                    abi: readonly [{
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "contentType";
                            readonly type: "uint256";
                        }];
                        readonly name: "ABIChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "a";
                            readonly type: "address";
                        }];
                        readonly name: "AddrChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "newAddress";
                            readonly type: "bytes";
                        }];
                        readonly name: "AddressChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "target";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "isAuthorised";
                            readonly type: "bool";
                        }];
                        readonly name: "AuthorisationChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "ContenthashChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "record";
                            readonly type: "bytes";
                        }];
                        readonly name: "DNSRecordChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }];
                        readonly name: "DNSRecordDeleted";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "DNSZoneCleared";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "implementer";
                            readonly type: "address";
                        }];
                        readonly name: "InterfaceChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "NameChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly name: "PubkeyChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "string";
                            readonly name: "indexedKey";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }];
                        readonly name: "TextChanged";
                        readonly type: "event";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "contentTypes";
                            readonly type: "uint256";
                        }];
                        readonly name: "ABI";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "addr";
                        readonly outputs: readonly [{
                            readonly internalType: "address payable";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }];
                        readonly name: "addr";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly name: "authorisations";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "clearDNSZone";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "contenthash";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "name";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }];
                        readonly name: "dnsRecord";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "name";
                            readonly type: "bytes32";
                        }];
                        readonly name: "hasDNSRecords";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "interfaceImplementer";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }];
                        readonly name: "multicall";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "results";
                            readonly type: "bytes[]";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "name";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "pubkey";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "contentType";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "setABI";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "a";
                            readonly type: "bytes";
                        }];
                        readonly name: "setAddr";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "a";
                            readonly type: "address";
                        }];
                        readonly name: "setAddr";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "target";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "isAuthorised";
                            readonly type: "bool";
                        }];
                        readonly name: "setAuthorisation";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "setContenthash";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "setDNSRecords";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }, {
                            readonly internalType: "address";
                            readonly name: "implementer";
                            readonly type: "address";
                        }];
                        readonly name: "setInterface";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "setName";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly name: "setPubkey";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }, {
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }];
                        readonly name: "setText";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }];
                        readonly name: "text";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "Approved";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "lastzonehash";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "zonehash";
                            readonly type: "bytes";
                        }];
                        readonly name: "DNSZonehashChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "string";
                            readonly name: "indexedKey";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }];
                        readonly name: "TextChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "newVersion";
                            readonly type: "uint64";
                        }];
                        readonly name: "VersionChanged";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "approve";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "clearRecords";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedFor";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "nodehash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }];
                        readonly name: "multicallWithNodeCheck";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "results";
                            readonly type: "bytes[]";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "recordVersions";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "newName";
                            readonly type: "string";
                        }];
                        readonly name: "setName";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "setZonehash";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "zonehash";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly type: "event";
                        readonly name: "DNSRecordChanged";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "name";
                            readonly type: "bytes";
                            readonly indexed: false;
                            readonly internalType: "bytes";
                        }, {
                            readonly name: "resource";
                            readonly type: "uint16";
                            readonly indexed: false;
                            readonly internalType: "uint16";
                        }, {
                            readonly name: "ttl";
                            readonly type: "uint32";
                            readonly indexed: false;
                            readonly internalType: "uint32";
                        }, {
                            readonly name: "record";
                            readonly type: "bytes";
                            readonly indexed: false;
                            readonly internalType: "bytes";
                        }];
                        readonly anonymous: false;
                    }, {
                        readonly type: "event";
                        readonly name: "DNSZoneUpdated";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "serial";
                            readonly type: "uint32";
                            readonly indexed: false;
                            readonly internalType: "uint32";
                        }];
                        readonly anonymous: false;
                    }, {
                        readonly type: "event";
                        readonly name: "ZoneCreated";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "version";
                            readonly type: "uint64";
                            readonly indexed: true;
                            readonly internalType: "uint64";
                        }];
                        readonly anonymous: false;
                    }];
                    filter: [{
                        readonly event: "AddrChanged";
                        readonly args: {};
                    }, {
                        readonly event: "AddressChanged";
                        readonly args: {};
                    }, {
                        readonly event: "NameChanged";
                        readonly args: {};
                    }, {
                        readonly event: "ABIChanged";
                        readonly args: {};
                    }, {
                        readonly event: "PubkeyChanged";
                        readonly args: {};
                    }, {
                        readonly event: "TextChanged(bytes32 indexed node, string indexed indexedKey, string key)";
                        readonly args: {};
                    }, {
                        readonly event: "TextChanged(bytes32 indexed node, string indexed indexedKey, string key, string value)";
                        readonly args: {};
                    }, {
                        readonly event: "ContenthashChanged";
                        readonly args: {};
                    }, {
                        readonly event: "InterfaceChanged";
                        readonly args: {};
                    }, {
                        readonly event: "AuthorisationChanged";
                        readonly args: {};
                    }, {
                        readonly event: "VersionChanged";
                        readonly args: {};
                    }, {
                        readonly event: "DNSRecordChanged";
                        readonly args: {};
                    }, {
                        readonly event: "DNSRecordDeleted";
                        readonly args: {};
                    }, {
                        readonly event: "DNSZonehashChanged";
                        readonly args: {};
                    }];
                };
                BaseRegistrar: {
                    abi: readonly [{
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "getApproved";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "approve";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "transferFrom";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "reclaim";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "ens";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "safeTransferFrom";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "transferPeriodEnds";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "ownerOf";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "MIGRATION_LOCK_PERIOD";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "balanceOf";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "isOwner";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "available";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "addController";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "previousRegistrar";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }, {
                            readonly name: "_data";
                            readonly type: "bytes";
                        }];
                        readonly name: "safeTransferFrom";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "GRACE_PERIOD";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "nameExpires";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly name: "controllers";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "baseNode";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly name: "deed";
                            readonly type: "address";
                        }, {
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly name: "acceptRegistrarTransfer";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "removeController";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "register";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly name: "_ens";
                            readonly type: "address";
                        }, {
                            readonly name: "_previousRegistrar";
                            readonly type: "address";
                        }, {
                            readonly name: "_baseNode";
                            readonly type: "bytes32";
                        }, {
                            readonly name: "_transferPeriodEnds";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "ControllerAdded";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "ControllerRemoved";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: true;
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameMigrated";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: true;
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRegistered";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRenewed";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "previousOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "Transfer";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "approved";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "Approval";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }];
                    address: "0x57f1887a8BF19b14fC0dF6Fd9B2acc9Af147eA85";
                    startBlock: number;
                };
                EthRegistrarControllerOld: {
                    abi: readonly [{
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [];
                        readonly name: "withdraw";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "_prices";
                            readonly type: "address";
                        }];
                        readonly name: "setPriceOracle";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "_minCommitmentAge";
                            readonly type: "uint256";
                        }, {
                            readonly name: "_maxCommitmentAge";
                            readonly type: "uint256";
                        }];
                        readonly name: "setCommitmentAges";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "commitments";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "rentPrice";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly name: "secret";
                            readonly type: "bytes32";
                        }];
                        readonly name: "register";
                        readonly outputs: readonly [];
                        readonly payable: true;
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "MIN_REGISTRATION_DURATION";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "minCommitmentAge";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "isOwner";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "valid";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [];
                        readonly payable: true;
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "available";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "maxCommitmentAge";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "commit";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly name: "secret";
                            readonly type: "bytes32";
                        }];
                        readonly name: "makeCommitment";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly name: "_base";
                            readonly type: "address";
                        }, {
                            readonly name: "_prices";
                            readonly type: "address";
                        }, {
                            readonly name: "_minCommitmentAge";
                            readonly type: "uint256";
                        }, {
                            readonly name: "_maxCommitmentAge";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly name: "cost";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRegistered";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly name: "cost";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRenewed";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "oracle";
                            readonly type: "address";
                        }];
                        readonly name: "NewPriceOracle";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "previousOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }];
                    address: "0xf13fC748601fDc5afA255e9D9166EB43f603a903";
                    startBlock: number;
                };
                EthRegistrarController: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract BaseRegistrarImplementation";
                            readonly name: "_base";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IPriceOracle";
                            readonly name: "_prices";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_minCommitmentAge";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_maxCommitmentAge";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "contract ReverseRegistrar";
                            readonly name: "_reverseRegistrar";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract INameWrapper";
                            readonly name: "_nameWrapper";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "CommitmentTooNew";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "CommitmentTooOld";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "DurationTooShort";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "InsufficientValue";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MaxCommitmentAgeTooHigh";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MaxCommitmentAgeTooLow";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "NameNotAvailable";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "ResolverRequiredWhenDataSupplied";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "UnexpiredCommitmentExists";
                        readonly type: "error";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "baseCost";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "premium";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRegistered";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "cost";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRenewed";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "previousOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MIN_REGISTRATION_DURATION";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "available";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "commit";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "commitments";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "secret";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "reverseRecord";
                            readonly type: "bool";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }];
                        readonly name: "makeCommitment";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "maxCommitmentAge";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "minCommitmentAge";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "nameWrapper";
                        readonly outputs: readonly [{
                            readonly internalType: "contract INameWrapper";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "prices";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IPriceOracle";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "_token";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "_to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_amount";
                            readonly type: "uint256";
                        }];
                        readonly name: "recoverFunds";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "secret";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "reverseRecord";
                            readonly type: "bool";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }];
                        readonly name: "register";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "rentPrice";
                        readonly outputs: readonly [{
                            readonly components: readonly [{
                                readonly internalType: "uint256";
                                readonly name: "base";
                                readonly type: "uint256";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "premium";
                                readonly type: "uint256";
                            }];
                            readonly internalType: "struct IPriceOracle.Price";
                            readonly name: "price";
                            readonly type: "tuple";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "reverseRegistrar";
                        readonly outputs: readonly [{
                            readonly internalType: "contract ReverseRegistrar";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "valid";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "withdraw";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }];
                    address: "0x179Be112b24Ad4cFC392eF8924DfA08C20Ad8583";
                    startBlock: number;
                };
                NameWrapper: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "_ens";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IBaseRegistrar";
                            readonly name: "_registrar";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IMetadataService";
                            readonly name: "_metadataService";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "CannotUpgrade";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "IncompatibleParent";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "IncorrectTargetOwner";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "IncorrectTokenType";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "labelHash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "expectedLabelhash";
                            readonly type: "bytes32";
                        }];
                        readonly name: "LabelMismatch";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }];
                        readonly name: "LabelTooLong";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "LabelTooShort";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "NameIsNotWrapped";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "OperationProhibited";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "addr";
                            readonly type: "address";
                        }];
                        readonly name: "Unauthorised";
                        readonly type: "error";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "active";
                            readonly type: "bool";
                        }];
                        readonly name: "ControllerChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "ExpiryExtended";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }];
                        readonly name: "FusesSet";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "NameUnwrapped";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "NameWrapped";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "previousOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256[]";
                            readonly name: "ids";
                            readonly type: "uint256[]";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256[]";
                            readonly name: "values";
                            readonly type: "uint256[]";
                        }];
                        readonly name: "TransferBatch";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "value";
                            readonly type: "uint256";
                        }];
                        readonly name: "TransferSingle";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "URI";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly name: "_tokens";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuseMask";
                            readonly type: "uint32";
                        }];
                        readonly name: "allFusesBurned";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "balanceOf";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address[]";
                            readonly name: "accounts";
                            readonly type: "address[]";
                        }, {
                            readonly internalType: "uint256[]";
                            readonly name: "ids";
                            readonly type: "uint256[]";
                        }];
                        readonly name: "balanceOfBatch";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256[]";
                            readonly name: "";
                            readonly type: "uint256[]";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "addr";
                            readonly type: "address";
                        }];
                        readonly name: "canModifyName";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly name: "controllers";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "ens";
                        readonly outputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "extendExpiry";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "getData";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "isWrapped";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "metadataService";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IMetadataService";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "name";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "names";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "onERC721Received";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "";
                            readonly type: "bytes4";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "ownerOf";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "_token";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "_to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_amount";
                            readonly type: "uint256";
                        }];
                        readonly name: "recoverFunds";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }];
                        readonly name: "registerAndWrapETH2LD";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "registrarExpiry";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "registrar";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IBaseRegistrar";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256[]";
                            readonly name: "ids";
                            readonly type: "uint256[]";
                        }, {
                            readonly internalType: "uint256[]";
                            readonly name: "amounts";
                            readonly type: "uint256[]";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "safeBatchTransferFrom";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "amount";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "safeTransferFrom";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "setChildFuses";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "active";
                            readonly type: "bool";
                        }];
                        readonly name: "setController";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }];
                        readonly name: "setFuses";
                        readonly outputs: readonly [{
                            readonly internalType: "uint32";
                            readonly name: "";
                            readonly type: "uint32";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "contract IMetadataService";
                            readonly name: "_metadataService";
                            readonly type: "address";
                        }];
                        readonly name: "setMetadataService";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setRecord";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "setSubnodeOwner";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "setSubnodeRecord";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setTTL";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "contract INameWrapperUpgrade";
                            readonly name: "_upgradeAddress";
                            readonly type: "address";
                        }];
                        readonly name: "setUpgradeContract";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceId";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "unwrap";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "registrant";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "unwrapETH2LD";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "upgrade";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "upgradeContract";
                        readonly outputs: readonly [{
                            readonly internalType: "contract INameWrapperUpgrade";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "upgradeETH2LD";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "uri";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "wrap";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "wrapETH2LD";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }];
                    address: "0xab50971078225D365994dc1Edcb9b7FD72Bb4862";
                    startBlock: number;
                };
            };
        };
    };
    readonly "ens-test-env": {
        ensroot: {
            chain: {
                id: number;
                blockExplorers?: {
                    [key: string]: {
                        name: string;
                        url: string;
                        apiUrl?: string | undefined;
                    };
                    default: {
                        name: string;
                        url: string;
                        apiUrl?: string | undefined;
                    };
                } | undefined;
                contracts?: viem.Prettify<{
                    [key: string]: viem.ChainContract | {
                        [sourceId: number]: viem.ChainContract | undefined;
                    } | undefined;
                } & {
                    ensRegistry?: viem.ChainContract | undefined;
                    ensUniversalResolver?: viem.ChainContract | undefined;
                    multicall3?: viem.ChainContract | undefined;
                    universalSignatureVerifier?: viem.ChainContract | undefined;
                }> | undefined;
                name: "Anvil";
                nativeCurrency: {
                    readonly decimals: 18;
                    readonly name: "Ether";
                    readonly symbol: "ETH";
                };
                rpcUrls: {
                    readonly default: {
                        readonly http: readonly ["http://127.0.0.1:8545"];
                        readonly webSocket: readonly ["ws://127.0.0.1:8545"];
                    };
                };
                sourceId?: number | undefined;
                testnet?: boolean | undefined;
                custom?: Record<string, unknown> | undefined;
                fees?: viem.ChainFees<undefined> | undefined;
                formatters?: undefined;
                serializers?: viem.ChainSerializers<undefined, viem.TransactionSerializable> | undefined;
            };
            contracts: {
                RegistryOld: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "_old";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "NewOwner";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "NewResolver";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "NewTTL";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "Transfer";
                        readonly type: "event";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "old";
                        readonly outputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "recordExists";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "resolver";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "setOwner";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setRecord";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "setSubnodeOwner";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setSubnodeRecord";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setTTL";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "ttl";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }];
                    address: `0x${string}`;
                    startBlock: number;
                };
                Registry: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "_old";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "NewOwner";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "NewResolver";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "NewTTL";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "Transfer";
                        readonly type: "event";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "old";
                        readonly outputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "recordExists";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "resolver";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "setOwner";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setRecord";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "setSubnodeOwner";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setSubnodeRecord";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setTTL";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "ttl";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }];
                    address: `0x${string}`;
                    startBlock: number;
                };
                Resolver: {
                    startBlock: number;
                    abi: readonly [{
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "contentType";
                            readonly type: "uint256";
                        }];
                        readonly name: "ABIChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "a";
                            readonly type: "address";
                        }];
                        readonly name: "AddrChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "newAddress";
                            readonly type: "bytes";
                        }];
                        readonly name: "AddressChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "target";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "isAuthorised";
                            readonly type: "bool";
                        }];
                        readonly name: "AuthorisationChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "ContenthashChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "record";
                            readonly type: "bytes";
                        }];
                        readonly name: "DNSRecordChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }];
                        readonly name: "DNSRecordDeleted";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "DNSZoneCleared";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "implementer";
                            readonly type: "address";
                        }];
                        readonly name: "InterfaceChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "NameChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly name: "PubkeyChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "string";
                            readonly name: "indexedKey";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }];
                        readonly name: "TextChanged";
                        readonly type: "event";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "contentTypes";
                            readonly type: "uint256";
                        }];
                        readonly name: "ABI";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "addr";
                        readonly outputs: readonly [{
                            readonly internalType: "address payable";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }];
                        readonly name: "addr";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly name: "authorisations";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "clearDNSZone";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "contenthash";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "name";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "resource";
                            readonly type: "uint16";
                        }];
                        readonly name: "dnsRecord";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "name";
                            readonly type: "bytes32";
                        }];
                        readonly name: "hasDNSRecords";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "interfaceImplementer";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }];
                        readonly name: "multicall";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "results";
                            readonly type: "bytes[]";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "name";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "pubkey";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "contentType";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "setABI";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "coinType";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "a";
                            readonly type: "bytes";
                        }];
                        readonly name: "setAddr";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "a";
                            readonly type: "address";
                        }];
                        readonly name: "setAddr";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "target";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "isAuthorised";
                            readonly type: "bool";
                        }];
                        readonly name: "setAuthorisation";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "setContenthash";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "setDNSRecords";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }, {
                            readonly internalType: "address";
                            readonly name: "implementer";
                            readonly type: "address";
                        }];
                        readonly name: "setInterface";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "setName";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "x";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "y";
                            readonly type: "bytes32";
                        }];
                        readonly name: "setPubkey";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }, {
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }];
                        readonly name: "setText";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }];
                        readonly name: "text";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "Approved";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "lastzonehash";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "zonehash";
                            readonly type: "bytes";
                        }];
                        readonly name: "DNSZonehashChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "string";
                            readonly name: "indexedKey";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "key";
                            readonly type: "string";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }];
                        readonly name: "TextChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "newVersion";
                            readonly type: "uint64";
                        }];
                        readonly name: "VersionChanged";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "approve";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "clearRecords";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "delegate";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedFor";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "nodehash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }];
                        readonly name: "multicallWithNodeCheck";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes[]";
                            readonly name: "results";
                            readonly type: "bytes[]";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "recordVersions";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "newName";
                            readonly type: "string";
                        }];
                        readonly name: "setName";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "hash";
                            readonly type: "bytes";
                        }];
                        readonly name: "setZonehash";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "zonehash";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly type: "event";
                        readonly name: "DNSRecordChanged";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "name";
                            readonly type: "bytes";
                            readonly indexed: false;
                            readonly internalType: "bytes";
                        }, {
                            readonly name: "resource";
                            readonly type: "uint16";
                            readonly indexed: false;
                            readonly internalType: "uint16";
                        }, {
                            readonly name: "ttl";
                            readonly type: "uint32";
                            readonly indexed: false;
                            readonly internalType: "uint32";
                        }, {
                            readonly name: "record";
                            readonly type: "bytes";
                            readonly indexed: false;
                            readonly internalType: "bytes";
                        }];
                        readonly anonymous: false;
                    }, {
                        readonly type: "event";
                        readonly name: "DNSZoneUpdated";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "serial";
                            readonly type: "uint32";
                            readonly indexed: false;
                            readonly internalType: "uint32";
                        }];
                        readonly anonymous: false;
                    }, {
                        readonly type: "event";
                        readonly name: "ZoneCreated";
                        readonly inputs: readonly [{
                            readonly name: "node";
                            readonly type: "bytes32";
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                        }, {
                            readonly name: "version";
                            readonly type: "uint64";
                            readonly indexed: true;
                            readonly internalType: "uint64";
                        }];
                        readonly anonymous: false;
                    }];
                    filter: [{
                        readonly event: "AddrChanged";
                        readonly args: {};
                    }, {
                        readonly event: "AddressChanged";
                        readonly args: {};
                    }, {
                        readonly event: "NameChanged";
                        readonly args: {};
                    }, {
                        readonly event: "ABIChanged";
                        readonly args: {};
                    }, {
                        readonly event: "PubkeyChanged";
                        readonly args: {};
                    }, {
                        readonly event: "TextChanged(bytes32 indexed node, string indexed indexedKey, string key)";
                        readonly args: {};
                    }, {
                        readonly event: "TextChanged(bytes32 indexed node, string indexed indexedKey, string key, string value)";
                        readonly args: {};
                    }, {
                        readonly event: "ContenthashChanged";
                        readonly args: {};
                    }, {
                        readonly event: "InterfaceChanged";
                        readonly args: {};
                    }, {
                        readonly event: "AuthorisationChanged";
                        readonly args: {};
                    }, {
                        readonly event: "VersionChanged";
                        readonly args: {};
                    }, {
                        readonly event: "DNSRecordChanged";
                        readonly args: {};
                    }, {
                        readonly event: "DNSRecordDeleted";
                        readonly args: {};
                    }, {
                        readonly event: "DNSZonehashChanged";
                        readonly args: {};
                    }];
                };
                BaseRegistrar: {
                    abi: readonly [{
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "getApproved";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "approve";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "transferFrom";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "reclaim";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "ens";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "safeTransferFrom";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "transferPeriodEnds";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "ownerOf";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "MIGRATION_LOCK_PERIOD";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "balanceOf";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "isOwner";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "available";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "addController";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "previousRegistrar";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }, {
                            readonly name: "_data";
                            readonly type: "bytes";
                        }];
                        readonly name: "safeTransferFrom";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "GRACE_PERIOD";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "nameExpires";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly name: "controllers";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "baseNode";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly name: "deed";
                            readonly type: "address";
                        }, {
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly name: "acceptRegistrarTransfer";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "removeController";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "register";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly name: "_ens";
                            readonly type: "address";
                        }, {
                            readonly name: "_previousRegistrar";
                            readonly type: "address";
                        }, {
                            readonly name: "_baseNode";
                            readonly type: "bytes32";
                        }, {
                            readonly name: "_transferPeriodEnds";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "ControllerAdded";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "ControllerRemoved";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: true;
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameMigrated";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: true;
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRegistered";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRenewed";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "previousOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "Transfer";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "approved";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "Approval";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }];
                    address: `0x${string}`;
                    startBlock: number;
                };
                EthRegistrarControllerOld: {
                    abi: readonly [{
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [];
                        readonly name: "withdraw";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "_prices";
                            readonly type: "address";
                        }];
                        readonly name: "setPriceOracle";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "_minCommitmentAge";
                            readonly type: "uint256";
                        }, {
                            readonly name: "_maxCommitmentAge";
                            readonly type: "uint256";
                        }];
                        readonly name: "setCommitmentAges";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "commitments";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "rentPrice";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly name: "secret";
                            readonly type: "bytes32";
                        }];
                        readonly name: "register";
                        readonly outputs: readonly [];
                        readonly payable: true;
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "MIN_REGISTRATION_DURATION";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "minCommitmentAge";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "isOwner";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "valid";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [];
                        readonly payable: true;
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "available";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [];
                        readonly name: "maxCommitmentAge";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "commit";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: false;
                        readonly inputs: readonly [{
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly constant: true;
                        readonly inputs: readonly [{
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly name: "secret";
                            readonly type: "bytes32";
                        }];
                        readonly name: "makeCommitment";
                        readonly outputs: readonly [{
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly name: "_base";
                            readonly type: "address";
                        }, {
                            readonly name: "_prices";
                            readonly type: "address";
                        }, {
                            readonly name: "_minCommitmentAge";
                            readonly type: "uint256";
                        }, {
                            readonly name: "_maxCommitmentAge";
                            readonly type: "uint256";
                        }];
                        readonly payable: false;
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly name: "cost";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRegistered";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly name: "cost";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRenewed";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "oracle";
                            readonly type: "address";
                        }];
                        readonly name: "NewPriceOracle";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly name: "previousOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }];
                    address: `0x${string}`;
                    startBlock: number;
                };
                EthRegistrarController: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract BaseRegistrarImplementation";
                            readonly name: "_base";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IPriceOracle";
                            readonly name: "_prices";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_minCommitmentAge";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_maxCommitmentAge";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "contract ReverseRegistrar";
                            readonly name: "_reverseRegistrar";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract INameWrapper";
                            readonly name: "_nameWrapper";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "CommitmentTooNew";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "CommitmentTooOld";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "DurationTooShort";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "InsufficientValue";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MaxCommitmentAgeTooHigh";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MaxCommitmentAgeTooLow";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "NameNotAvailable";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "ResolverRequiredWhenDataSupplied";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "UnexpiredCommitmentExists";
                        readonly type: "error";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "baseCost";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "premium";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRegistered";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "label";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "cost";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly name: "NameRenewed";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "previousOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "MIN_REGISTRATION_DURATION";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "available";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "commitment";
                            readonly type: "bytes32";
                        }];
                        readonly name: "commit";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "commitments";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "secret";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "reverseRecord";
                            readonly type: "bool";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }];
                        readonly name: "makeCommitment";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "maxCommitmentAge";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "minCommitmentAge";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "nameWrapper";
                        readonly outputs: readonly [{
                            readonly internalType: "contract INameWrapper";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "prices";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IPriceOracle";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "_token";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "_to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_amount";
                            readonly type: "uint256";
                        }];
                        readonly name: "recoverFunds";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "secret";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bytes[]";
                            readonly name: "data";
                            readonly type: "bytes[]";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "reverseRecord";
                            readonly type: "bool";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }];
                        readonly name: "register";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [];
                        readonly stateMutability: "payable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "rentPrice";
                        readonly outputs: readonly [{
                            readonly components: readonly [{
                                readonly internalType: "uint256";
                                readonly name: "base";
                                readonly type: "uint256";
                            }, {
                                readonly internalType: "uint256";
                                readonly name: "premium";
                                readonly type: "uint256";
                            }];
                            readonly internalType: "struct IPriceOracle.Price";
                            readonly name: "price";
                            readonly type: "tuple";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "reverseRegistrar";
                        readonly outputs: readonly [{
                            readonly internalType: "contract ReverseRegistrar";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceID";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "name";
                            readonly type: "string";
                        }];
                        readonly name: "valid";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "pure";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "withdraw";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }];
                    address: `0x${string}`;
                    startBlock: number;
                };
                NameWrapper: {
                    abi: readonly [{
                        readonly inputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "_ens";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IBaseRegistrar";
                            readonly name: "_registrar";
                            readonly type: "address";
                        }, {
                            readonly internalType: "contract IMetadataService";
                            readonly name: "_metadataService";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "constructor";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "CannotUpgrade";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "IncompatibleParent";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "IncorrectTargetOwner";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "IncorrectTokenType";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "labelHash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "expectedLabelhash";
                            readonly type: "bytes32";
                        }];
                        readonly name: "LabelMismatch";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }];
                        readonly name: "LabelTooLong";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "LabelTooShort";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "NameIsNotWrapped";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "OperationProhibited";
                        readonly type: "error";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "addr";
                            readonly type: "address";
                        }];
                        readonly name: "Unauthorised";
                        readonly type: "error";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "ApprovalForAll";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bool";
                            readonly name: "active";
                            readonly type: "bool";
                        }];
                        readonly name: "ControllerChanged";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "ExpiryExtended";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }];
                        readonly name: "FusesSet";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly name: "NameUnwrapped";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "NameWrapped";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "previousOwner";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "OwnershipTransferred";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256[]";
                            readonly name: "ids";
                            readonly type: "uint256[]";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256[]";
                            readonly name: "values";
                            readonly type: "uint256[]";
                        }];
                        readonly name: "TransferBatch";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly indexed: false;
                            readonly internalType: "uint256";
                            readonly name: "value";
                            readonly type: "uint256";
                        }];
                        readonly name: "TransferSingle";
                        readonly type: "event";
                    }, {
                        readonly anonymous: false;
                        readonly inputs: readonly [{
                            readonly indexed: false;
                            readonly internalType: "string";
                            readonly name: "value";
                            readonly type: "string";
                        }, {
                            readonly indexed: true;
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "URI";
                        readonly type: "event";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly name: "_tokens";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuseMask";
                            readonly type: "uint32";
                        }];
                        readonly name: "allFusesBurned";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "balanceOf";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address[]";
                            readonly name: "accounts";
                            readonly type: "address[]";
                        }, {
                            readonly internalType: "uint256[]";
                            readonly name: "ids";
                            readonly type: "uint256[]";
                        }];
                        readonly name: "balanceOfBatch";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256[]";
                            readonly name: "";
                            readonly type: "uint256[]";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "addr";
                            readonly type: "address";
                        }];
                        readonly name: "canModifyName";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly name: "controllers";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "ens";
                        readonly outputs: readonly [{
                            readonly internalType: "contract ENS";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "extendExpiry";
                        readonly outputs: readonly [{
                            readonly internalType: "uint64";
                            readonly name: "";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "getData";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "account";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }];
                        readonly name: "isApprovedForAll";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly name: "isWrapped";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "metadataService";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IMetadataService";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "name";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "";
                            readonly type: "bytes32";
                        }];
                        readonly name: "names";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "";
                            readonly type: "bytes";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "onERC721Received";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "";
                            readonly type: "bytes4";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "owner";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }];
                        readonly name: "ownerOf";
                        readonly outputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "_token";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "_to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "_amount";
                            readonly type: "uint256";
                        }];
                        readonly name: "recoverFunds";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }];
                        readonly name: "registerAndWrapETH2LD";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "registrarExpiry";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "registrar";
                        readonly outputs: readonly [{
                            readonly internalType: "contract IBaseRegistrar";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "duration";
                            readonly type: "uint256";
                        }];
                        readonly name: "renew";
                        readonly outputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "expires";
                            readonly type: "uint256";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "renounceOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256[]";
                            readonly name: "ids";
                            readonly type: "uint256[]";
                        }, {
                            readonly internalType: "uint256[]";
                            readonly name: "amounts";
                            readonly type: "uint256[]";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "safeBatchTransferFrom";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "from";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "to";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "id";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "uint256";
                            readonly name: "amount";
                            readonly type: "uint256";
                        }, {
                            readonly internalType: "bytes";
                            readonly name: "data";
                            readonly type: "bytes";
                        }];
                        readonly name: "safeTransferFrom";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "operator";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "approved";
                            readonly type: "bool";
                        }];
                        readonly name: "setApprovalForAll";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "setChildFuses";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }, {
                            readonly internalType: "bool";
                            readonly name: "active";
                            readonly type: "bool";
                        }];
                        readonly name: "setController";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }];
                        readonly name: "setFuses";
                        readonly outputs: readonly [{
                            readonly internalType: "uint32";
                            readonly name: "";
                            readonly type: "uint32";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "contract IMetadataService";
                            readonly name: "_metadataService";
                            readonly type: "address";
                        }];
                        readonly name: "setMetadataService";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setRecord";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "setResolver";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "setSubnodeOwner";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "owner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }, {
                            readonly internalType: "uint32";
                            readonly name: "fuses";
                            readonly type: "uint32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "expiry";
                            readonly type: "uint64";
                        }];
                        readonly name: "setSubnodeRecord";
                        readonly outputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "node";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "uint64";
                            readonly name: "ttl";
                            readonly type: "uint64";
                        }];
                        readonly name: "setTTL";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "contract INameWrapperUpgrade";
                            readonly name: "_upgradeAddress";
                            readonly type: "address";
                        }];
                        readonly name: "setUpgradeContract";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes4";
                            readonly name: "interfaceId";
                            readonly type: "bytes4";
                        }];
                        readonly name: "supportsInterface";
                        readonly outputs: readonly [{
                            readonly internalType: "bool";
                            readonly name: "";
                            readonly type: "bool";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "address";
                            readonly name: "newOwner";
                            readonly type: "address";
                        }];
                        readonly name: "transferOwnership";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "unwrap";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "labelhash";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "address";
                            readonly name: "registrant";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "controller";
                            readonly type: "address";
                        }];
                        readonly name: "unwrapETH2LD";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes32";
                            readonly name: "parentNode";
                            readonly type: "bytes32";
                        }, {
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "upgrade";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [];
                        readonly name: "upgradeContract";
                        readonly outputs: readonly [{
                            readonly internalType: "contract INameWrapperUpgrade";
                            readonly name: "";
                            readonly type: "address";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "upgradeETH2LD";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "uint256";
                            readonly name: "tokenId";
                            readonly type: "uint256";
                        }];
                        readonly name: "uri";
                        readonly outputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "";
                            readonly type: "string";
                        }];
                        readonly stateMutability: "view";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "bytes";
                            readonly name: "name";
                            readonly type: "bytes";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "wrap";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }, {
                        readonly inputs: readonly [{
                            readonly internalType: "string";
                            readonly name: "label";
                            readonly type: "string";
                        }, {
                            readonly internalType: "address";
                            readonly name: "wrappedOwner";
                            readonly type: "address";
                        }, {
                            readonly internalType: "uint16";
                            readonly name: "ownerControlledFuses";
                            readonly type: "uint16";
                        }, {
                            readonly internalType: "address";
                            readonly name: "resolver";
                            readonly type: "address";
                        }];
                        readonly name: "wrapETH2LD";
                        readonly outputs: readonly [];
                        readonly stateMutability: "nonpayable";
                        readonly type: "function";
                    }];
                    address: `0x${string}`;
                    startBlock: number;
                };
            };
        };
    };
}[N][D];
/**
 * Returns the chain id for the ENS Root Datasource within the selected namespace.
 *
 * @returns the chain ID that hosts the ENS Root
 */
declare const getENSRootChainId: (namespaceId: ENSNamespaceId) => number;

export { type ContractConfig, type Datasource, type DatasourceName, DatasourceNames, type ENSNamespace, type ENSNamespaceId, ENSNamespaceIds, type EventFilter, getDatasource, getENSNamespace, getENSRootChainId };
